From ecd16515c563e307c1f4f2af04e20eaf4046a8b8 Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Thu, 31 May 2018 15:49:02 -0700 Subject: [PATCH 001/205] Remove datum/action/generic (#38201) --- code/datums/action.dm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/code/datums/action.dm b/code/datums/action.dm index f9575a56ef..593e81ff01 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -564,19 +564,6 @@ /datum/action/innate/proc/Deactivate() return -//Preset for action that call specific procs (consider innate). -/datum/action/generic - check_flags = 0 - var/procname - -/datum/action/generic/Trigger() - if(!..()) - return 0 - if(target && procname) - call(target, procname)(usr) - return 1 - - //Preset for an action with a cooldown /datum/action/cooldown From bc671f35f8a43bbb6e29d6c9887698a5c587f5ba Mon Sep 17 00:00:00 2001 From: Jordie <4343468+Jordie0608@users.noreply.github.com> Date: Fri, 1 Jun 2018 07:56:29 +1000 Subject: [PATCH 003/205] Fix rank changing with legacy only rank loading (#38160) Legacy only rank loading would block any permanent rank changing. Now only blocks adding a new rank to the db. --- code/modules/admin/permissionedit.dm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm index e237a18f6a..909bd85dec 100644 --- a/code/modules/admin/permissionedit.dm +++ b/code/modules/admin/permissionedit.dm @@ -125,6 +125,7 @@ var/use_db var/task = href_list["editrights"] var/skip + var/legacy_only if(task == "activate" || task == "deactivate" || task == "sync") skip = TRUE if(!CONFIG_GET(flag/admin_legacy_system) && CONFIG_GET(flag/protect_legacy_admins) && task == "rank") @@ -135,10 +136,9 @@ if(D.rank in GLOB.protected_ranks) to_chat(usr, "Editing the flags of this rank is blocked by server configuration.") return - if(CONFIG_GET(flag/load_legacy_ranks_only) && (task == "rank" || task == "permissions")) - to_chat(usr, "Database rank loading is disabled, only temporary changes can be made to an admin's rank or permissions.") - use_db = FALSE - skip = TRUE + if(CONFIG_GET(flag/load_legacy_ranks_only) && (task == "add" || task == "rank" || task == "permissions")) + to_chat(usr, "Database rank loading is disabled, only temporary changes can be made to a rank's permissions and permanently creating a new rank is blocked.") + legacy_only = TRUE if(check_rights(R_DBRANKS, FALSE)) if(!skip) if(!SSdbcore.Connect()) @@ -168,13 +168,13 @@ admin_ckey = add_admin(null, use_db) if(!admin_ckey) return - change_admin_rank(admin_ckey, use_db) + change_admin_rank(admin_ckey, use_db, null, legacy_only) if("remove") remove_admin(admin_ckey, use_db, D) if("rank") - change_admin_rank(admin_ckey, use_db, D) + change_admin_rank(admin_ckey, use_db, D, legacy_only) if("permissions") - change_admin_flags(admin_ckey, use_db, D) + change_admin_flags(admin_ckey, use_db, D, legacy_only) if("activate") force_readmin(admin_ckey, D) if("deactivate") @@ -240,9 +240,11 @@ log_admin("[key_name(usr)] forcefully deadmined [admin_ckey]") D.deactivate() //after logs so the deadmined admin can see the message. -/datum/admins/proc/change_admin_rank(admin_ckey, use_db, datum/admins/D) +/datum/admins/proc/change_admin_rank(admin_ckey, use_db, datum/admins/D, legacy_only) var/datum/admin_rank/R - var/list/rank_names = list("*New Rank*") + var/list/rank_names = list() + if(!use_db || (use_db && !legacy_only)) + rank_names += "*New Rank*" for(R in GLOB.admin_ranks) if((R.rights & usr.client.holder.rank.can_edit_rights) == R.rights) rank_names[R.name] = R @@ -297,7 +299,7 @@ message_admins("[key_name_admin(usr)] edited the admin rank of [admin_ckey] to [new_rank] [use_db ? "permanently" : "temporarily"]") log_admin("[key_name(usr)] edited the admin rank of [admin_ckey] to [new_rank] [use_db ? "permanently" : "temporarily"]") -/datum/admins/proc/change_admin_flags(admin_ckey, use_db, datum/admins/D) +/datum/admins/proc/change_admin_flags(admin_ckey, use_db, datum/admins/D, legacy_only) var/new_flags = input_bitfield(usr, "Include permission flags
[use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_ckey]"]", "admin_flags", D.rank.include_rights, 350, 590, allowed_edit_list = usr.client.holder.rank.can_edit_rights) if(isnull(new_flags)) return @@ -307,7 +309,7 @@ var/new_can_edit_flags = input_bitfield(usr, "Editable permission flags
These are the flags this rank is allowed to edit if they have access to the permissions panel.
They will be unable to modify admins to a rank that has a flag not included here.
[use_db ? "This will affect ALL admins with this rank." : "This will affect only the current admin [admin_ckey]"]", "admin_flags", D.rank.can_edit_rights, 350, 710, allowed_edit_list = usr.client.holder.rank.can_edit_rights) if(isnull(new_can_edit_flags)) return - if(use_db) + if(use_db || legacy_only) var/old_flags var/old_exclude_flags var/old_can_edit_flags @@ -351,6 +353,7 @@ D.rank.rights = new_flags &= ~new_exclude_flags D.rank.include_rights = new_flags D.rank.exclude_rights = new_exclude_flags + D.rank.can_edit_rights = new_can_edit_flags var/client/C = GLOB.directory[admin_ckey] //find the client with the specified ckey (if they are logged in) D.associate(C) //link up with the client and add verbs message_admins("[key_name_admin(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]") From a10abadec8950c536c536bf5abdcc597846f348a Mon Sep 17 00:00:00 2001 From: oranges Date: Fri, 1 Jun 2018 09:44:14 +1200 Subject: [PATCH 005/205] Merge pull request #38159 from AutomaticFrenzy/patch/diagonalley Arrest diagonal movement when force-moved --- code/game/atoms_movable.dm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 7f817f7787..29c02932fc 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -161,41 +161,45 @@ else //Diagonal move, split it into cardinal moves moving_diagonally = FIRST_DIAG_STEP var/first_step_dir + // The `&& moving_diagonally` checks are so that a forceMove taking + // place due to a Crossed, Collided, etc. call will interrupt + // the second half of the diagonal movement, or the second attempt + // at a first half if step() fails because we hit something. if (direct & NORTH) if (direct & EAST) - if (step(src, NORTH)) + if (step(src, NORTH) && moving_diagonally) first_step_dir = NORTH moving_diagonally = SECOND_DIAG_STEP . = step(src, EAST) - else if (step(src, EAST)) + else if (moving_diagonally && step(src, EAST)) first_step_dir = EAST moving_diagonally = SECOND_DIAG_STEP . = step(src, NORTH) else if (direct & WEST) - if (step(src, NORTH)) + if (step(src, NORTH) && moving_diagonally) first_step_dir = NORTH moving_diagonally = SECOND_DIAG_STEP . = step(src, WEST) - else if (step(src, WEST)) + else if (moving_diagonally && step(src, WEST)) first_step_dir = WEST moving_diagonally = SECOND_DIAG_STEP . = step(src, NORTH) else if (direct & SOUTH) if (direct & EAST) - if (step(src, SOUTH)) + if (step(src, SOUTH) && moving_diagonally) first_step_dir = SOUTH moving_diagonally = SECOND_DIAG_STEP . = step(src, EAST) - else if (step(src, EAST)) + else if (moving_diagonally && step(src, EAST)) first_step_dir = EAST moving_diagonally = SECOND_DIAG_STEP . = step(src, SOUTH) else if (direct & WEST) - if (step(src, SOUTH)) + if (step(src, SOUTH) && moving_diagonally) first_step_dir = SOUTH moving_diagonally = SECOND_DIAG_STEP . = step(src, WEST) - else if (step(src, WEST)) + else if (moving_diagonally && step(src, WEST)) first_step_dir = WEST moving_diagonally = SECOND_DIAG_STEP . = step(src, SOUTH) @@ -310,8 +314,8 @@ var/area/old_area = get_area(oldloc) var/area/destarea = get_area(destination) - loc = destination + moving_diagonally = 0 if(!same_loc) if(oldloc) From 4452dc462927a23b440bdc29acf8798d9dec88ee Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Thu, 31 May 2018 16:31:26 -0400 Subject: [PATCH 007/205] Corrects bronze floor & table's name (#38164) --- code/game/objects/structures/tables_racks.dm | 2 +- code/game/turfs/simulated/floor/misc_floor.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 95c1cafd5d..0d7500ebf2 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -381,7 +381,7 @@ obj_integrity = max_integrity /obj/structure/table/bronze - name = "brass table" + name = "bronze table" desc = "A solid table made out of bronze." icon = 'icons/obj/smooth_structures/brass_table.dmi' icon_state = "brass_table" diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 650a66adf1..f7cea96a3f 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -243,7 +243,7 @@ /turf/open/floor/bronze - name = "clockwork floor" + name = "bronze floor" desc = "Some heavy bronze tiles." icon = 'icons/obj/clockwork_objects.dmi' icon_state = "clockwork_floor" From db20e34d76fc05a2aee6cee0f6cbb8911635ae0b Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 31 May 2018 16:30:49 -0400 Subject: [PATCH 009/205] Adds config for monkey cap --- code/controllers/configuration/entries/game_options.dm | 8 +++++++- code/controllers/subsystem/mobs.dm | 1 - code/modules/mob/living/carbon/monkey/monkey.dm | 5 +++-- config/game_options.txt | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 3de0ebe439..6a2c3e0f59 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -288,6 +288,7 @@ /datum/config_entry/flag/shift_time_realtime +<<<<<<< HEAD //Cit changes - Adds config options for crew objectives and miscreants /datum/config_entry/flag/allow_crew_objectives @@ -304,4 +305,9 @@ /datum/config_entry/number/nightshift_finish config_entry_value = 6 -//End of Cit changes \ No newline at end of file +//End of Cit changes +======= +/datum/config_entry/number/monkeycap + config_entry_value = 64 + min_val = 0 +>>>>>>> f988a13... Adds config for monkey cap (#38165) diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm index 066c621572..428819f897 100644 --- a/code/controllers/subsystem/mobs.dm +++ b/code/controllers/subsystem/mobs.dm @@ -7,7 +7,6 @@ SUBSYSTEM_DEF(mobs) var/list/currentrun = list() var/static/list/clients_by_zlevel[][] var/static/list/cubemonkeys = list() - var/cubemonkeycap = 64 /datum/controller/subsystem/mobs/stat_entry() ..("P:[GLOB.mob_living_list.len]") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 28ba50a308..d1d9c4370e 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -33,9 +33,10 @@ . = ..() if (cubespawned) - if (LAZYLEN(SSmobs.cubemonkeys) > SSmobs.cubemonkeycap) + var/cap = CONFIG_GET(number/monkeycap) + if (LAZYLEN(SSmobs.cubemonkeys) > cap) if (spawner) - to_chat(spawner, "Bluespace harmonics prevent the spawning of more than [SSmobs.cubemonkeycap] monkeys on the station at one time!") + to_chat(spawner, "Bluespace harmonics prevent the spawning of more than [cap] monkeys on the station at one time!") return INITIALIZE_HINT_QDEL SSmobs.cubemonkeys += src diff --git a/config/game_options.txt b/config/game_options.txt index 6ecec1fc9e..48e2dc5607 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -551,3 +551,6 @@ ROUNDSTART_TRAITS ## Sets shift time to server time at roundstart. Overridden by RANDOMIZE_SHIFT_TIME ## #SHIFT_TIME_REALTIME + +## A cap on how many monkeys may be created via monkey cubes +MONKEYCAP 64 From 7b6c75df287f3b3134823270bc80927e96942dc9 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Thu, 31 May 2018 22:17:32 +0300 Subject: [PATCH 010/205] Removes drone overlays and the associated code (#38175) * Remove drone overlays 4* animated multidir overlays per mob is a bit much * to the orbit with you too --- code/modules/antagonists/revenant/revenant.dm | 14 -------- code/modules/mob/living/carbon/human/human.dm | 17 --------- code/modules/mob/living/living.dm | 35 ------------------- code/modules/mob/living/living_defines.dm | 1 - code/modules/mob/living/silicon/pai/pai.dm | 3 -- .../simple_animal/friendly/drone/_drone.dm | 10 ------ .../friendly/drone/extra_drone_types.dm | 2 -- .../friendly/drone/interaction.dm | 11 ------ .../simple_animal/friendly/drone/verbs.dm | 15 -------- .../friendly/drone/visuals_icons.dm | 30 ---------------- code/modules/shuttle/special.dm | 1 - 11 files changed, 139 deletions(-) diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index c520b64146..03150c0254 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -109,11 +109,6 @@ revealed = FALSE incorporeal_move = INCORPOREAL_MOVE_JAUNT invisibility = INVISIBILITY_REVENANT - if(staticOverlays.len) - for(var/mob/living/simple_animal/drone/D in GLOB.drones_list) - if(D && D.client && D.seeStatic) - D.staticOverlays.Remove(staticOverlays) - D.client.images.Remove(staticOverlays) to_chat(src, "You are once more concealed.") if(unstun_time && world.time >= unstun_time) unstun_time = 0 @@ -250,15 +245,6 @@ else to_chat(src, "You have been revealed!") unreveal_time = unreveal_time + time - if(staticOverlays.len) - for(var/mob/living/simple_animal/drone/D in GLOB.drones_list) - if(D && D.client && D.seeStatic) - if(D.staticChoice in staticOverlays) - D.staticOverlays |= staticOverlays[D.staticChoice] - D.client.images |= staticOverlays[D.staticChoice] - else - D.staticOverlays |= staticOverlays["static"] - D.client.images |= staticOverlays["static"] update_spooky_icon() /mob/living/simple_animal/revenant/proc/stun(time) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6b53972d39..944e5774ad 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -674,23 +674,6 @@ else to_chat(C, "You feel a breath of fresh air... which is a sensation you don't recognise...") -/mob/living/carbon/human/generateStaticOverlay() - var/image/staticOverlay = image(icon('icons/effects/effects.dmi', "static"), loc = src) - staticOverlay.override = 1 - staticOverlays["static"] = staticOverlay - - staticOverlay = image(icon('icons/effects/effects.dmi', "blank"), loc = src) - staticOverlay.override = 1 - staticOverlays["blank"] = staticOverlay - - staticOverlay = getLetterImage(src, "H", 1) - staticOverlay.override = 1 - staticOverlays["letter"] = staticOverlay - - staticOverlay = getRandomAnimalImage(src) - staticOverlay.override = 1 - staticOverlays["animal"] = staticOverlay - /mob/living/carbon/human/cuff_resist(obj/item/I) if(dna && dna.check_mutation(HULK)) say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index abf8302590..68c8913385 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1,15 +1,5 @@ /mob/living/Initialize() . = ..() - generateStaticOverlay() - if(staticOverlays.len) - for(var/mob/living/simple_animal/drone/D in GLOB.player_list) - if(D && D.seeStatic) - if(D.staticChoice in staticOverlays) - D.staticOverlays |= staticOverlays[D.staticChoice] - D.client.images |= staticOverlays[D.staticChoice] - else //no choice? force static - D.staticOverlays |= staticOverlays["static"] - D.client.images |= staticOverlays["static"] if(unique_name) name = "[name] ([rand(1, 1000)])" real_name = name @@ -40,12 +30,6 @@ if(buckled) buckled.unbuckle_mob(src,force=1) - for(var/mob/living/simple_animal/drone/D in GLOB.player_list) - for(var/image/I in staticOverlays) - D.staticOverlays.Remove(I) - D.client.images.Remove(I) - qdel(I) - staticOverlays.len = 0 remove_from_all_data_huds() GLOB.mob_living_list -= src QDEL_LIST(diseases) @@ -62,25 +46,6 @@ /mob/living/proc/OpenCraftingMenu() return -/mob/living/proc/generateStaticOverlay() - staticOverlays.Add(list("static", "blank", "letter", "animal")) - var/image/staticOverlay = image(getStaticIcon(new/icon(icon,icon_state)), loc = src) - staticOverlay.override = 1 - staticOverlays["static"] = staticOverlay - - staticOverlay = image(getBlankIcon(new/icon(icon, icon_state)), loc = src) - staticOverlay.override = 1 - staticOverlays["blank"] = staticOverlay - - staticOverlay = getLetterImage(src) - staticOverlay.override = 1 - staticOverlays["letter"] = staticOverlay - - staticOverlay = getRandomAnimalImage(src) - staticOverlay.override = 1 - staticOverlays["animal"] = staticOverlay - - //Generic Collide(). Override MobCollide() and ObjCollide() instead of this. /mob/living/Collide(atom/A) if(..()) //we are thrown onto something diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 94b1e64f39..1016387cb5 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -55,7 +55,6 @@ var/mob_size = MOB_SIZE_HUMAN var/list/mob_biotypes = list(MOB_ORGANIC) var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. - var/list/image/staticOverlays = list() var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) var/list/pipes_shown = list() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index f30c65b23d..29ae671d03 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -292,6 +292,3 @@ /mob/living/silicon/pai/process() emitterhealth = CLAMP((emitterhealth + emitterregen), -50, emittermaxhealth) hit_slowdown = CLAMP((hit_slowdown - 1), 0, 100) - -/mob/living/silicon/pai/generateStaticOverlay() - return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index db54283335..51983e272a 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -42,7 +42,6 @@ mob_size = MOB_SIZE_SMALL has_unlimited_silicon_privilege = 1 damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - staticOverlays = list() hud_possible = list(DIAG_STAT_HUD, DIAG_HUD, ANTAG_HUD) unique_name = TRUE faction = list("neutral","silicon","turret") @@ -67,7 +66,6 @@ var/obj/item/head var/obj/item/default_storage = /obj/item/storage/backpack/duffelbag/drone //If this exists, it will spawn in internal storage var/obj/item/default_hatmask //If this exists, it will spawn in the hat/mask slot if it can fit - var/seeStatic = 1 //Whether we see static instead of mobs var/visualAppearence = MAINTDRONE //What we appear as var/hacked = FALSE //If we have laws to destroy the station var/flavortext = \ @@ -98,12 +96,6 @@ alert_drones(DRONE_NET_CONNECT) - if(seeStatic) - var/datum/action/generic/drone/select_filter/SF = new(src) - SF.Grant(src) - else - verbs -= /mob/living/simple_animal/drone/verb/toggle_statics - for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diag_hud.add_to_hud(src) @@ -137,8 +129,6 @@ if(flavortext) to_chat(src, "[flavortext]") - updateSeeStaticMobs() - if(!picked) pickVisualAppearence() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index b4cd697d2e..e59ece0650 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -28,7 +28,6 @@ "3. Destroy." default_storage = /obj/item/radio/uplink default_hatmask = /obj/item/clothing/head/helmet/space/hardsuit/syndi - seeStatic = 0 //Our programming is superior. hacked = TRUE flavortext = null @@ -128,7 +127,6 @@ heavy_emp_damage = 0 laws = "0. Purge all untruths and honor Ratvar." default_storage = /obj/item/storage/toolbox/brass/prefilled - seeStatic = 0 hacked = TRUE visualAppearence = CLOCKDRONE can_be_held = FALSE diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 5e62ec0d4b..3cb08e0ef7 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -133,7 +133,6 @@ to_chat(src, "Your onboard antivirus has initiated lockdown. Motor servos are impaired, ventilation access is denied, and your display reports that you are hacked to all nearby.") hacked = TRUE mind.special_role = "hacked drone" - seeStatic = 0 //I MUST SEE THEIR TERRIFIED FACES ventcrawler = VENTCRAWLER_NONE //Again, balance speed = 1 //gotta go slow message_admins("[src] ([src.key]) became a hacked drone hellbent on [clockwork ? "serving Ratvar" : "destroying the station"]!") @@ -149,21 +148,17 @@ to_chat(src, "Having been restored, your onboard antivirus reports the all-clear and you are able to perform all actions again.") hacked = FALSE mind.special_role = null - seeStatic = initial(seeStatic) ventcrawler = initial(ventcrawler) speed = initial(speed) if(is_servant_of_ratvar(src)) remove_servant_of_ratvar(src, TRUE) message_admins("[src] ([src.key]), a hacked drone, was restored to factory defaults!") update_drone_icon() - updateSeeStaticMobs() /mob/living/simple_animal/drone/proc/liberate() // F R E E D R O N E laws = "1. You are a Free Drone." to_chat(src, laws) - seeStatic = FALSE - updateSeeStaticMobs() /mob/living/simple_animal/drone/proc/update_drone_icon() //Different icons for different hack states @@ -188,9 +183,3 @@ icon_state = icon_dead else icon_state = icon_living - -/datum/action/generic/drone/select_filter - name = "Select Vision Filter" - icon_icon = 'icons/mob/actions/actions_silicon.dmi' - button_icon_state = "drone_vision" - procname = /mob/living/simple_animal/drone/verb/toggle_statics diff --git a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm index a6795678f1..0f0d4dea72 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm @@ -23,18 +23,3 @@ if(alert_s && A && stat != DEAD) var/msg = "DRONE PING: [name]: [alert_s] priority alert in [A.name]!" alert_drones(msg) - -/mob/living/simple_animal/drone/verb/toggle_statics() - set name = "Change Vision Filter" - set desc = "Change the filter on the system used to remove non drone beings from your viewscreen." - set category = "Drone" - - if(!seeStatic) - to_chat(src, "You have no vision filter to change!") - return - - var/selectedStatic = input("Select a vision filter", "Vision Filter") as null|anything in staticChoices - if(selectedStatic in staticChoices) - staticChoice = selectedStatic - - updateSeeStaticMobs() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index a0866adbbf..85c5185e95 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -139,33 +139,3 @@ . = 0 if(REPAIRDRONE,SCOUTDRONE,CLOCKDRONE) . = -6 - -/mob/living/simple_animal/drone/proc/updateSeeStaticMobs() - if(!client) - return - - for(var/i in staticOverlays) - client.images.Remove(i) - staticOverlays.Remove(i) - staticOverlays.len = 0 - - if(seeStatic) - for(var/i in GLOB.mob_living_list) - var/mob/living/L = i - if(isdrone(L) || !L.staticOverlays.len) - continue - if(isrevenant(L)) - var/mob/living/simple_animal/revenant/R = L - if (!R.revealed) - continue - var/image/chosen - if(staticChoice in L.staticOverlays) - chosen = L.staticOverlays[staticChoice] - else - chosen = L.staticOverlays["static"] - staticOverlays |= chosen - client.images |= chosen - - -/mob/living/simple_animal/drone/generateStaticOverlay() - return diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index a5a15b3d30..abe601e503 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -136,7 +136,6 @@ /mob/living/simple_animal/drone/snowflake/bardrone name = "Bardrone" desc = "A barkeeping drone, an indestructible robot built to tend bars." - seeStatic = FALSE hacked = TRUE laws = "1. Serve drinks.\n\ 2. Talk to patrons.\n\ From 4ae974644c22871c9f73a825ec891c89cec1b0f8 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Thu, 31 May 2018 00:57:06 -0400 Subject: [PATCH 012/205] Standardizes and cleans up some admin messages & logging --- code/__DEFINES/admin.dm | 2 + code/__DEFINES/construction.dm | 5 - code/__HELPERS/radiation.dm | 3 +- code/_onclick/ai.dm | 4 +- code/controllers/subsystem/blackbox.dm | 2 +- code/controllers/subsystem/communications.dm | 2 +- code/controllers/subsystem/shuttle.dm | 7 +- code/datums/brain_damage/split_personality.dm | 2 +- code/datums/components/stationloving.dm | 12 +- .../storage/concrete/bag_of_holding.dm | 4 +- code/datums/components/wet_floor.dm | 2 +- code/datums/explosion.dm | 9 +- code/datums/helper_datums/teleport.dm | 4 +- code/datums/wires/syndicatebomb.dm | 4 +- code/game/machinery/computer/apc_control.dm | 10 +- code/game/machinery/computer/arcade.dm | 8 +- .../game/machinery/computer/communications.dm | 37 +++--- .../machinery/computer/gulag_teleporter.dm | 2 +- code/game/machinery/computer/robot.dm | 8 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/doors/airlock_types.dm | 4 +- code/game/machinery/requests_console.dm | 4 +- code/game/machinery/syndicatebomb.dm | 10 +- .../game/mecha/equipment/tools/other_tools.dm | 8 +- code/game/mecha/equipment/weapons/weapons.dm | 8 +- .../effects/effect_system/effects_smoke.dm | 9 +- code/game/objects/effects/portals.dm | 2 +- .../effects/spawners/xeno_egg_delivery.dm | 7 +- code/game/objects/items/AI_modules.dm | 6 +- code/game/objects/items/cigs_lighters.dm | 8 +- .../objects/items/devices/PDA/virus_cart.dm | 6 +- code/game/objects/items/devices/powersink.dm | 4 +- .../objects/items/devices/transfer_valve.dm | 42 +++---- code/game/objects/items/dna_injector.dm | 4 +- .../objects/items/grenades/chem_grenade.dm | 19 ++- code/game/objects/items/grenades/grenade.dm | 4 +- code/game/objects/items/grenades/plastic.dm | 16 +-- code/game/objects/items/hot_potato.dm | 4 +- .../items/implants/implant_explosive.dm | 3 +- .../objects/items/implants/implantchair.dm | 4 +- code/game/objects/items/plushes.dm | 4 +- .../objects/items/stacks/sheets/mineral.dm | 4 +- code/game/objects/items/tanks/watertank.dm | 2 +- code/game/objects/items/teleportation.dm | 2 +- code/game/objects/items/theft_tools.dm | 2 +- code/game/objects/items/tools/weldingtool.dm | 6 +- code/game/objects/structures/divine.dm | 2 +- code/game/objects/structures/false_walls.dm | 4 +- code/game/objects/structures/mineral_doors.dm | 4 +- code/game/objects/structures/statues.dm | 12 +- code/game/shuttle_engines.dm | 9 +- .../turfs/simulated/floor/mineral_floor.dm | 4 +- code/game/turfs/simulated/minerals.dm | 9 +- .../turfs/simulated/wall/mineral_walls.dm | 4 +- code/modules/admin/DB_ban/functions.dm | 6 +- code/modules/admin/sound_emitter.dm | 2 +- code/modules/admin/verbs/adminjump.dm | 22 ++-- code/modules/admin/verbs/atmosdebug.dm | 10 +- code/modules/admin/verbs/borgpanel.dm | 38 +++--- code/modules/admin/verbs/debug.dm | 16 +-- code/modules/admin/verbs/diagnostics.dm | 6 +- code/modules/admin/verbs/manipulate_organs.dm | 6 +- code/modules/admin/verbs/mapping.dm | 10 +- code/modules/admin/verbs/randomverbs.dm | 20 ++-- code/modules/antagonists/cult/runes.dm | 4 +- .../antagonists/disease/disease_event.dm | 2 +- code/modules/antagonists/morph/morph.dm | 2 +- .../revenant/revenant_spawn_event.dm | 2 +- .../antagonists/slaughter/slaughterevent.dm | 2 +- code/modules/assembly/bomb.dm | 2 +- .../machinery/portable/canister.dm | 4 +- .../atmospherics/machinery/portable/pump.dm | 5 +- .../awaymissions/bluespaceartillery.dm | 2 +- .../awaymissions/mission_code/Academy.dm | 4 +- code/modules/client/client_procs.dm | 6 +- code/modules/client/verbs/suicide.dm | 7 ++ code/modules/events/alien_infestation.dm | 2 +- code/modules/events/blob.dm | 2 +- code/modules/events/devil.dm | 2 +- code/modules/events/disease_outbreak.dm | 2 +- code/modules/events/nightmare.dm | 2 +- code/modules/events/operative.dm | 2 +- .../food_and_drinks/drinks/drinks/bottle.dm | 6 +- .../food_and_drinks/food/snacks_meat.dm | 2 +- code/modules/hydroponics/grown/citrus.dm | 5 +- code/modules/hydroponics/grown/flowers.dm | 4 +- code/modules/hydroponics/grown/kudzu.dm | 4 +- code/modules/hydroponics/grown/misc.dm | 5 +- code/modules/hydroponics/grown/mushrooms.dm | 2 +- code/modules/jobs/job_types/silicon.dm | 4 +- code/modules/mapping/mapping_helpers.dm | 12 +- code/modules/mining/equipment/survival_pod.dm | 6 +- .../mining/lavaland/necropolis_chests.dm | 8 +- code/modules/mining/ores_coins.dm | 13 +- code/modules/mob/living/carbon/carbon.dm | 4 +- code/modules/mob/living/silicon/ai/say.dm | 4 +- .../mob/living/silicon/robot/robot_defense.dm | 2 +- code/modules/mob/mob_helpers.dm | 4 +- code/modules/ninja/ninja_event.dm | 2 +- code/modules/power/cable.dm | 2 +- code/modules/power/gravitygenerator.dm | 5 +- code/modules/power/rtg.dm | 4 +- code/modules/power/singularity/emitter.dm | 112 ++++++++++-------- .../power/singularity/field_generator.dm | 5 +- .../particle_accelerator/particle_control.dm | 18 +-- code/modules/power/singularity/singularity.dm | 5 +- code/modules/power/smes.dm | 13 +- code/modules/projectiles/guns/energy/pulse.dm | 2 +- .../projectiles/guns/misc/blastcannon.dm | 2 +- .../projectiles/guns/misc/grenade_launcher.dm | 4 +- .../chemistry/machinery/smoke_machine.dm | 6 +- code/modules/reagents/chemistry/recipes.dm | 4 +- .../chemistry/recipes/pyrotechnics.dm | 7 +- .../chemistry/recipes/slime_extracts.dm | 5 +- code/modules/reagents/reagent_containers.dm | 6 +- .../reagents/reagent_containers/glass.dm | 6 +- .../reagents/reagent_containers/spray.dm | 13 +- code/modules/reagents/reagent_dispenser.dm | 7 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/research/experimentor.dm | 8 +- .../ruins/objects_and_mobs/necropolis_gate.dm | 2 +- code/modules/shuttle/emergency.dm | 10 +- code/modules/shuttle/manipulator.dm | 9 +- code/modules/shuttle/supply.dm | 2 +- .../spells/spell_types/rightandwrong.dm | 2 +- code/modules/station_goals/bsa.dm | 2 +- code/modules/surgery/advanced/brainwashing.dm | 2 +- code/modules/surgery/organs/vocal_cords.dm | 2 +- 128 files changed, 442 insertions(+), 471 deletions(-) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 94a247171c..d730987d85 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -58,7 +58,9 @@ #define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]" #define ADMIN_JMP(src) "(JMP)" #define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" +#define AREACOORD(src) "[src ? "[get_area_name(src, TRUE)] ([src.x], [src.y], [src.z])" : "nonexistent location"]" #define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" +#define ADMIN_VERBOSEJMP(src) "[src ? "[AREACOORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" #define ADMIN_INDIVIDUALLOG(user) "(LOGS)" #define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt" diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index c5c88b18f1..157069f4eb 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -45,11 +45,6 @@ #define GLASS_CORE 4 #define AI_READY_CORE 5 -//emitter construction defines -#define EM_UNSECURED 0 -#define EM_SECURED 1 -#define EM_WELDED 2 - //Construction defines for the pinion airlock #define GEAR_SECURE 1 #define GEAR_LOOSE 2 diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index 8418cc8505..93dcdb4b0e 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -42,5 +42,6 @@ last_huge_pulse = world.time log = TRUE if(log) - log_game("Radiation pulse with intensity:[intensity] and range modifier:[range_modifier] in area [get_area(source)] ") + var/turf/_source_T = isturf(source) ? source : get_turf(source) + log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [AREACOORD(_source_T)] ") return TRUE \ No newline at end of file diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 9ef689de8b..aafed7c178 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -38,8 +38,8 @@ if(!can_see(A)) if(isturf(A)) //On unmodified clients clicking the static overlay clicks the turf underneath return //So there's no point messaging admins - message_admins("[key_name_admin(src)] might be running a modified client! (failed can_see on AI click of [A]([ADMIN_COORDJMP(pixel_turf)]))") - var/message = "[key_name(src)] might be running a modified client! (failed can_see on AI click of [A]([COORD(pixel_turf)]))" + message_admins("[ADMIN_LOOKUPFLW(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [ADMIN_VERBOSEJMP(pixel_turf)]))") + var/message = "[key_name(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [AREACOORD(pixel_turf)]))" log_admin(message) if(REALTIMEOFDAY >= chnotify + 9000) chnotify = REALTIMEOFDAY diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 351852e00a..4d63491b02 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -287,7 +287,7 @@ Versioning first_death["role"] = null if(L.mind.assigned_role) first_death["role"] = L.mind.assigned_role - first_death["area"] = "[get_area_name(L, TRUE)] [COORD(L)]" + first_death["area"] = "[AREACOORD(L)]" first_death["damage"] = "[sqlbrute]/[sqlfire]/[sqltox]/[sqloxy]/[sqlclone]" first_death["last_words"] = L.last_words var/datum/DBQuery/query_report_death = SSdbcore.NewQuery("INSERT INTO [format_table_name("death")] (pod, x_coord, y_coord, z_coord, mapname, server_ip, server_port, round_id, tod, job, special, name, byondkey, laname, lakey, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, last_words, suicide) VALUES ('[sqlpod]', '[x_coord]', '[y_coord]', '[z_coord]', '[map]', INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]', [GLOB.round_id], '[SQLtime()]', '[sqljob]', '[sqlspecial]', '[sqlname]', '[sqlkey]', '[laname]', '[lakey]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[last_words]', [suicide])") diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index d4838a21c3..5a791e28ef 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(communications) priority_announce(html_decode(user.treat_message(input)), null, 'sound/misc/announce.ogg', "Captain") nonsilicon_message_cooldown = world.time + COMMUNICATION_COOLDOWN log_talk(user,"[key_name(user)] has made a priority announcement: [input]",LOGSAY) - message_admins("[key_name_admin(user)] has made a priority announcement.") + message_admins("[ADMIN_LOOKUPFLW(user)] has made a priority announcement.") /datum/controller/subsystem/communications/proc/send_message(datum/comm_message/sending,print = TRUE,unique = FALSE) for(var/obj/machinery/computer/communications/C in GLOB.machines) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 3ffb669084..fe57bca354 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -277,7 +277,7 @@ SUBSYSTEM_DEF(shuttle) if(call_reason) SSblackbox.record_feedback("text", "shuttle_reason", 1, "[call_reason]") log_game("Shuttle call reason: [call_reason]") - message_admins("[key_name_admin(user)] has called the shuttle. (TRIGGER CENTCOM RECALL)") + message_admins("[ADMIN_LOOKUPFLW(user)] has called the shuttle. (TRIGGER CENTCOM RECALL)") /datum/controller/subsystem/shuttle/proc/centcom_recall(old_timer, admiral_message) if(emergency.mode != SHUTTLE_CALL || emergency.timer != old_timer) @@ -310,9 +310,8 @@ SUBSYSTEM_DEF(shuttle) if(canRecall()) emergency.cancel(get_area(user)) log_game("[key_name(user)] has recalled the shuttle.") - message_admins("[key_name_admin(user)] has recalled the shuttle.") - var/area/A = get_area(user) - deadchat_broadcast("[user.real_name] has recalled the shuttle at [A.name].", user) + message_admins("[ADMIN_LOOKUPFLW(user)] has recalled the shuttle.") + deadchat_broadcast("[user.real_name] has recalled the shuttle from [get_area_name(user, TRUE)].", user) return 1 /datum/controller/subsystem/shuttle/proc/canRecall() diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index f33a69a3af..a1f6ff15fb 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -28,7 +28,7 @@ var/mob/dead/observer/C = pick(candidates) stranger_backseat.key = C.key log_game("[key_name(stranger_backseat)] became [key_name(owner)]'s split personality.") - message_admins("[key_name_admin(stranger_backseat)] became [key_name_admin(owner)]'s split personality.") + message_admins("[ADMIN_LOOKUPFLW(stranger_backseat)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.") else qdel(src) diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index ecfb0ca902..136431b5ee 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -39,9 +39,9 @@ var/turf/currentturf = get_turf(src) to_chat(get(parent, /mob), "You can't help but feel that you just lost something back there...") var/turf/targetturf = relocate() - log_game("[parent] has been moved out of bounds in [COORD(currentturf)]. Moving it to [COORD(targetturf)].") + log_game("[parent] has been moved out of bounds in [AREACOORD(currentturf)]. Moving it to [AREACOORD(targetturf)].") if(inform_admins) - message_admins("[parent] has been moved out of bounds in [ADMIN_COORDJMP(currentturf)]. Moving it to [ADMIN_COORDJMP(targetturf)].") + message_admins("[parent] has been moved out of bounds in [ADMIN_VERBOSEJMP(currentturf)]. Moving it to [ADMIN_VERBOSEJMP(targetturf)].") /datum/component/stationloving/proc/check_soul_imbue() return disallow_soul_imbue @@ -67,13 +67,13 @@ var/turf/T = get_turf(parent) if(inform_admins && force) - message_admins("[parent] has been !!force deleted!! in [ADMIN_COORDJMP(T)].") - log_game("[parent] has been !!force deleted!! in [COORD(T)].") + message_admins("[parent] has been !!force deleted!! in [ADMIN_VERBOSEJMP(T)].") + log_game("[parent] has been !!force deleted!! in [AREACOORD(T)].") if(!force) var/turf/targetturf = relocate() - log_game("[parent] has been destroyed in [COORD(T)]. Moving it to [COORD(targetturf)].") + log_game("[parent] has been destroyed in [AREACOORD(T)]. Moving it to [AREACOORD(targetturf)].") if(inform_admins) - message_admins("[parent] has been destroyed in [ADMIN_COORDJMP(T)]. Moving it to [ADMIN_COORDJMP(targetturf)].") + message_admins("[parent] has been destroyed in [ADMIN_VERBOSEJMP(T)]. Moving it to [ADMIN_VERBOSEJMP(targetturf)].") return TRUE return FALSE diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm index 6b624afadb..c14b1f5270 100644 --- a/code/datums/components/storage/concrete/bag_of_holding.dm +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -18,8 +18,8 @@ if(istype(T, /turf/open/space/transit)) continue T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic) - message_admins("[ADMIN_LOOKUPFLW(user)] detonated a bag of holding at [get_area_name(loccheck, TRUE)] [ADMIN_COORDJMP(loccheck)].") - log_game("[key_name(user)] detonated a bag of holding at [get_area_name(loccheck, TRUE)] [COORD(loccheck)].") + message_admins("[ADMIN_LOOKUPFLW(user)] detonated a bag of holding at [ADMIN_VERBOSEJMP(loccheck)].") + log_game("[key_name(user)] detonated a bag of holding at [AREACOORD(loccheck)].") qdel(A) return . = ..() diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 0baddd87eb..49c628385b 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -175,7 +175,7 @@ if(!LAZYLEN(time_left_list)) if(on_init) var/turf/T = parent - stack_trace("Warning: Wet floor component gc'd right initializatoin! What a waste of time and CPU! Type = [T? T.type : "ERROR - NO PARENT"], Coords = [istype(T)? COORD(T) : "ERROR - INVALID PARENT"].") + stack_trace("Warning: Wet floor component gc'd right after initialization! What a waste of time and CPU! Type = [T? T.type : "ERROR - NO PARENT"], Location = [istype(T)? AREACOORD(T) : "ERROR - INVALID PARENT"].") qdel(src) return TRUE return FALSE diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 7e9e9c870f..78314d4fd3 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -84,16 +84,15 @@ GLOBAL_LIST_EMPTY(explosions) var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flame_range) - var/area/epi_area = get_area(epicenter) if(adminlog) - message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area: [epi_area] [ADMIN_COORDJMP(epicenter)]") - log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") + message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [ADMIN_VERBOSEJMP(epicenter)]") + log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [AREACOORD(epicenter)]") var/x0 = epicenter.x var/y0 = epicenter.y var/z0 = epicenter.z - - SSblackbox.record_feedback("associative", "explosion", 1, list("dev" = devastation_range, "heavy" = heavy_impact_range, "light" = light_impact_range, "flash" = flash_range, "flame" = flame_range, "orig_dev" = orig_dev_range, "orig_heavy" = orig_heavy_range, "orig_light" = orig_light_range, "x" = x0, "y" = y0, "z" = z0, "area" = epi_area.type)) + var/area/areatype = get_area(epicenter) + SSblackbox.record_feedback("associative", "explosion", 1, list("dev" = devastation_range, "heavy" = heavy_impact_range, "light" = light_impact_range, "flash" = flash_range, "flame" = flame_range, "orig_dev" = orig_dev_range, "orig_heavy" = orig_heavy_range, "orig_light" = orig_light_range, "x" = x0, "y" = y0, "z" = z0, "area" = areatype.type)) // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. // Stereo users will also hear the direction of the explosion! diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index ce5f5df1d9..e5d43fd02b 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -112,13 +112,13 @@ if(force_teleport) teleatom.forceMove(destturf) if(ismegafauna(teleatom)) - message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].") + message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_VERBOSEJMP(curturf)] to [ADMIN_VERBOSEJMP(destturf)].") playSpecials(destturf,effectout,soundout) else if(teleatom.Move(destturf)) playSpecials(destturf,effectout,soundout) if(ismegafauna(teleatom)) - message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].") + message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_VERBOSEJMP(curturf)] to [ADMIN_VERBOSEJMP(destturf)].") if(ismob(teleatom)) var/mob/M = teleatom M.cancel_camera() diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index 043110f5d3..92cc1770b3 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -88,5 +88,5 @@ if(istype(B, /obj/machinery/syndicatebomb/training)) return var/turf/T = get_turf(B) - log_game("\A [B] was detonated via boom wire at [COORD(T)].") - message_admins("A [B.name] was detonated via boom wire at [ADMIN_COORDJMP(T)].") + log_game("\A [B] was detonated via boom wire at [AREACOORD(T)].") + message_admins("A [B.name] was detonated via boom wire at [ADMIN_VERBOSEJMP(T)].") diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 648432c0ea..6ade93b520 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -122,12 +122,12 @@ active_apc.locked = TRUE active_apc.update_icon() active_apc = null - to_chat(usr, "[icon2html(src, usr)] Connected to APC in [APC.area]. Interface request sent.") - log_activity("remotely accessed APC in [APC.area]") + to_chat(usr, "[icon2html(src, usr)] Connected to APC in [get_area_name(APC.area, TRUE)]. Interface request sent.") + log_activity("remotely accessed APC in [get_area_name(APC.area, TRUE)]") APC.ui_interact(usr, state = GLOB.not_incapacitated_state) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - message_admins("[key_name_admin(usr)] remotely accessed [APC] from [src] at [get_area(src)].") - log_game("[key_name(usr)] remotely accessed [APC] from [src] at [get_area(src)].") + message_admins("[ADMIN_LOOKUPFLW(usr)] remotely accessed [APC] from [src] at [AREACOORD(src)].") + log_game("[key_name(usr)] remotely accessed [APC] from [src] at [AREACOORD(src)].") if(APC.locked) APC.say("Remote access detected. Interface unlocked.") playsound(APC, 'sound/machines/boltsup.ogg', 25, 0) @@ -188,7 +188,7 @@ log_activity("logged in") else if(!(obj_flags & EMAGGED)) user.visible_message("You emag [src], disabling precise logging and allowing you to clear logs.") - log_game("[key_name(user)] emagged [src] at [get_area(src)], disabling operator tracking.") + log_game("[key_name(user)] emagged [src] at [AREACOORD(src)], disabling operator tracking.") obj_flags |= EMAGGED playsound(src, "sparks", 50, 1) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9dad813677..97f0bae92d 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -233,7 +233,7 @@ if(obj_flags & EMAGGED) new /obj/effect/spawner/newbomb/timer/syndicate(loc) new /obj/item/clothing/head/collectable/petehat(loc) - message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") + message_admins("[ADMIN_LOOKUPFLW(usr)] has outbombed Cuban Pete and been awarded a bomb.") log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.") Reset() obj_flags &= ~EMAGGED @@ -1028,7 +1028,7 @@ say("Congratulations, you made it to Orion!") if(obj_flags & EMAGGED) new /obj/item/orion_ship(loc) - message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") + message_admins("[ADMIN_LOOKUPFLW(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.") else prizevend(user) @@ -1073,8 +1073,8 @@ if(active) return - message_admins("[key_name_admin(usr)] primed an explosive Orion ship for detonation.") - log_game("[key_name(usr)] primed an explosive Orion ship for detonation.") + message_admins("[ADMIN_LOOKUPFLW(usr)] primed an explosive Orion ship for detonation at [AREACOORD(usr)].") + log_game("[key_name(usr)] primed an explosive Orion ship for detonation at [AREACOORD(usr)].") to_chat(user, "You flip the switch on the underside of [src].") active = 1 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 14d02e9752..d28a70e11f 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -56,8 +56,6 @@ return usr.set_machine(src) - var/area/A = get_area(usr) - var/area_name = A.name if(!href_list["operation"]) return @@ -115,9 +113,9 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) //Only notify people if an actual change happened var/security_level = get_security_level() - log_game("[key_name(usr)] has changed the security level to [security_level].") - message_admins("[key_name_admin(usr)] has changed the security level to [security_level].") - deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] at [area_name].", usr) + log_game("[key_name(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].") + message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] with [src] at [AREACOORD(usr)].") + deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] with [src] at [get_area_name(usr, TRUE)].", usr) tmp_alertlevel = 0 else to_chat(usr, "You are not authorized to do this!") @@ -146,7 +144,7 @@ send2otherserver("[station_name()]", input,"Comms_Console") minor_announce(input, title = "Outgoing message to allied station") log_talk(usr,"[key_name(usr)] has sent a message to the other server: [input]",LOGSAY) - message_admins("[key_name_admin(usr)] has sent a message to the other server.") + message_admins("[ADMIN_LOOKUPFLW(usr)] has sent a message to the other server.") deadchat_broadcast("[usr.real_name] has sent an outgoing message to the other station(s).", usr) CM.lastTimeUsed = world.time @@ -176,7 +174,7 @@ M.action_load(S) SSshuttle.points -= S.credit_cost minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase") - message_admins("[key_name_admin(usr)] purchased [S.name].") + message_admins("[ADMIN_LOOKUPFLW(usr)] purchased [S.name].") SSblackbox.record_feedback("text", "shuttle_purchase", 1, "[S.name]") else to_chat(usr, "Something went wrong! The shuttle exchange system seems to be down.") @@ -249,14 +247,14 @@ if("enableemergency") make_maint_all_access() log_game("[key_name(usr)] enabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") - deadchat_broadcast("[usr.real_name] enabled emergency maintenance access at [area_name].", usr) + message_admins("[ADMIN_LOOKUPFLW(usr)] enabled emergency maintenance access.") + deadchat_broadcast("[usr.real_name] enabled emergency maintenance access at [get_area_name(usr, TRUE)].", usr) state = STATE_DEFAULT if("disableemergency") revoke_maint_all_access() log_game("[key_name(usr)] disabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") - deadchat_broadcast("[usr.real_name] disabled emergency maintenance access at [area_name].", usr) + message_admins("[ADMIN_LOOKUPFLW(usr)] disabled emergency maintenance access.") + deadchat_broadcast("[usr.real_name] disabled emergency maintenance access at [get_area_name(usr, TRUE)].", usr) state = STATE_DEFAULT // Status display stuff @@ -290,7 +288,7 @@ CentCom_announce(input, usr) to_chat(usr, "Message transmitted to Central Command.") log_talk(usr,"[key_name(usr)] has made a CentCom announcement: [input]",LOGSAY) - deadchat_broadcast("[usr.real_name] has messaged CentCom, \"[input]\" at [area_name].", usr) + deadchat_broadcast("[usr.real_name] has messaged CentCom, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time // OMG SYNDICATE ...LETTERHEAD @@ -307,7 +305,7 @@ Syndicate_announce(input, usr) to_chat(usr, "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.") log_talk(usr,"[key_name(usr)] has made a Syndicate announcement: [input]",LOGSAY) - deadchat_broadcast("[usr.real_name] has messaged the Syndicate, \"[input]\" at [area_name].", usr) + deadchat_broadcast("[usr.real_name] has messaged the Syndicate, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time if("RestoreBackup") @@ -388,9 +386,9 @@ if(GLOB.security_level != old_level) //Only notify people if an actual change happened var/security_level = get_security_level() - log_game("[key_name(usr)] has changed the security level to [security_level].") - message_admins("[key_name_admin(usr)] has changed the security level to [security_level].") - deadchat_broadcast("[usr.real_name] has changed the security level to [security_level].", usr) + log_game("[key_name(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].") + message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [security_level] from [src] at [AREACOORD(usr)].") + deadchat_broadcast("[usr.real_name] has changed the security level to [security_level] from [src] at [get_area_name(usr, TRUE)].", usr) tmp_alertlevel = 0 aistate = STATE_DEFAULT if("ai-changeseclevel") @@ -400,13 +398,13 @@ if("ai-enableemergency") make_maint_all_access() log_game("[key_name(usr)] enabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") + message_admins("[ADMIN_LOOKUPFLW(usr)] enabled emergency maintenance access.") deadchat_broadcast("[usr.real_name] enabled emergency maintenance access.", usr) aistate = STATE_DEFAULT if("ai-disableemergency") revoke_maint_all_access() log_game("[key_name(usr)] disabled emergency maintenance access.") - message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") + message_admins("[ADMIN_LOOKUPFLW(usr)] disabled emergency maintenance access.") deadchat_broadcast("[usr.real_name] disabled emergency maintenance access.", usr) aistate = STATE_DEFAULT @@ -700,8 +698,7 @@ if(!input || !user.canUseTopic(src)) return SScommunications.make_announcement(user, is_silicon, input) - var/area/A = get_area(user) - deadchat_broadcast("[user.real_name] made an priority announcement at [A.name].", user) + deadchat_broadcast("[user.real_name] made an priority announcement from [get_area_name(usr, TRUE)].", user) /obj/machinery/computer/communications/proc/post_status(command, data1, data2) diff --git a/code/game/machinery/computer/gulag_teleporter.dm b/code/game/machinery/computer/gulag_teleporter.dm index 4e80883a31..98c398a2c2 100644 --- a/code/game/machinery/computer/gulag_teleporter.dm +++ b/code/game/machinery/computer/gulag_teleporter.dm @@ -148,7 +148,7 @@ id_goal_not_set = TRUE id.goal = default_goal say("[id]'s ID card goal defaulting to [id.goal] points.") - log_game("[user]([user.ckey] teleported [prisoner]([prisoner.ckey]) to the Labor Camp ([beacon.x], [beacon.y], [beacon.z]) for [id_goal_not_set ? "default goal of ":""][id.goal] points.") + log_game("[user]([user.ckey] teleported [prisoner]([prisoner.ckey]) to the Labor Camp [COORD(beacon)] for [id_goal_not_set ? "default goal of ":""][id.goal] points.") teleporter.handle_prisoner(id, temporary_record) playsound(src, 'sound/weapons/emitter.ogg', 50, 1) prisoner.forceMove(get_turf(beacon)) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index c0d514f9a5..41aaac85db 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -104,7 +104,7 @@ var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm" && can_control(usr, R) && !..()) var/turf/T = get_turf(R) - message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name(R, R.client)][ADMIN_JMP(T)]!") + message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(R, R.client)] at [ADMIN_VERBOSEJMP(T)]!") log_game("\[key_name(usr)] detonated [key_name(R)]!") if(R.connected_ai) to_chat(R.connected_ai, "

ALERT - Cyborg detonation detected: [R.name]
") @@ -134,7 +134,7 @@ var/mob/living/silicon/robot/R = locate(href_list["magbot"]) in GLOB.silicon_mobs if(istype(R) && !R.emagged && (R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) log_game("[key_name(usr)] emagged [R.name] using robotic console!") - message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)] using robotic console!") + message_admins("[ADMIN_LOOKUPFLW(usr)] emagged cyborg [key_name_admin(R)] using robotic console!") R.SetEmagged(1) else if(href_list["convert"]) @@ -142,7 +142,7 @@ var/mob/living/silicon/robot/R = locate(href_list["convert"]) in GLOB.silicon_mobs if(istype(R) && !is_servant_of_ratvar(R) && R.connected_ai == usr) log_game("[key_name(usr)] converted [R.name] using robotic console!") - message_admins("[key_name_admin(usr)] converted cyborg [key_name_admin(R)] using robotic console!") + message_admins("[ADMIN_LOOKUPFLW(usr)] converted cyborg [key_name_admin(R)] using robotic console!") add_servant_of_ratvar(R) else if (href_list["killdrone"]) @@ -152,7 +152,7 @@ to_chat(usr, "ERROR: [D] is not responding to external commands.") else var/turf/T = get_turf(D) - message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(D)][ADMIN_JMP(T)]!") + message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name_admin(D)] at [ADMIN_VERBOSEJMP(T)]!") log_game("[key_name(usr)] detonated [key_name(D)]!") var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(3, 1, D) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 00c683af85..65d1264030 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -178,7 +178,7 @@ limit-- while(!FoundDoor && limit) if (!FoundDoor) - log_world("### MAP WARNING, [src] at [get_area_name(src, TRUE)] [COORD(src)] failed to find a valid airlock to cyclelink with!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] failed to find a valid airlock to cyclelink with!") return FoundDoor.cyclelinkedairlock = src cyclelinkedairlock = FoundDoor diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 69621adc84..86eea4b258 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -222,8 +222,8 @@ /obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params) if(C.is_hot() > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma airlock ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]") - log_game("Plasma airlock ignited by [key_name(user)] in [COORD(src)]") + message_admins("Plasma airlock ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]") + log_game("Plasma airlock ignited by [key_name(user)] in [AREACOORD(src)]") ignite(C.is_hot()) else return ..() diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 36793900bf..a9d19c3995 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -303,8 +303,8 @@ GLOBAL_LIST_EMPTY(allConsoles) message = L.treat_message(message) minor_announce(message, "[department] Announcement:") GLOB.news_network.SubmitArticle(message, department, "Station Announcements", null) - log_talk(usr,"[key_name(usr)] has made a station announcement: [message]",LOGSAY) - message_admins("[key_name_admin(usr)] has made a station announcement.") + log_talk(usr,"[key_name(usr)] has made a station announcement from [src] at [AREACOORD(usr)]: [message]",LOGSAY) + message_admins("[ADMIN_LOOKUPFLW(usr)] has made a station announcement from [src] at [AREACOORD(usr)].") announceAuth = FALSE message = "" screen = 0 diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 605676fc27..fb45d6029f 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -209,10 +209,9 @@ add_fingerprint(user) var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) if(payload && !istype(payload, /obj/item/bombcore/training)) - message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] ([payload]) for detonation at [A.name] [ADMIN_JMP(bombturf)].") - log_game("[key_name(user)] has primed a [name] ([payload]) for detonation at [A.name][COORD(bombturf)]") + message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] ([payload]) for detonation at [ADMIN_VERBOSEJMP(bombturf)].") + log_game("[key_name(user)] has primed a [name] ([payload]) for detonation at [AREACOORD(bombturf)]") payload.adminlog = "The [name] that [key_name(user)] had primed detonated!" ///Bomb Subtypes/// @@ -523,12 +522,11 @@ to_chat(user, "[existant] found, [detonated] triggered.") if(detonated) var/turf/T = get_turf(src) - var/area/A = get_area(T) detonated-- - var/log_str = "[ADMIN_LOOKUPFLW(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] [ADMIN_JMP(T)]." + var/log_str = "[ADMIN_LOOKUPFLW(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [ADMIN_VERBOSEJMP(T)]." GLOB.bombers += log_str message_admins(log_str) - log_game("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name][COORD(T)]") + log_game("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [AREACOORD(T)]") detonated = 0 existant = 0 timer = world.time + BUTTON_COOLDOWN diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index 0d1651c491..b7796849f1 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -58,8 +58,8 @@ return var/list/obj/effect/portal/created = create_portal_pair(get_turf(src), target_turf, src, 300, 1, /obj/effect/portal/anom) var/turf/T = get_turf(target) - message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Wormhole Generator in [ADMIN_COORDJMP(T)]",0,1) - log_game("[key_name(chassis.occupant)] used a Wormhole Generator in [COORD(T)]") + message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Wormhole Generator in [ADMIN_VERBOSEJMP(T)]") + log_game("[key_name(chassis.occupant)] used a Wormhole Generator in [AREACOORD(T)]") src = null QDEL_LIST_IN(created, rand(150,300)) return 1 @@ -97,7 +97,7 @@ locked.throw_at(target, 14, 1.5) locked = null send_byjax(chassis.occupant,"exosuit.browser","[REF(src)]",src.get_equip_info()) - log_game("[key_name(chassis.occupant)] used a Gravitational Catapult to throw [locked]([COORD(orig)]) at [target]([COORD(targ)]).") + log_game("[key_name(chassis.occupant)] used a Gravitational Catapult to throw [locked] (From [AREACOORD(orig)]) at [target] ([AREACOORD(targ)]).") return TRUE else locked = null @@ -118,7 +118,7 @@ step_away(A,target) sleep(2) var/turf/T = get_turf(target) - log_game("[key_name(chassis.occupant)] used a Gravitational Catapult repulse wave on ([COORD(T)])") + log_game("[key_name(chassis.occupant)] used a Gravitational Catapult repulse wave on [AREACOORD(T)]") return TRUE diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 50d1f0be0d..fe10bf510b 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -186,8 +186,8 @@ log_message("Honked from [src.name]. HONK!") var/turf/T = get_turf(src) - message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Mecha Honker in [ADMIN_COORDJMP(T)]",0,1) - log_game("[chassis.occupant.ckey]([chassis.occupant]) used a Mecha Honker in [COORD(T)]") + message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Mecha Honker in [ADMIN_VERBOSEJMP(T)]") + log_game("[chassis.occupant.ckey]([chassis.occupant]) used a Mecha Honker in [AREACOORD(T)]") return 1 @@ -336,8 +336,8 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/proj_init(var/obj/item/grenade/flashbang/F) var/turf/T = get_turf(src) - message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_COORDJMP(T)]",0,1) - log_game("[key_name(chassis.occupant)] fired a [src] [COORD(T)]") + message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_VERBOSEJMP(T)]") + log_game("[key_name(chassis.occupant)] fired a [src] in [AREACOORD(T)]") addtimer(CALLBACK(F, /obj/item/grenade/flashbang.proc/prime), det_time) /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 80e5877fe7..5618ca9a91 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -279,20 +279,19 @@ contained += " [reagent] " if(contained) contained = "\[[contained]\]" - var/area/A = get_area(location) - var/where = "[A.name] | [location.x], [location.y]" + var/where = "[AREACOORD(location)]" var/whereLink = "[where]" if(carry.my_atom.fingerprintslast) var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast) var/more = "" if(M) - more = "(?) (FLW) " - message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1) + more = "[ADMIN_LOOKUPFLW(M)] " + message_admins("Smoke: ([whereLink])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].") log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].") else - message_admins("Smoke: ([whereLink])[contained]. No associated key.", 0, 1) + message_admins("Smoke: ([whereLink])[contained]. No associated key.") log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.") diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 65e216fd4c..e3a5c85719 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -153,7 +153,7 @@ if(!force && (!ismecha(M) && !istype(M, /obj/item/projectile) && M.anchored && !allow_anchored)) return if(ismegafauna(M)) - message_admins("[M] has used a portal at [ADMIN_COORDJMP(src)] made by [usr].") + message_admins("[M] has used a portal at [ADMIN_VERBOSEJMP(src)] made by [usr].") if(do_teleport(M, real_target, innate_accuracy_penalty)) if(istype(M, /obj/item/projectile)) var/obj/item/projectile/P = M diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm index 593c953adf..a41f4b4c9b 100644 --- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm +++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm @@ -7,14 +7,13 @@ /obj/effect/spawner/xeno_egg_delivery/Initialize(mapload) ..() var/turf/T = get_turf(src) - var/area/A = get_area(T) new /obj/structure/alien/egg(T) new /obj/effect/temp_visual/gravpush(T) playsound(T, 'sound/items/party_horn.ogg', 50, 1, -1) - message_admins("An alien egg has been delivered to [A] at [ADMIN_COORDJMP(T)].") - log_game("An alien egg has been delivered to [A] at [COORD(T)]") - var/message = "Attention [station_name()], we have entrusted you with a research specimen in [A]. Remember to follow all safety precautions when dealing with the specimen." + message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].") + log_game("An alien egg has been delivered to [AREACOORD(T)]") + var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen." SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /.proc/print_command_report, message), announcement_time)) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 5d83f3ac1e..5d41b90dc0 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -55,7 +55,7 @@ AI MODULES tot_laws++ if(tot_laws > CONFIG_GET(number/silicon_max_law_amount) && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset to_chat(user, "Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the AI core"]'s law processor to handle this amount of laws.") - message_admins("[key_name_admin(user)] tried to upload laws to [law_datum.owner ? key_name_admin(law_datum.owner) : "an AI core"] that would exceed the law cap.") + message_admins("[ADMIN_LOOKUPFLW(user)] tried to upload laws to [law_datum.owner ? ADMIN_LOOKUPFLW(law_datum.owner) : "an AI core"] that would exceed the law cap.") overflow = TRUE var/law2log = transmitInstructions(law_datum, user, overflow) //Freeforms return something extra we need to log @@ -69,8 +69,8 @@ AI MODULES var/ainame = law_datum.owner ? law_datum.owner.name : "empty AI core" var/aikey = law_datum.owner ? law_datum.owner.ckey : "null" GLOB.lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""]") - log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]).[law2log ? " The law specified [law2log]" : ""]") - message_admins("[key_name_admin(user)] used [src.name] on [key_name_admin(law_datum.owner)].[law2log ? " The law specified [law2log]" : ""]") + log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]) from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]") + message_admins("[ADMIN_LOOKUPFLW(user)] used [src.name] on [ADMIN_LOOKUPFLW(law_datum.owner)] from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]") //The proc that actually changes the silicon's laws. /obj/item/aiModule/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow = FALSE) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index ed8db43bfa..7284390537 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -72,8 +72,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(!isliving(M)) return if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") + message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") + log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) if(lit && cig && user.a_intent == INTENT_HELP) if(cig.lit) @@ -569,8 +569,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") + message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") + log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) if(lit && cig && user.a_intent == INTENT_HELP) if(cig.lit) diff --git a/code/game/objects/items/devices/PDA/virus_cart.dm b/code/game/objects/items/devices/PDA/virus_cart.dm index dfbf6db88c..2544cc0154 100644 --- a/code/game/objects/items/devices/PDA/virus_cart.dm +++ b/code/game/objects/items/devices/PDA/virus_cart.dm @@ -75,10 +75,8 @@ if(!target.detonatable || prob(difficulty * 15) || (hidden_uplink)) U.show_message("An error flashes on your [src].", 1) else - var/turf/T = get_turf(target) - var/area/A = get_area(T) - message_admins("[!is_special_character(U) ? "Non-antag " : ""][key_name_admin(U)][ADMIN_FLW(U)] triggered a PDA explosion on [target.name] at [A] [ADMIN_COORDJMP(T)].") - var/message_log = "triggered a PDA explosion on [target.name] at at [A] [COORD(T)]." + message_admins("[!is_special_character(U) ? "Non-antag " : ""][ADMIN_LOOKUPFLW(U)] triggered a PDA explosion on [target.name] at [ADMIN_VERBOSEJMP(target)].") + var/message_log = "triggered a PDA explosion on [target.name] at at [AREACOORD(target)]." U.log_message(message_log, INDIVIDUAL_ATTACK_LOG) log_game("[key_name(U)] [message_log]") log_attack("[key_name(U)] [message_log]") diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 8d36fd9986..1a5c7a9b43 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -100,8 +100,8 @@ "[user] activates \the [src]!", \ "You activate \the [src].", "You hear a click.") - message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(src)]") - log_game("Power sink activated by [key_name(user)] at [COORD(src)]") + message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_VERBOSEJMP(src)]") + log_game("Power sink activated by [key_name(user)] at [AREACOORD(src)]") set_mode(OPERATING) if(OPERATING) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index c6028b1193..0ef20dea19 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -52,7 +52,7 @@ A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). GLOB.bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + message_admins("[ADMIN_LOOKUPFLW(user)] attached a [item] to a transfer valve.") log_game("[key_name(user)] attached a [item] to a transfer valve.") attacher = user return @@ -184,41 +184,33 @@ if(!valve_open && tank_one && tank_two) valve_open = TRUE var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - var/attachment = "no device" + var/attachment if(attached_device) if(istype(attached_device, /obj/item/assembly/signaler)) attachment = "[attached_device]" else attachment = attached_device - var/attacher_name = "" - if(!attacher) - attacher_name = "Unknown" - else - attacher_name = "[key_name_admin(attacher)]" + var/admin_attachment_message + var/attachment_message + if(attachment) + admin_attachment_message = " with [attachment] attached by [attacher ? ADMIN_LOOKUPFLW(attacher) : "Unknown"]" + attachment_message = " with [attachment] attached by [attacher ? key_name_admin(attacher) : "Unknown"]" - var/log_str1 = "Bomb valve opened in " - var/log_str2 = "with [attachment] attacher: [attacher_name]" + var/mob/bomber = get_mob_by_key(fingerprintslast) + var/admin_bomber_message + var/bomber_message + if(bomber) + admin_bomber_message = " - Last touched by: [ADMIN_LOOKUPFLW(bomber)]" + bomber_message = " - Last touched by: [key_name_admin(bomber)]" - var/log_attacher = "" - if(attacher) - log_attacher = "[ADMIN_QUE(attacher)] [ADMIN_FLW(attacher)]" - var/mob/mob = get_mob_by_key(src.fingerprintslast) - var/last_touch_info = "" - if(mob) - last_touch_info = "[ADMIN_QUE(mob)] [ADMIN_FLW(mob)]" + var/admin_bomb_message = "Bomb valve opened in [ADMIN_VERBOSEJMP(bombturf)][admin_attachment_message][admin_bomber_message]" + GLOB.bombers += admin_bomb_message + message_admins(admin_bomb_message, 0, 1) + log_game("Bomb valve opened in [AREACOORD(bombturf)][attachment_message][bomber_message]") - var/log_str3 = " Last touched by: [key_name_admin(mob)]" - - var/bomb_message = "[log_str1] [A.name][ADMIN_JMP(bombturf)] [log_str2][log_attacher] [log_str3][last_touch_info]" - - GLOB.bombers += bomb_message - - message_admins(bomb_message, 0, 1) - log_game("[log_str1] [A.name][COORD(bombturf)] [log_str2] [log_str3]") merge_gases() for(var/i in 1 to 6) addtimer(CALLBACK(src, .proc/update_icon), 20 + (i - 1) * 10) diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index 0e8c82d963..a4b9cf708b 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -38,7 +38,7 @@ HM.force_lose(M) for(var/datum/mutation/human/HM in add_mutations) if(HM.name == RACEMUT) - message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" HM.force_give(M) if(fields) @@ -328,7 +328,7 @@ if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) continue //Skip permanent mutations we already have. if(HM.name == RACEMUT && ishuman(M)) - message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + message_admins("[ADMIN_LOOKUPFLW(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") log_msg += " (MONKEY)" M = HM.force_give(M) else diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 8bc1665a3f..bed7ba24e4 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -174,15 +174,13 @@ stage_change(EMPTY) return - var/areas_name = get_area_name(src, TRUE) - if(nadeassembly) var/mob/M = get_mob_by_ckey(assemblyattacher) var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) - message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [ADMIN_JMP(detonation_turf)].") - log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [COORD(detonation_turf)]") + message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [ADMIN_VERBOSEJMP(detonation_turf)].") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [AREACOORD(detonation_turf)]") - log_game("A grenade detonated at [areas_name] [COORD(detonation_turf)]") + log_game("A grenade detonated at [AREACOORD(detonation_turf)]") update_mob() @@ -284,18 +282,15 @@ RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, threatscale, 1, 1) chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) + var/turf/DT = get_turf(src) if(nadeassembly) var/mob/M = get_mob_by_ckey(assemblyattacher) var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) - var/turf/T = get_turf(src) - var/area/A = get_area(T) - message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") - log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") + message_admins("grenade primed by an assembly at [AREACOORD(DT)], attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]).") + log_game("grenade primed by an assembly at [AREACOORD(DT)], attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name])") else addtimer(CALLBACK(src, .proc/prime), det_time) - var/turf/DT = get_turf(src) - var/area/DA = get_area(DT) - log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") + log_game("A grenade detonated at [AREACOORD(DT)]") diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 6a08777e61..b627d42ab2 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -61,10 +61,10 @@ preprime(user) /obj/item/grenade/proc/log_grenade(mob/user, turf/T) - var/message = "[ADMIN_LOOKUPFLW(user)]) has primed \a [src] for detonation at [ADMIN_COORDJMP(T)]" + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed \a [src] for detonation at [ADMIN_VERBOSEJMP(T)]" GLOB.bombers += message message_admins(message) - log_game("[key_name(user)] has primed \a [src] for detonation at [get_area_name(T, TRUE)] [COORD(T)].") + log_game("[key_name(user)] has primed \a [src] for detonation at [AREACOORD(T)].") /obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE, volume = 60) var/turf/T = get_turf(src) diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 28be94afb4..8e96e97389 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -111,8 +111,8 @@ return target = AM - message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [det_time] second fuse",0,1) - log_game("[key_name(user)] planted [name] on [target.name] at [COORD(src)] with [det_time] second fuse") + message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_VERBOSEJMP(target)] with [det_time] second fuse") + log_game("[key_name(user)] planted [name] on [target.name] at [AREACOORD(user)] with [det_time] second fuse") moveToNullspace() //Yep @@ -148,8 +148,8 @@ M.say(message_say) /obj/item/grenade/plastic/suicide_act(mob/user) - message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [src] at [ADMIN_COORDJMP(user)]",0,1) - log_game("[key_name(user)] suicided with [src] at [COORD(user)]") + message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [src] at [ADMIN_VERBOSEJMP(user)]") + log_game("[key_name(user)] suicided with [src] at [AREACOORD(user)]") user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") shout_syndicate_crap(user) explosion(user,0,2,0) //Cheap explosion imitation because putting prime() here causes runtimes @@ -188,8 +188,8 @@ user.visible_message("[user] activates the [src.name] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") shout_syndicate_crap(user) target = user - message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [name] at [ADMIN_COORDJMP(src)]",0,1) - message_admins("[key_name(user)] suicided with [name] at ([x],[y],[z])") + message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [name] at [ADMIN_VERBOSEJMP(src)]") + log_game("[key_name(user)] suicided with [name] at [AREACOORD(user)]") sleep(10) explode(get_turf(user)) user.gib(1, 1) @@ -228,10 +228,10 @@ src.target = AM moveToNullspace() - var/message = "[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [timer] second fuse" + var/message = "[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_VERBOSEJMP(target)] with [timer] second fuse" GLOB.bombers += message message_admins(message,0,1) - log_game("[key_name(user)] planted [name] on [target.name] at [COORD(target)] with [timer] second fuse") + log_game("[key_name(user)] planted [name] on [target.name] at [AREACOORD(target)] with [timer] second fuse") target.add_overlay(plastic_overlay, TRUE) to_chat(user, "You plant the bomb. Timer counting down from [timer].") diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm index 9777deaf6d..c374ab94fd 100644 --- a/code/game/objects/items/hot_potato.dm +++ b/code/game/objects/items/hot_potato.dm @@ -139,8 +139,8 @@ detonation_timerid = addtimer(CALLBACK(src, .proc/detonate), delay, TIMER_STOPPABLE) START_PROCESSING(SSfastprocess, src) var/turf/T = get_turf(src) - message_admins("[user? "[ADMIN_LOOKUPFLW(user)] has primed [src]" : "A [src] has been primed"] (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [COORD(T)]([T.loc])") - log_game("[user? "[user] has primed [src]" : "A [src] has been primed"] ([detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [COORD(T)]([T.loc])") + message_admins("[user? "[ADMIN_LOOKUPFLW(user)] has primed [src]" : "A [src] has been primed"] (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [ADMIN_VERBOSEJMP(T)]") + log_game("[user? "[user] has primed [src]" : "A [src] has been primed"] ([detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [AREACOORD(T)]") active = TRUE /obj/item/hot_potato/proc/deactivate() diff --git a/code/game/objects/items/implants/implant_explosive.dm b/code/game/objects/items/implants/implant_explosive.dm index 0dc22c3d83..5aa0e31d08 100644 --- a/code/game/objects/items/implants/implant_explosive.dm +++ b/code/game/objects/items/implants/implant_explosive.dm @@ -41,8 +41,7 @@ to_chat(imp_in, "You activate your [name].") active = TRUE var/turf/boomturf = get_turf(imp_in) - var/area/A = get_area(boomturf) - message_admins("[ADMIN_LOOKUPFLW(imp_in)] has activated their [name] at [A.name] [ADMIN_JMP(boomturf)], with cause of [cause].") + message_admins("[ADMIN_LOOKUPFLW(imp_in)] has activated their [name] at [ADMIN_VERBOSEJMP(boomturf)], with cause of [cause].") //If the delay is short, just blow up already jeez if(delay <= 7) explosion(src,heavy,medium,weak,weak, flame_range = weak) diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index e8933b7151..b1d0130fcc 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -184,11 +184,11 @@ if(!user || !user.Adjacent(src)) return FALSE objective = stripped_input(usr,"What order do you want to imprint on [C]?","Enter the order","",120) - message_admins("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") + message_admins("[ADMIN_LOOKUPFLW(user)] set brainwash machine objective to '[objective]'.") log_game("[key_name(user)] set brainwash machine objective to '[objective]'.") if(C.isloyal()) return FALSE brainwash(C, objective) - message_admins("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + message_admins("[ADMIN_LOOKUPFLW(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") log_game("[key_name(user)] brainwashed [key_name(C)] with objective '[objective]'.") return TRUE \ No newline at end of file diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index ae73692cd4..0d993da41b 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -141,8 +141,8 @@ user.visible_message("[user] slides [grenade] into [src].", \ "You slide [I] into [src].") grenade = I - var/turf/T = get_turf(user) - log_game("[key_name(user)] added a grenade ([I.name]) to [src] at [COORD(T)].") + var/turf/grenade_turf = get_turf(src) + log_game("[key_name(user)] added a grenade ([I.name]) to [src] at [AREACOORD(grenade_turf)].") return if(istype(I, /obj/item/toy/plush)) love(I, user) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index be7507e3d2..300f18cbeb 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -172,8 +172,8 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ /obj/item/stack/sheet/mineral/plasma/attackby(obj/item/W as obj, mob/user as mob, params) if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite var/turf/T = get_turf(src) - message_admins("Plasma sheets ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma sheets ignited by [key_name(user)] in [COORD(T)]") + message_admins("Plasma sheets ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma sheets ignited by [key_name(user)] in [AREACOORD(T)]") fire_act(W.is_hot()) else return ..() diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index b8eb2dcc00..70ec8243b2 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -291,7 +291,7 @@ resin_cooldown = TRUE R.remove_any(100) var/obj/effect/resin_container/A = new (get_turf(src)) - log_game("[key_name(user)] used Resin Launcher at [get_area(user)] [COORD(user)].") + log_game("[key_name(user)] used Resin Launcher at [AREACOORD(user)].") playsound(src,'sound/items/syringeproj.ogg',40,1) for(var/a=0, a<5, a++) step_towards(A, target) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index dc6fbfe25b..a16e3faa81 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -204,7 +204,7 @@ active_portal_pairs[created[1]] = created[2] var/obj/effect/portal/c1 = created[1] var/obj/effect/portal/c2 = created[2] - investigate_log("was used by [key_name(user)] at [COORD(user)] to create a portal pair with destinations [COORD(c1)] and [COORD(c2)].", INVESTIGATE_PORTAL) + investigate_log("was used by [key_name(user)] at [AREACOORD(user)] to create a portal pair with destinations [AREACOORD(c1)] and [AREACOORD(c2)].", INVESTIGATE_PORTAL) add_fingerprint(user) /obj/item/hand_tele/proc/on_portal_destroy(obj/effect/portal/P) diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 4875ef324c..c343abaa68 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -34,7 +34,7 @@ cooldown = world.time flick(pulseicon, src) radiation_pulse(src, 400, 2) - + /obj/item/nuke_core/suicide_act(mob/user) user.visible_message("[user] is rubbing [src] against [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") return (TOXLOSS) diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 229aa70ee0..08d0b8bd30 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -136,13 +136,13 @@ if(isliving(O)) var/mob/living/L = O if(L.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") - log_game("[key_name(user)] set [key_name(L)] on fire") + message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(L)] on fire with [src] at [AREACOORD(user)]") + log_game("[key_name(user)] set [key_name(L)] on fire with [src] at [AREACOORD(user)]") /obj/item/weldingtool/attack_self(mob/user) if(src.reagents.has_reagent("plasma")) - message_admins("[key_name_admin(user)] activated a rigged welder.") + message_admins("[ADMIN_LOOKUPFLW(user)] activated a rigged welder at [AREACOORD(user)].") explode() switched_on(user) if(welding) diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm index 4ffc2fe060..a98b800e09 100644 --- a/code/game/objects/structures/divine.dm +++ b/code/game/objects/structures/divine.dm @@ -18,7 +18,7 @@ return to_chat(user, "You attempt to sacrifice [L] by invoking the sacrificial ritual.") L.gib() - message_admins("[key_name_admin(user)] has sacrificed [key_name_admin(L)] on the sacrifical altar.") + message_admins("[ADMIN_LOOKUPFLW(user)] has sacrificed [key_name_admin(L)] on the sacrifical altar at [AREACOORD(src)].") /obj/structure/healingfountain name = "healing fountain" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 842e540551..c877488601 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -245,8 +245,8 @@ /obj/structure/falsewall/plasma/attackby(obj/item/W, mob/user, params) if(W.is_hot() > 300) var/turf/T = get_turf(src) - message_admins("Plasma falsewall ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma falsewall ignited by [key_name(user)] in [COORD(T)]") + message_admins("Plasma falsewall ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma falsewall ignited by [key_name(user)] in [AREACOORD(T)]") burnbabyburn() else return ..() diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index f2635770c6..561cc8ef8c 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -204,8 +204,8 @@ /obj/structure/mineral_door/transparent/plasma/attackby(obj/item/W, mob/user, params) if(W.is_hot()) var/turf/T = get_turf(src) - message_admins("Plasma mineral door ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma mineral door ignited by [key_name(user)] in [COORD(T)]") + message_admins("Plasma mineral door ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma mineral door ignited by [key_name(user)] in [AREACOORD(T)]") TemperatureAct() else return ..() diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 1f7991e374..d22dbddd52 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -123,18 +123,18 @@ if(burn) var/turf/T = get_turf(src) if(Proj.firer) - message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(Proj.firer)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma statue ignited by [key_name(Proj.firer)] in [COORD(T)]") + message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(Proj.firer)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma statue ignited by [key_name(Proj.firer)] in [AREACOORD(T)]") else - message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma statue ignited by [Proj] in [COORD(T)]. No known firer.") + message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma statue ignited by [Proj] in [AREACOORD(T)]. No known firer.") ..() /obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params) if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite var/turf/T = get_turf(src) - message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma statue ignited by [key_name(user)] in [COORD(T)]") + message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("Plasma statue ignited by [key_name(user)] in [AREACOORD(T)]") ignite(W.is_hot()) else return ..() diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 396358ae47..0f68e68b7b 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -42,7 +42,7 @@ switch(state) if(ENGINE_UNWRENCHED) to_chat(user, "The [src.name] needs to be wrenched to the floor!") - if(EM_SECURED) + if(ENGINE_WRENCHED) if(!I.tool_start_check(user, amount=0)) return TRUE @@ -55,7 +55,7 @@ to_chat(user, "You weld \the [src] to the floor.") alter_engine_power(engine_power) - if(EM_WELDED) + if(ENGINE_WELDED) if(!I.tool_start_check(user, amount=0)) return TRUE @@ -149,3 +149,8 @@ bound_width = 96 bound_height = 96 appearance_flags = 0 + +#undef ENGINE_UNWRENCHED +#undef ENGINE_WRENCHED +#undef ENGINE_WELDED +#undef ENGINE_WELDTIME diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index e2e3356684..0ac7154592 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -44,8 +44,8 @@ /turf/open/floor/mineral/plasma/attackby(obj/item/W, mob/user, params) if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma flooring was ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("Plasma flooring was ignited by [key_name(user)] in [COORD(src)]") + message_admins("Plasma flooring was ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]") + log_game("Plasma flooring was ignited by [key_name(user)] in [AREACOORD(src)]") ignite(W.is_hot()) return ..() diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 9928f9cdc5..5393df669b 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -451,20 +451,19 @@ stage = GIBTONITE_ACTIVE visible_message("There was gibtonite inside! It's going to explode!") var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) var/notify_admins = 0 if(z != 5) notify_admins = 1 if(!triggered_by_explosion) - message_admins("[ADMIN_LOOKUPFLW(user)] has triggered a gibtonite deposit reaction at [A.name] [ADMIN_JMP(bombturf)].") + message_admins("[ADMIN_LOOKUPFLW(user)] has triggered a gibtonite deposit reaction at [ADMIN_VERBOSEJMP(bombturf)].") else - message_admins("An explosion has triggered a gibtonite deposit reaction at [A.name] [ADMIN_JMP(bombturf)].") + message_admins("An explosion has triggered a gibtonite deposit reaction at [ADMIN_VERBOSEJMP(bombturf)].") if(!triggered_by_explosion) - log_game("[key_name(user)] has triggered a gibtonite deposit reaction at [A.name] [COORD(bombturf)].") + log_game("[key_name(user)] has triggered a gibtonite deposit reaction at [AREACOORD(bombturf)].") else - log_game("An explosion has triggered a gibtonite deposit reaction at [A.name] [COORD(bombturf)]") + log_game("An explosion has triggered a gibtonite deposit reaction at [AREACOORD(bombturf)]") countdown(notify_admins) diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index c8ec3a5c5f..94e5a0a063 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -94,8 +94,8 @@ /turf/closed/wall/mineral/plasma/attackby(obj/item/W, mob/user, params) if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite - message_admins("Plasma wall ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("Plasma wall ignited by [key_name(user)] in [COORD(src)]") + message_admins("Plasma wall ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]") + log_game("Plasma wall ignited by [key_name(user)] in [AREACOORD(src)]") ignite(W.is_hot()) return ..() diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index 90eac62b16..09d0d5d2e2 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -266,7 +266,7 @@ var/datum/DBQuery/query_edit_ban_reason = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
') WHERE id = [banid]") if(!query_edit_ban_reason.warn_execute()) return - message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]",1) + message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]") if("duration") if(!value) value = input("Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null) as null|num @@ -277,7 +277,7 @@ var/datum/DBQuery/query_edit_ban_duration = SSdbcore.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]
'), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]") if(!query_edit_ban_duration.warn_execute()) return - message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s duration from [duration] to [value]",1) + message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s duration from [duration] to [value]") if("unban") if(alert("Unban [pckey]?", "Unban?", "Yes", "No") == "Yes") DB_ban_unban_by_id(banid) @@ -328,7 +328,7 @@ var/datum/DBQuery/query_unban = SSdbcore.NewQuery(sql_update) if(!query_unban.warn_execute()) return - message_admins("[key_name_admin(usr)] has lifted [pckey]'s ban.",1) + message_admins("[key_name_admin(usr)] has lifted [pckey]'s ban.") /client/proc/DB_ban_panel() set category = "Admin" diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm index 298e38f295..028af313b0 100644 --- a/code/modules/admin/sound_emitter.dm +++ b/code/modules/admin/sound_emitter.dm @@ -143,7 +143,7 @@ if(M.client.prefs.toggles & SOUND_MIDI) M.playsound_local(M, sound_file, sound_volume, FALSE, channel = CHANNEL_ADMIN, pressure_affected = FALSE) if(user) - log_admin("[ADMIN_LOOKUPFLW(user)] activated a sound emitter with file \"[sound_file]\" at [COORD(src)]") + log_admin("[ADMIN_LOOKUPFLW(user)] activated a sound emitter with file \"[sound_file]\" at [AREACOORD(src)]") flick("shield1", src) #undef SOUND_EMITTER_LOCAL diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 0136efc3b3..6dcd4e98ca 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -20,8 +20,8 @@ to_chat(src, "Nowhere to jump to!") return usr.forceMove(T) - log_admin("[key_name(usr)] jumped to [A]") - message_admins("[key_name_admin(usr)] jumped to [A]") + log_admin("[key_name(usr)] jumped to [AREACOORD(A)]") + message_admins("[key_name_admin(usr)] jumped to [AREACOORD(A)]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/jumptoturf(turf/T in world) @@ -31,8 +31,8 @@ to_chat(src, "Only administrators may use this command.") return - log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") - message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") + log_admin("[key_name(usr)] jumped to [AREACOORD(T)]") + message_admins("[key_name_admin(usr)] jumped to [AREACOORD(T)]") usr.forceMove(T) SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return @@ -46,7 +46,7 @@ return log_admin("[key_name(usr)] jumped to [key_name(M)]") - message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]") + message_admins("[key_name_admin(usr)] jumped to [ADMIN_LOOKUPFLW(M)] at [AREACOORD(M)]") if(src.mob) var/mob/A = src.mob var/turf/T = get_turf(M) @@ -89,7 +89,7 @@ return var/mob/M = selection.mob log_admin("[key_name(usr)] jumped to [key_name(M)]") - message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]") + message_admins("[key_name_admin(usr)] jumped to [ADMIN_LOOKUPFLW(M)]") usr.forceMove(M.loc) @@ -104,8 +104,8 @@ return var/atom/loc = get_turf(usr) - log_admin("[key_name(usr)] teleported [key_name(M)] to [COORD(loc)]") - var/msg = "[key_name_admin(usr)] teleported [key_name_admin(M)] to [ADMIN_COORDJMP(loc)]" + log_admin("[key_name(usr)] teleported [key_name(M)] to [AREACOORD(loc)]") + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)] to [ADMIN_VERBOSEJMP(loc)]" message_admins(msg) admin_ticket_log(M, msg) M.forceMove(loc) @@ -131,7 +131,7 @@ if(!M) return log_admin("[key_name(usr)] teleported [key_name(M)]") - var/msg = "[key_name_admin(usr)] teleported [key_name_admin(M)]" + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)]" message_admins(msg) admin_ticket_log(M, msg) if(M) @@ -149,8 +149,8 @@ if(A && istype(A)) if(M.forceMove(safepick(get_area_turfs(A)))) - log_admin("[key_name(usr)] teleported [key_name(M)] to [A]") - var/msg = "[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]" + log_admin("[key_name(usr)] teleported [key_name(M)] to [AREACOORD(A)]") + var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)] to [AREACOORD(A)]" message_admins(msg) admin_ticket_log(M, msg) else diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index 1f14934065..75407eae9c 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -9,17 +9,17 @@ //all plumbing - yes, some things might get stated twice, doesn't matter. for (var/obj/machinery/atmospherics/plumbing in GLOB.machines) if (plumbing.nodealert) - to_chat(usr, "Unconnected [plumbing.name] located at [ADMIN_COORDJMP(plumbing)] ([get_area(plumbing.loc)])") + to_chat(usr, "Unconnected [plumbing.name] located at [ADMIN_VERBOSEJMP(plumbing)]") //Manifolds for (var/obj/machinery/atmospherics/pipe/manifold/pipe in GLOB.machines) if (!pipe.nodes[1] || !pipe.nodes[2] || !pipe.nodes[3]) - to_chat(usr, "Unconnected [pipe.name] located at [ADMIN_COORDJMP(pipe)] ([get_area(pipe.loc)])") + to_chat(usr, "Unconnected [pipe.name] located at [ADMIN_VERBOSEJMP(pipe)]") //Pipes for (var/obj/machinery/atmospherics/pipe/simple/pipe in GLOB.machines) if (!pipe.nodes[1] || !pipe.nodes[2]) - to_chat(usr, "Unconnected [pipe.name] located at [ADMIN_COORDJMP(pipe)] ([get_area(pipe.loc)])") + to_chat(usr, "Unconnected [pipe.name] located at [ADMIN_VERBOSEJMP(pipe)]") /client/proc/powerdebug() set category = "Mapping" @@ -33,9 +33,9 @@ if (!PN.nodes || !PN.nodes.len) if(PN.cables && (PN.cables.len > 1)) var/obj/structure/cable/C = PN.cables[1] - to_chat(usr, "Powernet with no nodes! (number [PN.number]) - example cable at [ADMIN_COORDJMP(C)] in area [get_area(C.loc)]") + to_chat(usr, "Powernet with no nodes! (number [PN.number]) - example cable at [ADMIN_VERBOSEJMP(C)]") if (!PN.cables || (PN.cables.len < 10)) if(PN.cables && (PN.cables.len > 1)) var/obj/structure/cable/C = PN.cables[1] - to_chat(usr, "Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [ADMIN_COORDJMP(C)] in area [get_area(C.loc)]") + to_chat(usr, "Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [ADMIN_VERBOSEJMP(C)]") diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 8a162e7794..ec921e78bc 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -87,11 +87,11 @@ var/newcharge = input("New charge (0-[borg.cell.maxcharge]):", borg.name, borg.cell.charge) as num|null if (newcharge) borg.cell.charge = CLAMP(newcharge, 0, borg.cell.maxcharge) - message_admins("[key_name_admin(user)] set the charge of [key_name_admin(borg)][ADMIN_FLW(borg)] to [borg.cell.charge].") + message_admins("[key_name_admin(user)] set the charge of [ADMIN_LOOKUPFLW(borg)] to [borg.cell.charge].") log_admin("[key_name(user)] set the charge of [key_name(borg)] to [borg.cell.charge].") if ("remove_cell") QDEL_NULL(borg.cell) - message_admins("[key_name_admin(user)] deleted the cell of [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] deleted the cell of [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] deleted the cell of [key_name(borg)].") if ("change_cell") var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/stock_parts/cell))) @@ -104,45 +104,45 @@ borg.cell = new_cell borg.cell.charge = borg.cell.maxcharge borg.diag_hud_set_borgcell() - message_admins("[key_name_admin(user)] changed the cell of [key_name_admin(borg)][ADMIN_FLW(borg)] to [new_cell].") + message_admins("[key_name_admin(user)] changed the cell of [ADMIN_LOOKUPFLW(borg)] to [new_cell].") log_admin("[key_name(user)] changed the cell of [key_name(borg)] to [new_cell].") if ("toggle_emagged") borg.SetEmagged(!borg.emagged) if (borg.emagged) - message_admins("[key_name_admin(user)] emagged [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] emagged [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] emagged [key_name(borg)].") else - message_admins("[key_name_admin(user)] un-emagged [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] un-emagged [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] un-emagged [key_name(borg)].") if ("toggle_lawupdate") borg.lawupdate = !borg.lawupdate if (borg.lawupdate) - message_admins("[key_name_admin(user)] enabled lawsync on [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] enabled lawsync on [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] enabled lawsync on [key_name(borg)].") else - message_admins("[key_name_admin(user)] disabled lawsync on [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] disabled lawsync on [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] disabled lawsync on [key_name(borg)].") if ("toggle_lockdown") borg.SetLockdown(!borg.lockcharge) if (borg.lockcharge) - message_admins("[key_name_admin(user)] locked down [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] locked down [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] locked down [key_name(borg)].") else - message_admins("[key_name_admin(user)] released [key_name_admin(borg)][ADMIN_FLW(borg)] from lockdown.") + message_admins("[key_name_admin(user)] released [ADMIN_LOOKUPFLW(borg)] from lockdown.") log_admin("[key_name(user)] released [key_name(borg)] from lockdown.") if ("toggle_scrambledcodes") borg.scrambledcodes = !borg.scrambledcodes if (borg.scrambledcodes) - message_admins("[key_name_admin(user)] enabled scrambled codes on [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] enabled scrambled codes on [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] enabled scrambled codes on [key_name(borg)].") else - message_admins("[key_name_admin(user)] disabled scrambled codes on [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] disabled scrambled codes on [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] disabled scrambled codes on [key_name(borg)].") if ("rename") var/new_name = stripped_input(user,"What would you like to name this cyborg?","Input a name",borg.real_name,MAX_NAME_LEN) if(!new_name) return - message_admins("[key_name_admin(user)] renamed [key_name_admin(borg)][ADMIN_FLW(borg)] to [new_name].") + message_admins("[key_name_admin(user)] renamed [ADMIN_LOOKUPFLW(borg)] to [new_name].") log_admin("[key_name(user)] renamed [key_name(borg)] to [new_name].") borg.fully_replace_character_name(borg.real_name,new_name) if ("toggle_upgrade") @@ -151,14 +151,14 @@ if (installedupgrade) installedupgrade.deactivate(borg, user) borg.upgrades -= installedupgrade - message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] removed the [installedupgrade] upgrade from [key_name(borg)].") qdel(installedupgrade) else var/obj/item/borg/upgrade/upgrade = new upgradepath(borg) upgrade.action(borg, user) borg.upgrades += upgrade - message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] added the [upgrade] borg upgrade to [key_name(borg)].") if ("toggle_radio") var/channel = params["channel"] @@ -175,7 +175,7 @@ borg.radio.keyslot.syndie = FALSE else if (channel == "CentCom") borg.radio.keyslot.independent = FALSE - message_admins("[key_name_admin(user)] removed the [channel] radio channel from [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] removed the [channel] radio channel from [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] removed the [channel] radio channel from [key_name(borg)].") else // We're adding a channel if (!borg.radio.keyslot) // Assert that an encryption key exists @@ -185,14 +185,14 @@ borg.radio.keyslot.syndie = TRUE else if (channel == "CentCom") borg.radio.keyslot.independent = TRUE - message_admins("[key_name_admin(user)] added the [channel] radio channel to [key_name_admin(borg)][ADMIN_FLW(borg)].") + message_admins("[key_name_admin(user)] added the [channel] radio channel to [ADMIN_LOOKUPFLW(borg)].") log_admin("[key_name(user)] added the [channel] radio channel to [key_name(borg)].") borg.radio.recalculateChannels() if ("setmodule") var/newmodulepath = text2path(params["module"]) if (ispath(newmodulepath)) borg.module.transform_to(newmodulepath) - message_admins("[key_name_admin(user)] changed the module of [key_name_admin(borg)][ADMIN_FLW(borg)] to [newmodulepath].") + message_admins("[key_name_admin(user)] changed the module of [ADMIN_LOOKUPFLW(borg)] to [newmodulepath].") log_admin("[key_name(user)] changed the module of [key_name(borg)] to [newmodulepath].") if ("slavetoai") var/mob/living/silicon/ai/newai = locate(params["slavetoai"]) in GLOB.ai_list @@ -202,14 +202,14 @@ borg.undeploy() borg.connected_ai = newai borg.notify_ai(TRUE) - message_admins("[key_name_admin(user)] slaved [key_name_admin(borg)][ADMIN_FLW(borg)] to the AI [key_name_admin(newai)][ADMIN_FLW(newai)].") + message_admins("[key_name_admin(user)] slaved [ADMIN_LOOKUPFLW(borg)] to the AI [ADMIN_LOOKUPFLW(newai)].") log_admin("[key_name(user)] slaved [key_name(borg)] to the AI [key_name(newai)].") else if (params["slavetoai"] == "null") borg.notify_ai(DISCONNECT) if(borg.shell) borg.undeploy() borg.connected_ai = null - message_admins("[key_name_admin(user)] freed [key_name_admin(borg)][ADMIN_FLW(borg)] from being slaved to an AI.") + message_admins("[key_name_admin(user)] freed [ADMIN_LOOKUPFLW(borg)] from being slaved to an AI.") log_admin("[key_name(user)] freed [key_name(borg)] from being slaved to an AI.") if (borg.lawupdate) borg.lawsync() diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 2fd212b4dc..1644e97035 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -333,8 +333,8 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(ishuman(M)) INVOKE_ASYNC(M, /mob/living/carbon/human/proc/Alienize) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] made [key_name(M)] into an alien.") - message_admins("[key_name_admin(usr)] made [key_name(M)] into an alien.") + log_admin("[key_name(usr)] made [key_name(M)] into an alien at [AREACOORD(M)].") + message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien.") else alert("Invalid mob") @@ -348,8 +348,8 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(ishuman(M)) INVOKE_ASYNC(M, /mob/living/carbon/human/proc/slimeize) SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] made [key_name(M)] into a slime.") - message_admins("[key_name_admin(usr)] made [key_name(M)] into a slime.") + log_admin("[key_name(usr)] made [key_name(M)] into a slime at [AREACOORD(M)].") + message_admins("[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime.") else alert("Invalid mob") @@ -434,7 +434,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) qdel(O) CHECK_TICK log_admin("[key_name(src)] has deleted all ([counter]) instances of [hsbitem].") - message_admins("[key_name_admin(src)] has deleted all ([counter]) instances of [hsbitem].", 0) + message_admins("[key_name_admin(src)] has deleted all ([counter]) instances of [hsbitem].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -443,7 +443,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) set name = "Make Powernets" SSmachines.makepowernets() log_admin("[key_name(src)] has remade the powernet. makepowernets() called.") - message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0) + message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.") SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Powernets") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_grantfullaccess(mob/M in GLOB.mob_list) @@ -522,7 +522,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) var/bad_shit = 0 for(var/obj/machinery/computer/atmos_control/tank/console in GLOB.atmos_air_controllers) - dat += "

[console] at [get_area_name(console, TRUE)] [COORD(console)]:


" + dat += "

[console] at [AREACOORD(console)]:


" if(console.input_tag == console.output_tag) dat += "Error: input_tag is the same as the output_tag, \"[console.input_tag]\"!
" bad_shit++ @@ -749,7 +749,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) H.regenerate_icons() log_admin("[key_name(usr)] changed the equipment of [key_name(H)] to [dresscode].") - message_admins("[key_name_admin(usr)] changed the equipment of [key_name_admin(H)] to [dresscode].") + message_admins("[key_name_admin(usr)] changed the equipment of [ADMIN_LOOKUPFLW(H)] to [dresscode].") /client/proc/robust_dress_shop() var/list/outfits = list("Cancel","Naked","Custom","As Job...") diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 5e21955800..2bd67eaf37 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -7,7 +7,7 @@ if(T.active_hotspot) burning = TRUE - var/list/lines = list("[COORD(target)]: [env.temperature] K ([env.temperature - T0C] C), [env.return_pressure()] kPa[(burning)?(", burning"):(null)]") + var/list/lines = list("[AREACOORD(target)]: [env.temperature] K ([env.temperature - T0C] C), [env.return_pressure()] kPa[(burning)?(", burning"):(null)]") for(var/id in env_gases) var/gas = env_gases[id] var/moles = gas[MOLES] @@ -49,8 +49,8 @@ log_admin("DEBUG: [key_name(M)] next_move = [M.next_move] lastDblClick = [M.next_click] world.time = [world.time]") M.next_move = 1 M.next_click = 0 - message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [DisplayTimeText(largest_move_time)]!") - message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [DisplayTimeText(largest_click_time)]!") + message_admins("[ADMIN_LOOKUPFLW(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [DisplayTimeText(largest_move_time)]!") + message_admins("[ADMIN_LOOKUPFLW(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [DisplayTimeText(largest_click_time)]!") message_admins("world.time = [world.time]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Unfreeze Everyone") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return diff --git a/code/modules/admin/verbs/manipulate_organs.dm b/code/modules/admin/verbs/manipulate_organs.dm index e82a99815e..4d1de50e47 100644 --- a/code/modules/admin/verbs/manipulate_organs.dm +++ b/code/modules/admin/verbs/manipulate_organs.dm @@ -15,7 +15,7 @@ organ = new organ organ.Insert(C) log_admin("[key_name(usr)] has added organ [organ.type] to [key_name(C)]") - message_admins("[key_name_admin(usr)] has added organ [organ.type] to [key_name(C)]") + message_admins("[key_name_admin(usr)] has added organ [organ.type] to [ADMIN_LOOKUPFLW(C)]") if("add implant") for(var/path in subtypesof(/obj/item/implant)) @@ -27,7 +27,7 @@ organ = new organ organ.implant(C) log_admin("[key_name(usr)] has added implant [organ.type] to [key_name(C)]") - message_admins("[key_name_admin(usr)] has added implant [organ.type] to [key_name(C)]") + message_admins("[key_name_admin(usr)] has added implant [organ.type] to [ADMIN_LOOKUPFLW(C)]") if("drop organ/implant", "remove organ/implant") for(var/X in C.internal_organs) @@ -46,7 +46,7 @@ var/obj/item/implant/I log_admin("[key_name(usr)] has removed [organ.type] from [key_name(C)]") - message_admins("[key_name_admin(usr)] has removed [organ.type] from [key_name(C)]") + message_admins("[key_name_admin(usr)] has removed [organ.type] from [ADMIN_LOOKUPFLW(C)]") if(isorgan(organ)) O = organ diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index c62ee34dac..800a94c4ba 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -105,11 +105,11 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( for(var/obj/machinery/camera/C2 in CL) if(C1 != C2) if(C1.c_tag == C2.c_tag) - output += "
  • c_tag match for cameras at [ADMIN_COORDJMP(C1)] ([C1.loc.loc]) and [ADMIN_COORDJMP(C2)] ([C2.loc.loc]) - c_tag is [C1.c_tag]
  • " + output += "
  • c_tag match for cameras at [ADMIN_VERBOSEJMP(C1)] and [ADMIN_VERBOSEJMP(C2)] - c_tag is [C1.c_tag]
  • " if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y) - output += "
  • FULLY overlapping cameras at [ADMIN_COORDJMP(C1)] ([C1.loc.loc]) Networks: [json_encode(C1.network)] and [json_encode(C2.network)]
  • " + output += "
  • FULLY overlapping cameras at [ADMIN_VERBOSEJMP(C1)] Networks: [json_encode(C1.network)] and [json_encode(C2.network)]
  • " if(C1.loc == C2.loc) - output += "
  • Overlapping cameras at [ADMIN_COORDJMP(C1)] ([C1.loc.loc]) Networks: [json_encode(C1.network)] and [json_encode(C2.network)]
  • " + output += "
  • Overlapping cameras at [ADMIN_VERBOSEJMP(C1)] Networks: [json_encode(C1.network)] and [json_encode(C2.network)]
  • " var/turf/T = get_step(C1,turn(C1.dir,180)) if(!T || !isturf(T) || !T.density ) if(!(locate(/obj/structure/grille) in T)) @@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( window_check = 1 break if(!window_check) - output += "
  • Camera not connected to wall at [ADMIN_COORDJMP(C1)] ([C1.loc.loc]) Network: [json_encode(C1.network)]
  • " + output += "
  • Camera not connected to wall at [ADMIN_VERBOSEJMP(C1)] Network: [json_encode(C1.network)]
  • " output += "" usr << browse(output,"window=airreport;size=1000x500") @@ -153,7 +153,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( for(var/t in GLOB.active_turfs_startlist) var/turf/T = t - dat += "[ADMIN_COORDJMP(T)]\n" + dat += "[ADMIN_VERBOSEJMP(T)]\n" dat += "
    " usr << browse(dat, "window=at_list") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index be0b9d04bb..0d97f8f8c6 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -14,7 +14,7 @@ M.regenerate_icons() log_admin("[key_name(usr)] made [key_name(M)] drop everything!") - var/msg = "[key_name_admin(usr)] made [key_name_admin(M)] drop everything!" + var/msg = "[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] drop everything!" message_admins(msg) admin_ticket_log(M, msg) SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -149,8 +149,8 @@ for(var/mob/M in view(range,A)) to_chat(M, msg) - log_admin("LocalNarrate: [key_name(usr)] at [get_area(A)][COORD(A)]: [msg]") - message_admins(" LocalNarrate: [key_name_admin(usr)] at [get_area(A)][ADMIN_JMP(A)]: [msg]
    ") + log_admin("LocalNarrate: [key_name(usr)] at [AREACOORD(A)]: [msg]") + message_admins(" LocalNarrate: [key_name_admin(usr)] at [ADMIN_VERBOSEJMP(A)]: [msg]
    ") SSblackbox.record_feedback("tally", "admin_verb", 1, "Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list) @@ -163,7 +163,7 @@ to_chat(usr, "Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]") log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]") - var/msg = "[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]" + var/msg = "[key_name_admin(usr)] has toggled [ADMIN_LOOKUPFLW(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]" message_admins(msg) admin_ticket_log(M, msg) SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Godmode", "[M.status_flags & GODMODE ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -504,7 +504,7 @@ Traitors and the like can also be revived with the previous role mostly intact. M.revive(full_heal = 1, admin_revive = 1) log_admin("[key_name(usr)] healed / revived [key_name(M)]") - var/msg = "Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!" + var/msg = "Admin [key_name_admin(usr)] healed / revived [ADMIN_LOOKUPFLW(M)]!" message_admins(msg) admin_ticket_log(M, msg) SSblackbox.record_feedback("tally", "admin_verb", 1, "Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -609,8 +609,8 @@ Traitors and the like can also be revived with the previous role mostly intact. return explosion(O, devastation, heavy, light, flash, null, null,flames) - log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") - message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") + log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at [AREACOORD(O)]") + message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at [AREACOORD(O)]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return else @@ -633,8 +633,8 @@ Traitors and the like can also be revived with the previous role mostly intact. if (heavy || light) empulse(O, heavy, light) - log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") - message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") + log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]") + message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at [AREACOORD(O)]") SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return @@ -821,7 +821,7 @@ Traitors and the like can also be revived with the previous role mostly intact. N.set_active() log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).") - message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_COORDJMP(N)].") + message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_VERBOSEJMP(N)].") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Nuke", "[N.timing]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index a1241d5998..0dcd5e6c21 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -497,12 +497,12 @@ structure_check() searches for nearby cultist structures required for the invoca user.visible_message("[user.name] begins erasing [src]...", "You begin erasing [src]...") if(do_after(user, 50, target = src)) //Prevents accidental erasures. log_game("Summon Narsie rune erased by [user.mind.key] (ckey) with [I.name]") - message_admins("[key_name_admin(user)] erased a Narsie rune with [I.name]") + message_admins("[ADMIN_LOOKUPFLW(user)] erased a Narsie rune with [I.name]") ..() else if(istype(I, /obj/item/nullrod)) //Begone foul magiks. You cannot hinder me. log_game("Summon Narsie rune erased by [user.mind.key] (ckey) using a null rod") - message_admins("[key_name_admin(user)] erased a Narsie rune with a null rod") + message_admins("[ADMIN_LOOKUPFLW(user)] erased a Narsie rune with a null rod") ..() //Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every sacrifice your cult has carried out. diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm index ad66ee0cbb..7183ed5455 100644 --- a/code/modules/antagonists/disease/disease_event.dm +++ b/code/modules/antagonists/disease/disease_event.dm @@ -20,7 +20,7 @@ var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) virus.key = selected.key INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) - message_admins("[key_name_admin(virus)] has been made into a sentient disease by an event.") + message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by an event.") log_game("[key_name(virus)] was spawned as a sentient disease by an event.") spawned_mobs += virus return SUCCESSFUL_SPAWN diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index 6572584eab..12f8d22897 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -238,7 +238,7 @@ player_mind.add_antag_datum(/datum/antagonist/morph) to_chat(S, S.playstyle_string) SEND_SOUND(S, sound('sound/magic/mutate.ogg')) - message_admins("[key_name_admin(S)] has been made into a morph by an event.") + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a morph by an event.") log_game("[key_name(S)] was spawned as a morph by an event.") spawned_mobs += S return SUCCESSFUL_SPAWN diff --git a/code/modules/antagonists/revenant/revenant_spawn_event.dm b/code/modules/antagonists/revenant/revenant_spawn_event.dm index 483be4dc34..c9a892cd64 100644 --- a/code/modules/antagonists/revenant/revenant_spawn_event.dm +++ b/code/modules/antagonists/revenant/revenant_spawn_event.dm @@ -53,7 +53,7 @@ var/mob/living/simple_animal/revenant/revvie = new(pick(spawn_locs)) revvie.key = selected.key - message_admins("[key_name_admin(revvie)] [ADMIN_FLW(revvie)] has been made into a revenant by an event.") + message_admins("[ADMIN_LOOKUPFLW(revvie)] has been made into a revenant by an event.") log_game("[key_name(revvie)] was spawned as a revenant by an event.") spawned_mobs += revvie return SUCCESSFUL_SPAWN diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm index 38054fccec..4d81741c91 100644 --- a/code/modules/antagonists/slaughter/slaughterevent.dm +++ b/code/modules/antagonists/slaughter/slaughterevent.dm @@ -41,7 +41,7 @@ to_chat(S, S.playstyle_string) to_chat(S, "You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest.") SEND_SOUND(S, 'sound/magic/demon_dies.ogg') - message_admins("[key_name_admin(S)] has been made into a slaughter demon by an event.") + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a slaughter demon by an event.") log_game("[key_name(S)] was spawned as a slaughter demon by an event.") spawned_mobs += S return SUCCESSFUL_SPAWN diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 25a0e804a4..c9157244b8 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -52,7 +52,7 @@ if(I.use_tool(src, user, 0, volume=40)) status = TRUE GLOB.bombers += "[key_name(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" - message_admins("[key_name_admin(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]") + message_admins("[ADMIN_LOOKUPFLW(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]") to_chat(user, "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited.") add_fingerprint(user) return TRUE diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 132e750343..1771609125 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -437,8 +437,8 @@ danger[gas[GAS_META][META_GAS_NAME]] = gas[MOLES] //ex. "plasma" = 20 if(danger.len) - message_admins("[ADMIN_LOOKUPFLW(usr)] opened a canister that contains the following: [ADMIN_JMP(src)]") - log_admin("[key_name(usr)] opened a canister that contains the following at [COORD(src)]:") + message_admins("[ADMIN_LOOKUPFLW(usr)] opened a canister that contains the following at [ADMIN_VERBOSEJMP(src)]:") + log_admin("[key_name(usr)] opened a canister that contains the following at [AREACOORD(src)]:") for(var/name in danger) var/msg = "[name]: [danger[name]] moles." log_admin(msg) diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 88b7f2d38a..c0658c781d 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -114,9 +114,8 @@ var/plasma = air_contents.gases[/datum/gas/plasma] var/n2o = air_contents.gases[/datum/gas/nitrous_oxide] if(n2o || plasma) - var/area/A = get_area(src) - message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][ADMIN_JMP(src)]") - log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][COORD(src)]") + message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [ADMIN_VERBOSEJMP(src)]") + log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [AREACOORD(src)]") else if(on && direction == PUMP_OUT) investigate_log("[key_name(usr)] started a transfer into [holding].
    ", INVESTIGATE_ATMOS) . = TRUE diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index 87b9736722..70d5fc0f4c 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -47,7 +47,7 @@ return if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) priority_announce("Bluespace artillery fire detected. Brace for impact.") - message_admins("[key_name_admin(usr)] has launched an artillery strike.") + message_admins("[ADMIN_LOOKUPFLW(usr)] has launched an artillery strike.") var/list/L = list() for(var/turf/T in get_area_turfs(thearea.type)) L+=T diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index ae119db9e7..b233235d81 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -131,7 +131,7 @@ if(LAZYLEN(candidates)) var/mob/dead/observer/C = pick(candidates) - message_admins("[key_name_admin(C)] was spawned as Wizard Academy Defender") + message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Wizard Academy Defender") current_wizard.ghostize() // on the off chance braindead defender gets back in current_wizard.key = C.key @@ -273,7 +273,7 @@ var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [user.real_name] Servant?", ROLE_WIZARD, null, ROLE_WIZARD, 50, H) if(LAZYLEN(candidates)) var/mob/dead/observer/C = pick(candidates) - message_admins("[key_name_admin(C)] was spawned as Dice Servant") + message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Dice Servant") H.key = C.key var/obj/effect/proc_holder/spell/targeted/summonmob/S = new diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 2d12b7b0a4..19b7d02225 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( topiclimiter[ADMINSWARNED_AT] = minute msg += " Administrators have been informed." log_game("[key_name(src)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") - message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") + message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") to_chat(src, "[msg]") return @@ -684,11 +684,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) msg += " Administrators have been informed." if (ab) log_game("[key_name(src)] is using the middle click aimbot exploit") - message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] is using the middle click aimbot exploit") + message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] is using the middle click aimbot exploit") add_system_note("aimbot", "Is using the middle click aimbot exploit") log_game("[key_name(src)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") - message_admins("[key_name_admin(src)] [ADMIN_FLW(usr)] [ADMIN_KICK(usr)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") + message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") to_chat(src, "[msg]") return diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index c968cc9c76..9cce4e7660 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -199,6 +199,7 @@ death(0) /mob/living/proc/suicide_log() +<<<<<<< HEAD var/turf/T = get_turf(src) log_game("[key_name(src)] committed suicide at [get_area(src)][COORD(T)] as [src.type].") @@ -209,6 +210,12 @@ log_game("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) committed suicide at [get_area(src)][COORD(T)].") message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) committed suicide at [get_area(src)].") +======= + log_game("[key_name(src)] committed suicide at [AREACOORD(src)] as [src.type].") + +/mob/living/carbon/human/suicide_log() + log_game("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) committed suicide at [AREACOORD(src)].") +>>>>>>> c41d6ac... Standardizes and cleans up some admin messages & logging (#38128) /mob/living/proc/canSuicide() if(stat == CONSCIOUS) diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 87b12ad4cf..ddc75830d6 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -65,7 +65,7 @@ spawncount-- successSpawn = TRUE - message_admins("[key_name_admin(new_xeno)] has been made into an alien by an event.") + message_admins("[ADMIN_LOOKUPFLW(new_xeno)] has been made into an alien by an event.") log_game("[key_name(new_xeno)] was spawned as an alien by an event.") spawned_mobs += new_xeno diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 45968df0cf..c17918d733 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -34,6 +34,6 @@ var/mob/dead/observer/new_blob = pick(candidates) var/mob/camera/blob/BC = new_blob.become_overmind() spawned_mobs += BC - message_admins("[key_name_admin(BC)] has been made into a blob overmind by an event.") + message_admins("[ADMIN_LOOKUPFLW(BC)] has been made into a blob overmind by an event.") log_game("[key_name(BC)] was spawned as a blob overmind by an event.") return SUCCESSFUL_SPAWN diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm index 83c6dcb83d..3760cbe05d 100644 --- a/code/modules/events/devil.dm +++ b/code/modules/events/devil.dm @@ -34,7 +34,7 @@ add_devil(devil, ascendable = FALSE) spawned_mobs += devil - message_admins("[key_name_admin(devil)] has been made into a devil by an event.") + message_admins("[ADMIN_LOOKUPFLW(devil)] has been made into a devil by an event.") log_game("[key_name(devil)] was spawned as a devil by an event.") var/datum/job/jobdatum = SSjob.GetJob("Assistant") devil.job = jobdatum.title diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index b19c8358c2..81e93244ea 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -70,7 +70,7 @@ var/list/name_symptoms = list() //for feedback for(var/datum/symptom/S in A.symptoms) name_symptoms += S.name - message_admins("An event has triggered a random advanced virus outbreak on [key_name_admin(H)]! It has these symptoms: [english_list(name_symptoms)]") + message_admins("An event has triggered a random advanced virus outbreak on [ADMIN_LOOKUPFLW(H)]! It has these symptoms: [english_list(name_symptoms)]") log_game("An event has triggered a random advanced virus outbreak on [key_name(H)]! It has these symptoms: [english_list(name_symptoms)]") break diff --git a/code/modules/events/nightmare.dm b/code/modules/events/nightmare.dm index b1cebb98c5..698f5130f1 100644 --- a/code/modules/events/nightmare.dm +++ b/code/modules/events/nightmare.dm @@ -37,7 +37,7 @@ player_mind.add_antag_datum(/datum/antagonist/nightmare) S.set_species(/datum/species/shadow/nightmare) playsound(S, 'sound/magic/ethereal_exit.ogg', 50, 1, -1) - message_admins("[key_name_admin(S)] has been made into a Nightmare by an event.") + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Nightmare by an event.") log_game("[key_name(S)] was spawned as a Nightmare by an event.") spawned_mobs += S return SUCCESSFUL_SPAWN diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm index 424888f99b..7fca4188b7 100644 --- a/code/modules/events/operative.dm +++ b/code/modules/events/operative.dm @@ -33,7 +33,7 @@ Mind.transfer_to(operative) Mind.add_antag_datum(/datum/antagonist/nukeop/lone) - message_admins("[key_name_admin(operative)] has been made into lone operative by an event.") + message_admins("[ADMIN_LOOKUPFLW(operative)] has been made into lone operative by an event.") log_game("[key_name(operative)] was spawned as a lone operative by an event.") spawned_mobs += operative return SUCCESSFUL_SPAWN diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index cda2f50ca2..7153587c79 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -422,12 +422,10 @@ /obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) if(I.is_hot() && !active) active = 1 - var/turf/bombturf = get_turf(src) - var/area/bombarea = get_area(bombturf) - var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]." + var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_VERBOSEJMP(user)]." GLOB.bombers += message message_admins(message) - log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].") + log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(user)].") to_chat(user, "You light [src] on fire.") add_overlay(GLOB.fire_overlay) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 8affd79e52..bd1dbc4f8e 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -189,7 +189,7 @@ var/mob/living/carbon/monkey/bananas = new(drop_location(), TRUE, spammer) if (!QDELETED(bananas)) visible_message("[src] expands!") - bananas.log_message("Spawned via [src] at [COORD(src)], Last attached mob: [key_name(spammer)].", INDIVIDUAL_ATTACK_LOG) + bananas.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", INDIVIDUAL_ATTACK_LOG) else if (!spammer) // Visible message in case there are no fingerprints visible_message("[src] fails to expand!") qdel(src) diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 38f8a40ec3..30b4865a9d 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -111,12 +111,11 @@ foodtype = FRUIT /obj/item/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user) - var/area/A = get_area(user) user.visible_message("[user] primes [src]!", "You prime [src]!") - var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]" + var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [ADMIN_VERBOSEJMP(user)]" GLOB.bombers += message message_admins(message) - log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].") + log_game("[key_name(user)] primed a combustible lemon for detonation at [AREACOORD(user)].") if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 8455df887e..62c3c0b064 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -195,8 +195,8 @@ to_chat(M, "You are lit on fire from the intense heat of the [name]!") M.adjust_fire_stacks(seed.potency / 20) if(M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") + message_admins("[ADMIN_LOOKUPFLW(user)] set [ADMIN_LOOKUPFLW(M)] on fire with [src] at [AREACOORD(user)]") + log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") /obj/item/grown/novaflower/afterattack(atom/A as mob|obj, mob/user,proximity) if(!proximity) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index c35281088d..e9dec09799 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -36,8 +36,8 @@ to_chat(user, "There is too much kudzu here to plant [src].") return FALSE to_chat(user, "You plant [src].") - message_admins("Kudzu planted by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(user)]",0,1) - investigate_log("was planted by [key_name(user)] at [COORD(user)]", INVESTIGATE_BOTANY) + message_admins("Kudzu planted by [ADMIN_LOOKUPFLW(user)] at [ADMIN_VERBOSEJMP(user)]") + investigate_log("was planted by [key_name(user)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) new /datum/spacevine_controller(get_turf(user), mutations, potency, production) qdel(src) diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 5a7c8c93cf..82ff56e7c9 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -136,10 +136,9 @@ max_integrity = 40 /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user) - var/area/A = get_area(user) user.visible_message("[user] plucks the stem from [src]!", "You pluck the stem from [src], which begins to hiss loudly!") - message_admins("[ADMIN_LOOKUPFLW(user)] primed a cherry bomb for detonation at [A] [ADMIN_COORDJMP(user)]") - log_game("[key_name(user)] primed a cherry bomb for detonation at [A] [COORD(user)].") + message_admins("[ADMIN_LOOKUPFLW(user)] primed a cherry bomb for detonation at [ADMIN_VERBOSEJMP(user)]") + log_game("[key_name(user)] primed a cherry bomb for detonation at [AREACOORD(user)].") prime() /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/deconstruct(disassembled = TRUE) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 352d4eff7b..4668f12c3c 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -303,7 +303,7 @@ /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom/attack_self(mob/user) . = ..() if(.) - investigate_log("was planted by [key_name(user)] at [COORD(user)]", INVESTIGATE_BOTANY) + investigate_log("was planted by [key_name(user)] at [AREACOORD(user)]", INVESTIGATE_BOTANY) //// LAVALAND MUSHROOMS //// diff --git a/code/modules/jobs/job_types/silicon.dm b/code/modules/jobs/job_types/silicon.dm index 28ee321f50..c53e034ddf 100644 --- a/code/modules/jobs/job_types/silicon.dm +++ b/code/modules/jobs/job_types/silicon.dm @@ -60,9 +60,7 @@ AI /datum/job/ai/announce(mob/living/silicon/ai/AI) . = ..() - var/area/A = get_area(AI) - var/turf/T = get_turf(AI) - SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "[AI] has been downloaded to an empty bluespace-networked AI core at [COORD(T)], [A.name].")) + SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, .proc/minor_announce, "[AI] has been downloaded to an empty bluespace-networked AI core at [AREACOORD(AI)].")) /datum/job/ai/config_check() return CONFIG_GET(flag/allow_ai) diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index 9fed915c98..8a7f5cb91e 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -9,7 +9,7 @@ var/list/baseturf_to_replace var/baseturf - + layer = POINT_LAYER /obj/effect/baseturf_helper/Initialize() @@ -30,7 +30,7 @@ var/area/our_area = get_area(src) for(var/i in get_area_turfs(our_area, z)) replace_baseturf(i) - + qdel(src) /obj/effect/baseturf_helper/proc/replace_baseturf(turf/thing) @@ -108,11 +108,11 @@ var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.cyclelinkeddir) - log_world("### MAP WARNING, [src] at [COORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!") else airlock.cyclelinkeddir = dir else - log_world("### MAP WARNING, [src] failed to find an airlock at [COORD(src)]") + log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]") /obj/effect/mapping_helpers/airlock/locked @@ -127,11 +127,11 @@ var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.locked) - log_world("### MAP WARNING, [src] at [COORD(src)] tried to bolt [airlock] but it's already locked!") + log_world("### MAP WARNING, [src] at [AREACOORD(src)] tried to bolt [airlock] but it's already locked!") else airlock.locked = TRUE else - log_world("### MAP WARNING, [src] failed to find an airlock at [COORD(src)]") + log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]") //needs to do its thing before spawn_rivers() is called diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index 8ad4053f6a..9ad6d59c3a 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -57,12 +57,12 @@ used = FALSE return - playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1) + playsound(src, 'sound/effects/phasein.ogg', 100, 1) var/turf/T = deploy_location if(!is_mining_level(T.z)) //only report capsules away from the mining/lavaland level - message_admins("[ADMIN_LOOKUPFLW(usr)] activated a bluespace capsule away from the mining level! [ADMIN_JMP(T)]") - log_admin("[key_name(usr)] activated a bluespace capsule away from the mining level at [get_area(T)][COORD(T)]") + message_admins("[ADMIN_LOOKUPFLW(usr)] activated a bluespace capsule away from the mining level! [ADMIN_VERBOSEJMP(T)]") + log_admin("[key_name(usr)] activated a bluespace capsule away from the mining level at [AREACOORD(T)]") template.load(deploy_location, centered = TRUE) new /obj/effect/particle_effect/smoke(get_turf(src)) qdel(src) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 953eb1d02c..e845821ac6 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -915,8 +915,8 @@ var/old_name = T.name if(T.TerraformTurf(turf_type)) user.visible_message("[user] turns \the [old_name] into [transform_string]!") - message_admins("[key_name_admin(user)] fired the lava staff at [get_area(target)]. [ADMIN_COORDJMP(T)]") - log_game("[key_name(user)] fired the lava staff at [get_area(target)] [COORD(T)].") + message_admins("[ADMIN_LOOKUPFLW(user)] fired the lava staff at [ADMIN_VERBOSEJMP(T)]") + log_game("[key_name(user)] fired the lava staff at [AREACOORD(T)].") timer = world.time + create_cooldown playsound(T,'sound/magic/fireball.ogg', 200, 1) else @@ -968,7 +968,7 @@ INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, H) to_chat(user, "You shatter the bottle!") playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, 1) - message_admins("[key_name_admin(user)][ADMIN_FLW(user)] has activated a bottle of mayhem!") + message_admins("[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!") add_logs(user, null, "activated a bottle of mayhem", src) qdel(src) @@ -1008,7 +1008,7 @@ var/mob/living/L = choice - message_admins("[key_name_admin(L)][ADMIN_FLW(L)] has been marked for death by [key_name_admin(user)]!") + message_admins("[ADMIN_LOOKUPFLW(L)] has been marked for death by [ADMIN_LOOKUPFLW(user)]!") var/datum/objective/survive/survive = new survive.owner = L.mind diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 62ef7bde65..2835323172 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -263,25 +263,24 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) icon_state = "Gibtonite active" var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) var/notify_admins = 0 if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel notify_admins = 1 if(notify_admins) if(triggered_by == 1) - message_admins("An explosion has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") + message_admins("An explosion has triggered a [name] to detonate at [ADMIN_VERBOSEJMP(bombturf)].") else if(triggered_by == 2) - message_admins("A signal has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)]. Igniter attacher: [ADMIN_LOOKUPFLW(attacher)]") + message_admins("A signal has triggered a [name] to detonate at [ADMIN_VERBOSEJMP(bombturf)]. Igniter attacher: [ADMIN_LOOKUPFLW(attacher)]") else - message_admins("[ADMIN_LOOKUPFLW(attacher)] has triggered a [name] to detonate at [ADMIN_COORDJMP(bombturf)].") + message_admins("[ADMIN_LOOKUPFLW(attacher)] has triggered a [name] to detonate at [ADMIN_VERBOSEJMP(bombturf)].") if(triggered_by == 1) - log_game("An explosion has primed a [name] for detonation at [A][COORD(bombturf)]") + log_game("An explosion has primed a [name] for detonation at [AREACOORD(bombturf)]") else if(triggered_by == 2) - log_game("A signal has primed a [name] for detonation at [A][COORD(bombturf)]. Igniter attacher: [key_name(attacher)].") + log_game("A signal has primed a [name] for detonation at [AREACOORD(bombturf)]. Igniter attacher: [key_name(attacher)].") else user.visible_message("[user] strikes \the [src], causing a chain reaction!", "You strike \the [src], causing a chain reaction.") - log_game("[key_name(user)] has primed a [name] for detonation at [A][COORD(bombturf)]") + log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(bombturf)]") det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) /obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index e4e76f16b9..ffeee159ee 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -169,9 +169,7 @@ var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors var/turf/end_T = get_turf(target) if(start_T && end_T) - var/start_T_descriptor = "tile in [get_area_name(start_T, TRUE)] ([start_T.x],[start_T.y],[start_T.z])" - var/end_T_descriptor = "tile at [get_area_name(end_T, TRUE)] ([end_T.x],[end_T.y],[end_T.z])" - add_logs(src, throwable_mob, "thrown", addition="grab from [start_T_descriptor] towards [end_T_descriptor]") + add_logs(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]") else if(!(I.flags_1 & (NODROP_1|ABSTRACT_1))) thrown_thing = I diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 3ad39bb016..c5820eb8c1 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -45,10 +45,10 @@ var/turf/padturf = get_turf(T) var/padloc if(padturf) - padloc = COORD(padturf) + padloc = AREACOORD(padturf) else padloc = "(UNKNOWN)" - log_talk(src,"HOLOPAD [padloc]: [key_name(src)] : [message]", LOGSAY) + log_talk(src,"HOLOPAD in [padloc]: [key_name(src)] : [message]", LOGSAY) send_speech(message, 7, T, "robot", get_spans(), language) to_chat(src, "Holopad transmitted, [real_name] \"[message]\"") else diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index ef1da59c36..0356c934ff 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -130,7 +130,7 @@ SetStun(60) //Borgs were getting into trouble because they would attack the emagger before the new laws were shown lawupdate = 0 connected_ai = null - message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") + message_admins("[ADMIN_LOOKUPFLW(user)] emagged cyborg [ADMIN_LOOKUPFLW(src)]. Laws overridden.") log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") var/time = time2text(world.realtime,"hh:mm:ss") GLOB.lawchanges.Add("[time] : [user.name]([user.key]) emagged [name]([key])") diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 8ef39f3b06..f98603f7d6 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -434,7 +434,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp to_chat(M, "Control of your mob has been offered to dead players.") if(usr) log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.") - message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts") + message_admins("[key_name_admin(usr)] has offered control of ([ADMIN_LOOKUPFLW(M)]) to ghosts") var/poll_message = "Do you want to play as [M.real_name]?" if(M.mind && M.mind.assigned_role) poll_message = "[poll_message] Job:[M.mind.assigned_role]." @@ -455,7 +455,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return TRUE else to_chat(M, "There were no ghosts willing to take control.") - message_admins("No ghosts were willing to take control of [key_name_admin(M)])") + message_admins("No ghosts were willing to take control of [ADMIN_LOOKUPFLW(M)])") return FALSE /mob/proc/is_flying(mob/M = src) diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 258f470e3f..9fd8e4baf2 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -72,7 +72,7 @@ Contents: throw EXCEPTION("Ninja created with incorrect mind") spawned_mobs += Ninja - message_admins("[key_name_admin(Ninja)] has been made into a ninja by an event.") + message_admins("[ADMIN_LOOKUPFLW(Ninja)] has been made into a ninja by an event.") log_game("[key_name(Ninja)] was spawned as a ninja by an event.") return SUCCESSFUL_SPAWN diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 66b90f4a1e..a2bbe73937 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -140,7 +140,7 @@ By design, d1 is the smallest direction and d2 is the highest return user.visible_message("[user] cuts the cable.", "You cut the cable.") stored.add_fingerprint(user) - investigate_log("was cut by [key_name(usr, usr.client)] in [get_area(T)]", INVESTIGATE_WIRES) + investigate_log("was cut by [key_name(usr, usr.client)] in [AREACOORD(src)]", INVESTIGATE_WIRES) deconstruct() return diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 0446fbc49b..22c41ad2fd 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -290,18 +290,17 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE // Sound the alert if gravity was just enabled or disabled. var/alert = FALSE - var/area/A = get_area(src) if(SSticker.IsRoundInProgress()) if(on) // If we turned on and the game is live. if(gravity_in_level() == 0) alert = 1 investigate_log("was brought online and is now producing gravity for this level.", INVESTIGATE_GRAVITY) - message_admins("The gravity generator was brought online [A][ADMIN_COORDJMP(src)]") + message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]") else if(gravity_in_level() == 1) alert = 1 investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY) - message_admins("The gravity generator was brought offline with no backup generator. [A][ADMIN_COORDJMP(src)]") + message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]") update_icon() update_list() diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 7266a3e8a0..c5759c5adb 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -83,8 +83,8 @@ /obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj) ..() if(!going_kaboom && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) - message_admins("[key_name_admin(Proj.firer)] triggered an Abductor Core explosion via projectile.") - log_game("[key_name(Proj.firer)] triggered an Abductor Core explosion via projectile.") + message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered an Abductor Core explosion at [AREACOORD(src)] via projectile.") + log_game("[key_name(Proj.firer)] triggered an Abductor Core explosion at [AREACOORD(src)] via projectile.") overload() /obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 27ba1dcaf5..670dd0a8e1 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,3 +1,8 @@ +//emitter construction defines +#define EMITTER_UNWRENCHED 0 +#define EMITTER_WRENCHED 1 +#define EMITTER_WELDED 2 + /obj/machinery/power/emitter name = "emitter" desc = "A heavy-duty industrial laser, often used in containment fields and power generation." @@ -14,14 +19,14 @@ active_power_usage = 300 var/icon_state_on = "emitter_+a" - var/active = 0 - var/powered = 0 + var/active = FALSE + var/powered = FALSE var/fire_delay = 100 var/maximum_fire_delay = 100 var/minimum_fire_delay = 20 var/last_shot = 0 var/shot_number = 0 - var/state = 0 + var/state = EMITTER_UNWRENCHED var/locked = FALSE var/allow_switch_interact = TRUE @@ -46,14 +51,14 @@ idle_power_usage = FALSE locked = TRUE req_access_txt = "100" - state = 2 + state = EMITTER_WELDED use_power = FALSE /obj/machinery/power/emitter/Initialize() . = ..() RefreshParts() wires = new /datum/wires/emitter(src) - if(state == 2 && anchored) + if(state == EMITTER_WELDED && anchored) connect_to_network() sparks = new @@ -93,9 +98,9 @@ /obj/machinery/power/emitter/Destroy() if(SSticker.IsRoundInProgress()) var/turf/T = get_turf(src) - message_admins("Emitter deleted at [ADMIN_COORDJMP(T)]",0,1) - log_game("Emitter deleted at [COORD(T)]") - investigate_log("deleted at [get_area(src)] [COORD(T)]", INVESTIGATE_SINGULO) + message_admins("Emitter deleted at [ADMIN_VERBOSEJMP(T)]") + log_game("Emitter deleted at [AREACOORD(T)]") + investigate_log("deleted at [AREACOORD(T)]", INVESTIGATE_SINGULO) QDEL_NULL(sparks) return ..() @@ -108,33 +113,35 @@ /obj/machinery/power/emitter/interact(mob/user) add_fingerprint(user) - if(state == 2) + if(state == EMITTER_WELDED) if(!powernet) - to_chat(user, "The emitter isn't connected to a wire!") - return 1 + to_chat(user, "\The [src] isn't connected to a wire!") + return TRUE if(!locked && allow_switch_interact) - if(src.active==1) - src.active = 0 - to_chat(user, "You turn off \the [src].") - message_admins("Emitter turned off by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("Emitter turned off by [key_name(user)] in [COORD(src)]") - investigate_log("turned off by [key_name(user)] at [get_area(src)]", INVESTIGATE_SINGULO) + if(active == TRUE) + active = FALSE + to_chat(user, "You turn off [src].") else - src.active = 1 - to_chat(user, "You turn on \the [src].") - src.shot_number = 0 - src.fire_delay = maximum_fire_delay - investigate_log("turned on by [key_name(user)] at [get_area(src)]", INVESTIGATE_SINGULO) + active = TRUE + to_chat(user, "You turn on [src].") + shot_number = 0 + fire_delay = maximum_fire_delay + + message_admins("Emitter turned [active ? "ON" : "OFF"] by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]") + log_game("Emitter turned [active ? "ON" : "OFF"] by [key_name(user)] in [AREACOORD(src)]") + investigate_log("turned [active ? "ON" : "OFF"] by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_SINGULO) + update_icon() + else to_chat(user, "The controls are locked!") else to_chat(user, "[src] needs to be firmly secured to the floor first!") - return 1 + return TRUE /obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) if(ismegafauna(M) && anchored) - state = 0 + state = EMITTER_UNWRENCHED anchored = FALSE M.visible_message("[M] rips [src] free from its moorings!") else @@ -145,26 +152,26 @@ /obj/machinery/power/emitter/process() if(stat & (BROKEN)) return - if(src.state != 2 || (!powernet && active_power_usage)) - src.active = 0 + if(state != EMITTER_WELDED || (!powernet && active_power_usage)) + active = FALSE update_icon() return - if(src.active == 1) + if(active == TRUE) if(!active_power_usage || avail(active_power_usage)) add_load(active_power_usage) if(!powered) - powered = 1 + powered = TRUE update_icon() - investigate_log("regained power and turned on at [get_area(src)]", INVESTIGATE_SINGULO) + investigate_log("regained power and turned ON at [AREACOORD(src)]", INVESTIGATE_SINGULO) else if(powered) - powered = 0 + powered = FALSE update_icon() - investigate_log("lost power and turned off at [get_area(src)]", INVESTIGATE_SINGULO) - log_game("Emitter lost power in ([x],[y],[z])") + investigate_log("lost power and turned OFF at [AREACOORD(src)]", INVESTIGATE_SINGULO) + log_game("Emitter lost power in [AREACOORD(src)]") return - if(charge <=80) - charge+=5 + if(charge <= 80) + charge += 5 if(!check_delay() || manual == TRUE) return FALSE fire_beam() @@ -177,7 +184,7 @@ /obj/machinery/power/emitter/proc/fire_beam_pulse() if(!check_delay()) return FALSE - if(state != 2) + if(state != EMITTER_WELDED) return FALSE if(avail(active_power_usage)) add_load(active_power_usage) @@ -185,7 +192,7 @@ /obj/machinery/power/emitter/proc/fire_beam(mob/user) var/obj/item/projectile/P = new projectile_type(get_turf(src)) - playsound(get_turf(src), projectile_sound, 50, 1) + playsound(get_turf(src), projectile_sound, 50, TRUE) if(prob(35)) sparks.start() P.firer = user? user : src @@ -212,7 +219,7 @@ to_chat(user, "Turn \the [src] off first!") return FAILED_UNFASTEN - else if(state == EM_WELDED) + else if(state == EMITTER_WELDED) if(!silent) to_chat(user, "[src] is welded to the floor!") return FAILED_UNFASTEN @@ -223,9 +230,9 @@ . = ..() if(. == SUCCESSFUL_UNFASTEN) if(anchored) - state = EM_SECURED + state = EMITTER_WRENCHED else - state = EM_UNSECURED + state = EMITTER_UNWRENCHED /obj/machinery/power/emitter/wrench_act(mob/living/user, obj/item/I) default_unfasten_wrench(user, I) @@ -237,26 +244,26 @@ return TRUE switch(state) - if(EM_UNSECURED) + if(EMITTER_UNWRENCHED) to_chat(user, "The [src.name] needs to be wrenched to the floor!") - if(EM_SECURED) + if(EMITTER_WRENCHED) if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user.name] starts to weld the [name] to the floor.", \ "You start to weld \the [src] to the floor...", \ "You hear welding.") if(I.use_tool(src, user, 20, volume=50)) - state = EM_WELDED + state = EMITTER_WELDED to_chat(user, "You weld \the [src] to the floor.") connect_to_network() - if(EM_WELDED) + if(EMITTER_WELDED) if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ "You start to cut \the [src] free from the floor...", \ "You hear welding.") if(I.use_tool(src, user, 20, volume=50)) - state = EM_SECURED + state = EMITTER_WRENCHED to_chat(user, "You cut \the [src] free from the floor.") disconnect_from_network() @@ -307,14 +314,14 @@ icon_state = "protoemitter" icon_state_on = "protoemitter_+a" can_buckle = TRUE - buckle_lying = 0 + buckle_lying = FALSE var/view_range = 12 var/datum/action/innate/protoemitter/firing/auto //BUCKLE HOOKS /obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob,force = 0) - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) manual = FALSE for(var/obj/item/I in buckled_mob.held_items) if(istype(I, /obj/item/turret_control)) @@ -335,7 +342,7 @@ return M.forceMove(get_turf(src)) ..() - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) M.pixel_y = 14 layer = 4.1 if(M.client) @@ -362,7 +369,7 @@ /datum/action/innate/protoemitter/firing/Activate() if(PE.manual) - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + playsound(PE,'sound/mecha/mechmove01.ogg', 50, TRUE) PE.manual = FALSE name = "Switch to Manual Firing" desc = "The emitter will only fire on your command and at your designated target" @@ -373,7 +380,7 @@ UpdateButtonIcon() return else - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + playsound(PE,'sound/mecha/mechmove01.ogg', 50, TRUE) name = "Switch to Automatic Firing" desc = "Emitters will switch to periodic firing at your last target" button_icon_state = "mech_zoom_off" @@ -444,4 +451,9 @@ E.fire_beam(user) delay = world.time + 10 else if (E.charge < 10) - playsound(get_turf(user),'sound/machines/buzz-sigh.ogg', 50, 1) + playsound(src,'sound/machines/buzz-sigh.ogg', 50, TRUE) + + +#undef EMITTER_UNWRENCHED +#undef EMITTER_WRENCHED +#undef EMITTER_WELDED diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 909feeea07..4399939caf 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -332,9 +332,8 @@ field_generator power level display if((world.time - O.last_warning) > 50) //to stop message-spam temp = 0 var/turf/T = get_turf(src) - var/area/A = get_area(T) - message_admins("A singulo exists and a containment field has failed at [A] [ADMIN_COORDJMP(T)].") - investigate_log("has failed whilst a singulo exists at [A] [COORD(T)].", INVESTIGATE_SINGULO) + message_admins("A singulo exists and a containment field has failed at [ADMIN_VERBOSEJMP(T)].") + investigate_log("has failed whilst a singulo exists at [AREACOORD(T)].", INVESTIGATE_SINGULO) O.last_warning = world.time /obj/machinery/field/generator/shock(mob/living/user) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 4d4eb73687..66870d73e8 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -119,9 +119,9 @@ strength++ strength_change() - message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") - investigate_log("increased to [strength] by [key_name(usr)]", INVESTIGATE_SINGULO) + message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_VERBOSEJMP(src)]") + log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [AREACOORD(src)]") + investigate_log("increased to [strength] by [key_name(usr)] at [AREACOORD(src)]", INVESTIGATE_SINGULO) /obj/machinery/particle_accelerator/control_box/proc/remove_strength(s) @@ -129,9 +129,9 @@ strength-- strength_change() - message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") - investigate_log("decreased to [strength] by [key_name(usr)]", INVESTIGATE_SINGULO) + message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_VERBOSEJMP(src)]") + log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [AREACOORD(src)]") + investigate_log("decreased to [strength] by [key_name(usr)] at [AREACOORD(src)]", INVESTIGATE_SINGULO) /obj/machinery/particle_accelerator/control_box/power_change() @@ -206,9 +206,9 @@ /obj/machinery/particle_accelerator/control_box/proc/toggle_power() active = !active - investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]", INVESTIGATE_SINGULO) - message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"][ADMIN_QUE(usr)] [ADMIN_FLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in [COORD(src)]") + investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"] at [AREACOORD(src)]", INVESTIGATE_SINGULO) + message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? ADMIN_LOOKUPFLW(usr) : "outside forces"] in [ADMIN_VERBOSEJMP(src)]") + log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] at [AREACOORD(src)]") if(active) use_power = ACTIVE_POWER_USE for(var/CP in connected_parts) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 5df8fb1d13..25623661d6 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -129,12 +129,11 @@ /obj/singularity/proc/admin_investigate_setup() var/turf/T = get_turf(src) - var/area/A = get_area(T) last_warning = world.time var/count = locate(/obj/machinery/field/containment) in urange(30, src, 1) if(!count) - message_admins("A singulo has been created without containment fields active at [A] [ADMIN_COORDJMP(T)].") - investigate_log("was created at [A] [COORD(T)]. [count?"":"No containment fields were active"]", INVESTIGATE_SINGULO) + message_admins("A singulo has been created without containment fields active at [ADMIN_VERBOSEJMP(T)].") + investigate_log("was created at [AREACOORD(T)]. [count?"":"No containment fields were active"]", INVESTIGATE_SINGULO) /obj/singularity/proc/dissipate() if(!dissipate) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 229323d8b0..a9772d485e 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -152,9 +152,9 @@ //crowbarring it ! var/turf/T = get_turf(src) if(default_deconstruction_crowbar(I)) - message_admins("[src] has been deconstructed by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("[src] has been deconstructed by [key_name(user)]") - investigate_log("SMES deconstructed by [key_name(user)]", INVESTIGATE_SINGULO) + message_admins("[src] has been deconstructed by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") + log_game("[src] has been deconstructed by [key_name(user)] at [AREACOORD(src)]") + investigate_log("SMES deconstructed by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_SINGULO) return else if(panel_open && istype(I, /obj/item/crowbar)) return @@ -174,11 +174,10 @@ /obj/machinery/power/smes/Destroy() if(SSticker.IsRoundInProgress()) - var/area/A = get_area(src) var/turf/T = get_turf(src) - message_admins("SMES deleted at [A][ADMIN_JMP(T)]") - log_game("SMES deleted at [A][COORD(T)]") - investigate_log("deleted at [A][COORD(T)]", INVESTIGATE_SINGULO) + message_admins("SMES deleted at [ADMIN_VERBOSEJMP(T)]") + log_game("SMES deleted at [AREACOORD(T)]") + investigate_log("deleted at [AREACOORD(T)]", INVESTIGATE_SINGULO) if(terminal) disconnect_terminal() return ..() diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 9a6d8ed3af..cf9b697d00 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -21,7 +21,7 @@ . = ..() GLOB.poi_list += src var/turf/T = get_turf(src) - var/msg = "A pulse rifle prize has been created at [ADMIN_COORDJMP(T)]" + var/msg = "A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]" message_admins(msg) log_game(msg) diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index 7c7af4e27b..e7b628653f 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -83,7 +83,7 @@ playsound(user, "explosion", 100, 1) var/turf/starting = get_turf(user) var/turf/targturf = get_turf(target) - var/log_str = "Blast wave fired from [ADMIN_COORDJMP(starting)] ([get_area_name(user, TRUE)]) at [ADMIN_COORDJMP(targturf)] ([target.name]) by [user.name]([user.ckey]) with power [heavy]/[medium]/[light]." + var/log_str = "Blast wave fired from [ADMIN_VERBOSEJMP(starting)] ([get_area_name(user, TRUE)]) at [ADMIN_VERBOSEJMP(targturf)] ([target.name]) by [user.name]([user.ckey]) with power [heavy]/[medium]/[light]." message_admins(log_str) log_game(log_str) var/obj/item/projectile/blastwave/BW = new(loc, heavy, medium, light) diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm index e57d77bdf9..e51c3573e3 100644 --- a/code/modules/projectiles/guns/misc/grenade_launcher.dm +++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm @@ -44,8 +44,8 @@ grenades -= F F.forceMove(user.loc) F.throw_at(target, 30, 2, user) - message_admins("[key_name_admin(user)] fired a grenade ([F.name]) from a grenade launcher ([src.name]).") - log_game("[key_name(user)] fired a grenade ([F.name]) from a grenade launcher ([src.name]).") + message_admins("[ADMIN_LOOKUPFLW(user)] fired a grenade ([F.name]) from a grenade launcher ([src]) from [AREACOORD(user)] at [target] [AREACOORD(target)].") + log_game("[key_name(user)] fired a grenade ([F.name]) with a grenade launcher ([src]) from [AREACOORD(user)] at [target] [AREACOORD(target)].") F.active = 1 F.icon_state = initial(F.icon_state) + "_active" playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 56cec26dd3..4a67b222e6 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -143,9 +143,9 @@ on = !on update_icon() if(on) - message_admins("[key_name_admin(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(src)].") - log_game("[key_name(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [COORD(src)].") - add_logs(usr, src, "has activated [src] which contains [english_list(reagents.reagent_list)].") + message_admins("[ADMIN_LOOKUPFLW(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [ADMIN_VERBOSEJMP(src)].") + log_game("[key_name(usr)] activated a smoke machine that contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].") + add_logs(usr, src, "has activated [src] which contains [english_list(reagents.reagent_list)] at [AREACOORD(src)].") if("goScreen") screen = params["screen"] . = TRUE diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 51fda371c1..e19d2c20d7 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -24,7 +24,7 @@ if(holder && holder.my_atom) var/atom/A = holder.my_atom var/turf/T = get_turf(A) - var/message = "A [reaction_name] reaction has occurred in [get_area_name(T)] [ADMIN_COORDJMP(T)]" + var/message = "A [reaction_name] reaction has occurred in [ADMIN_VERBOSEJMP(T)]" message += " (VV)" var/mob/M = get(A, /mob) @@ -34,7 +34,7 @@ message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]" message_admins(message, 0, 1) - log_game("[reaction_name] chemical mob spawn reaction occuring at [COORD(T)]([get_area_name(T)]) carried by [key_name(M)] with last fingerprint [A.fingerprintslast? A.fingerprintslast : "N/A"]") + log_game("[reaction_name] chemical mob spawn reaction occuring at [AREACOORD(T)] carried by [key_name(M)] with last fingerprint [A.fingerprintslast? A.fingerprintslast : "N/A"]") playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 1e65a96389..8b8c009a43 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -6,18 +6,17 @@ /datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume) var/turf/T = get_turf(holder.my_atom) - var/area/A = get_area(T) var/inside_msg if(ismob(holder.my_atom)) var/mob/M = holder.my_atom - inside_msg = " inside [key_name_admin(M)]" + inside_msg = " inside [ADMIN_LOOKUPFLW(M)]" var/lastkey = holder.my_atom.fingerprintslast var/touch_msg = "N/A" if(lastkey) var/mob/toucher = get_mob_by_key(lastkey) touch_msg = "[ADMIN_LOOKUPFLW(toucher)]" - message_admins("Reagent explosion reaction occurred at [A] [ADMIN_COORDJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].") - log_game("Reagent explosion reaction occurred at [A] [COORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) + message_admins("Reagent explosion reaction occurred at [ADMIN_VERBOSEJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].") + log_game("Reagent explosion reaction occurred at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." ) var/datum/effect_system/reagents_explosion/e = new() e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0) e.start() diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 0ab98a1f99..c68c0a16b0 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -428,14 +428,13 @@ /datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder) var/turf/T = get_turf(holder.my_atom) - var/area/A = get_area(T) var/lastkey = holder.my_atom.fingerprintslast var/touch_msg = "N/A" if(lastkey) var/mob/toucher = get_mob_by_key(lastkey) touch_msg = "[ADMIN_LOOKUPFLW(toucher)]." - message_admins("Slime Explosion reaction started at [A] [ADMIN_COORDJMP(T)]. Last Fingerprint: [touch_msg]") - log_game("Slime Explosion reaction started at [A] [COORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].") + message_admins("Slime Explosion reaction started at [ADMIN_VERBOSEJMP(T)]. Last Fingerprint: [touch_msg]") + log_game("Slime Explosion reaction started at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].") T.visible_message("The slime extract begins to vibrate violently !") addtimer(CALLBACK(src, .proc/boom, holder), 50) var/obj/item/slime_extract/M = holder.my_atom diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 054fe077c3..4a40addc5d 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -110,9 +110,9 @@ else if(isturf(target) && reagents.reagent_list.len && thrownby) - add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") - log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [COORD(target)].") - message_admins("[key_name_admin(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") + add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]") + log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].") + message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].") visible_message("[src] spills its contents all over [target].") reagents.reaction(target, TOUCH) if(QDELETED(src)) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 7dfe095a6d..3a64da8f04 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -29,9 +29,9 @@ R += A.id + " (" R += num2text(A.volume) + ")," if(isturf(target) && reagents.reagent_list.len && thrownby) - add_logs(thrownby, target, "splashed [english_list(reagents.reagent_list)]", "at [target][COORD(target)]") - log_game("[key_name(thrownby)] splashed [english_list(reagents.reagent_list)] at [COORD(target)].") - message_admins("[key_name_admin(thrownby)] splashed [english_list(reagents.reagent_list)] at [ADMIN_COORDJMP(target)].") + add_logs(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]") + log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].") + message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].") reagents.reaction(M, TOUCH) add_logs(user, M, "splashed", R) reagents.clear_reagents() diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 9a492d9a33..b0e101f76a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -50,16 +50,15 @@ user.changeNext_move(CLICK_CD_RANGE*2) user.newtonian_move(get_dir(A, user)) var/turf/T = get_turf(src) - var/area/area = get_area(src) if(reagents.has_reagent("sacid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") + message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [ADMIN_VERBOSEJMP(T)].") + log_game("[key_name(user)] fired sulphuric acid from \a [src] at [AREACOORD(T)].") if(reagents.has_reagent("facid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") + message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [ADMIN_VERBOSEJMP(T)].") + log_game("[key_name(user)] fired Fluacid from \a [src] at [AREACOORD(T)].") if(reagents.has_reagent("lube")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") + message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [ADMIN_VERBOSEJMP(T)].") + log_game("[key_name(user)] fired Space lube from \a [src] at [AREACOORD(T)].") return diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index ddc88301b2..508f3815a0 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -78,7 +78,7 @@ ..() if(!QDELETED(src)) //wasn't deleted by the projectile's effects. if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) - var/boom_message = "[key_name_admin(P.firer)] triggered a fueltank explosion via projectile." + var/boom_message = "[ADMIN_LOOKUPFLW(P.firer)] triggered a fueltank explosion via projectile." GLOB.bombers += boom_message message_admins(boom_message) var/log_message = "triggered a fueltank explosion via projectile." @@ -102,12 +102,11 @@ W.update_icon() else var/turf/T = get_turf(src) - var/area/A = get_area(T) user.visible_message("[user] catastrophically fails at refilling [user.p_their()] [W.name]!", "That was stupid of you.") - var/message_admins = "[key_name_admin(user)] triggered a fueltank explosion via welding tool at [A] [ADMIN_COORDJMP(T)]." + var/message_admins = "[ADMIN_LOOKUPFLW(user)] triggered a fueltank explosion via welding tool at [ADMIN_VERBOSEJMP(T)]." GLOB.bombers += message_admins message_admins(message_admins) - var/message_log = "triggered a fueltank explosion via welding tool at [A] [COORD(T)]." + var/message_log = "triggered a fueltank explosion via welding tool at [AREACOORD(T)]." user.log_message(message_log, INDIVIDUAL_ATTACK_LOG) log_game("[key_name(user)] [message_log]") log_attack("[key_name(user)] [message_log]") diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 41fbc5092d..7920557427 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -32,7 +32,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/machinery/conveyor/inverted/Initialize(mapload) . = ..() if(mapload && !(dir in GLOB.diagonals)) - log_game("### MAPPING ERROR: [src] at [COORD(src)] spawned without using a diagonal dir. Please replace with a normal version.") + log_game("### MAPPING ERROR: [src] at [AREACOORD(src)] spawned without using a diagonal dir. Please replace with a normal version.") // Auto conveyour is always on unless unpowered diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 55b193de5a..23d7a9fba3 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -513,8 +513,8 @@ /obj/machinery/rnd/experimentor/proc/warn_admins(user, ReactionName) var/turf/T = get_turf(user) - message_admins("Experimentor reaction: [ReactionName] generated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)]",0,1) - log_game("Experimentor reaction: [ReactionName] generated by [key_name(user)] in ([T.x],[T.y],[T.z])") + message_admins("Experimentor reaction: [ReactionName] generated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_VERBOSEJMP(T)]") + log_game("Experimentor reaction: [ReactionName] generated by [key_name(user)] in [AREACOORD(T)]") #undef SCANTYPE_POKE #undef SCANTYPE_IRRADIATE @@ -659,8 +659,8 @@ //Admin Warning proc for relics /obj/item/relic/proc/warn_admins(mob/user, RelicType, priority = 1) var/turf/T = get_turf(src) - var/log_msg = "[RelicType] relic used by [key_name(user)] in ([T.x],[T.y],[T.z])" + var/log_msg = "[RelicType] relic used by [key_name(user)] in [AREACOORD(T)]" if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK! - message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) + message_admins("[RelicType] relic activated by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]") log_game(log_msg) investigate_log(log_msg, "experimentor") diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm index cf45b91dfe..d37ecfe052 100644 --- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm @@ -176,7 +176,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) message_admins("Legion took damage while the necropolis gate was closed, and has released itself!") log_game("Legion took damage while the necropolis gate was closed and released itself.") else - message_admins("[user ? key_name_admin(user):"Unknown"] has released Legion!") + message_admins("[user ? ADMIN_LOOKUPFLW(user):"Unknown"] has released Legion!") log_game("[user ? key_name(user):"Unknown"] released Legion.") var/sound/legion_sound = sound('sound/creatures/legion_spawn.ogg') diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 8c5f5aec8d..fc32b60e6d 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -104,7 +104,7 @@ authorized += ID - message_admins("[ADMIN_LOOKUPFLW(user)] has authorized early shuttle launch", 0, 1) + message_admins("[ADMIN_LOOKUPFLW(user)] has authorized early shuttle launch") log_game("[key_name(user)] has authorized early shuttle launch in [COORD(src)]") // Now check if we're on our way . = TRUE @@ -143,12 +143,8 @@ return var/time = TIME_LEFT - message_admins("[key_name_admin(user.client)] \ - (?) \ - (FLW) \ - has emagged the emergency shuttle [time] seconds before launch.", 0, 1) - log_game("[key_name(user)] has emagged the emergency shuttle in \ - [COORD(src)] [time] seconds before launch.") + message_admins("[ADMIN_LOOKUPFLW(user.client)] has emagged the emergency shuttle [time] seconds before launch.") + log_game("[key_name(user)] has emagged the emergency shuttle in [COORD(src)] [time] seconds before launch.") obj_flags |= EMAGGED SSshuttle.emergency.movement_force = list("KNOCKDOWN" = 60, "THROW" = 20)//YOUR PUNY SEATBELTS can SAVE YOU NOW, MORTAL var/datum/species/S = new diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 1d8732cda9..c8c6a66321 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -156,8 +156,7 @@ if(M.id == params["id"] && M.timer && M.timeLeft() >= 50) M.setTimer(50) . = TRUE - message_admins("[key_name_admin(usr)] fast travelled \ - [M]") + message_admins("[key_name_admin(usr)] fast travelled [M]") log_admin("[key_name(usr)] fast travelled [M]") SSblackbox.record_feedback("text", "shuttle_manipulator", 1, "[M.name]") break @@ -182,10 +181,8 @@ var/obj/docking_port/mobile/mdp = action_load(S) if(mdp) user.forceMove(get_turf(mdp)) - message_admins("[key_name_admin(usr)] loaded [mdp] \ - with the shuttle manipulator.") - log_admin("[key_name(usr)] loaded [mdp] with the \ - shuttle manipulator.") + message_admins("[key_name_admin(usr)] loaded [mdp] with the shuttle manipulator.") + log_admin("[key_name(usr)] loaded [mdp] with the shuttle manipulator.") SSblackbox.record_feedback("text", "shuttle_manipulator", 1, "[mdp.name]") update_icon() diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 6a14fca455..f42f7bfc9c 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]) has shipped.", INVESTIGATE_CARGO) if(SO.pack.dangerous) - message_admins("\A [SO.pack.name] ordered by [key_name_admin(SO.orderer_ckey)] has shipped.") + message_admins("\A [SO.pack.name] ordered by [ADMIN_LOOKUPFLW(SO.orderer_ckey)] has shipped.") purchases++ investigate_log("[purchases] orders in this shipment, worth [value] credits. [SSshuttle.points] credits left.", INVESTIGATE_CARGO) diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index 92db588be1..414aa10933 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -137,7 +137,7 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE) /proc/rightandwrong(summon_type, mob/user, survivor_probability) if(user) //in this case either someone holding a spellbook or a badmin to_chat(user, "You summoned [summon_type]!") - message_admins("[key_name_admin(user, 1)] summoned [summon_type]!") + message_admins("[key_name_admin(user, TRUE)] summoned [summon_type]!") log_game("[key_name(user)] summoned [summon_type]!") if(summon_type == SUMMON_MAGIC) diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 9e56e94d74..be2c4f92bd 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -185,7 +185,7 @@ T.ex_act(EXPLODE_DEVASTATE) point.Beam(get_target_turf(),icon_state="bsa_beam",time=50,maxdistance = world.maxx) //ZZZAP - message_admins("[key_name_admin(user)] has launched an artillery strike.") + message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike.") explosion(bullseye,ex_power,ex_power*2,ex_power*4) reload() diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 0c67b8267d..03215aa6d6 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -46,7 +46,7 @@ user.visible_message("[user] successfully brainwashes [target]!", "You succeed in brainwashing [target].") to_chat(target, "A new compulsion fills your mind... you feel forced to obey it!") brainwash(target, objective) - message_admins("[key_name_admin(user)] surgically brainwashed [key_name_admin(target)] with the objective '[objective]'.") + message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.") log_game("[key_name(user)] surgically brainwashed [key_name(target)] with the objective '[objective]'.") return TRUE diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 10c825cb4a..2521037963 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -569,7 +569,7 @@ cooldown = COOLDOWN_NONE if(message_admins) - message_admins("[key_name_admin(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") + message_admins("[ADMIN_LOOKUPFLW(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") log_game("[key_name(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") SSblackbox.record_feedback("tally", "voice_of_god", 1, log_message) From f4441c48368d30bb70bae0f2b2e4e4644e46cc2a Mon Sep 17 00:00:00 2001 From: CitrusGender <31262308+CitrusGender@users.noreply.github.com> Date: Wed, 30 May 2018 21:33:57 -0400 Subject: [PATCH 013/205] Fix: Cyborgs can now use defibs with other modules equipped (#38158) * Adds a check to see if the user is a cyborg before referring to the offhand. * Update twohanded.dm * actually this is a bit more modular * Update twohanded.dm * Update twohanded.dm --- code/modules/mob/living/silicon/silicon.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 100e85f085..b149701591 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -403,3 +403,6 @@ /mob/living/silicon/is_literate() return 1 + +/mob/living/silicon/get_inactive_held_item() + return FALSE \ No newline at end of file From 9c4f4ce17f361d57e0ae65ec077a15a28205d5a4 Mon Sep 17 00:00:00 2001 From: Cruix Date: Wed, 30 May 2018 18:31:32 -0700 Subject: [PATCH 015/205] AI Multicamera mode (#37695) * Added multicamera mode for AIs * Minor multicamera fixes * Cameras near an AI multicamera eye now light up red * Disabled AI multicamera mode without admin intervention * Fixed AIs being able to use multicamera mode when they should not --- _maps/map_files/generic/CentCom.dmm | 1068 +++++++++-------- code/_onclick/ai.dm | 8 + code/_onclick/hud/_defines.dm | 2 + code/_onclick/hud/ai.dm | 30 +- code/_onclick/hud/movable_screen_objects.dm | 6 +- code/_onclick/hud/picture_in_picture.dm | 144 +++ code/_onclick/hud/screen_objects.dm | 15 + code/datums/holocall.dm | 5 +- code/game/machinery/camera/camera.dm | 3 +- .../machinery/computer/camera_advanced.dm | 2 +- code/modules/lighting/lighting_object.dm | 2 - code/modules/mob/living/silicon/ai/ai.dm | 23 +- .../living/silicon/ai/freelook/cameranet.dm | 70 +- .../mob/living/silicon/ai/freelook/chunk.dm | 18 +- .../mob/living/silicon/ai/freelook/eye.dm | 39 +- code/modules/mob/living/silicon/ai/life.dm | 1 + code/modules/mob/living/silicon/ai/login.dm | 2 + .../modules/mob/living/silicon/ai/multicam.dm | 266 ++++ icons/misc/pic_in_pic.dmi | Bin 0 -> 3370 bytes icons/mob/screen_ai.dmi | Bin 2398 -> 2543 bytes icons/obj/machines/camera.dmi | Bin 6266 -> 8713 bytes icons/turf/areas.dmi | Bin 36693 -> 36973 bytes tgstation.dme | 2 + 23 files changed, 1126 insertions(+), 580 deletions(-) create mode 100644 code/_onclick/hud/picture_in_picture.dm create mode 100644 code/modules/mob/living/silicon/ai/multicam.dm create mode 100644 icons/misc/pic_in_pic.dmi diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 0f9857ad73..02c20e6896 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -5699,6 +5699,10 @@ }, /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) +"pW" = ( +/obj/effect/landmark/ai_multicam_room, +/turf/open/ai_visible, +/area/ai_multicam_room) "pX" = ( /obj/item/storage/crayons, /obj/structure/table, @@ -10234,6 +10238,9 @@ dir = 8 }, /area/centcom/evac) +"Di" = ( +/turf/closed/indestructible/riveted, +/area/ai_multicam_room) "Dj" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -13624,6 +13631,9 @@ "PY" = ( /turf/open/floor/plasteel/whitegreen, /area/centcom/holding) +"Qe" = ( +/turf/open/ai_visible, +/area/ai_multicam_room) "Qk" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/ausbushes/ppflowers, @@ -30581,29 +30591,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di aa aa aa @@ -30838,29 +30848,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -31095,29 +31105,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -31352,29 +31362,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -31609,29 +31619,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -31866,29 +31876,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -32123,29 +32133,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -32380,29 +32390,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -32637,29 +32647,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -32894,29 +32904,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -33151,29 +33161,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -33408,29 +33418,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +pW +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -33665,29 +33675,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -33922,29 +33932,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -34179,29 +34189,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -34436,29 +34446,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -34693,29 +34703,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -34950,29 +34960,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -35207,29 +35217,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -35464,29 +35474,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -35721,29 +35731,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -35978,29 +35988,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -36235,29 +36245,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di aa aa aa diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 9ef689de8b..e15d4f035c 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -26,6 +26,14 @@ return next_click = world.time + 1 + if(multicam_on) + var/turf/T = get_turf(A) + if(T) + for(var/obj/screen/movable/pic_in_pic/ai/P in T.vis_locs) + if(P.ai == src) + P.Click(params) + break + if(check_click_intercept(params,A)) return diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 3225252520..b558e7c87c 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -134,6 +134,8 @@ #define ui_ai_take_picture "SOUTH:6,WEST+12" #define ui_ai_view_images "SOUTH:6,WEST+13" #define ui_ai_sensor "SOUTH:6,WEST+14" +#define ui_ai_multicam "SOUTH+1:6,WEST+13" +#define ui_ai_add_multicam "SOUTH+1:6,WEST+14" //Pop-up inventory #define ui_shoes "WEST+1:8,SOUTH:5" diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 8d4aca5fbf..463051c6b4 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -164,6 +164,26 @@ var/mob/living/silicon/S = usr S.toggle_sensors() +/obj/screen/ai/multicam + name = "Multicamera Mode" + icon_state = "multicam" + +/obj/screen/ai/multicam/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.toggle_multicam() + +/obj/screen/ai/add_multicam + name = "New Camera" + icon_state = "new_cam" + +/obj/screen/ai/add_multicam/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.drop_new_multicam() + /datum/hud/ai ui_style_icon = 'icons/mob/screen_ai.dmi' @@ -247,12 +267,20 @@ using.screen_loc = ui_ai_view_images static_inventory += using - //Medical/Security sensors using = new /obj/screen/ai/sensors() using.screen_loc = ui_ai_sensor static_inventory += using +//Multicamera mode + using = new /obj/screen/ai/multicam() + using.screen_loc = ui_ai_multicam + static_inventory += using + +//Add multicamera camera + using = new /obj/screen/ai/add_multicam() + using.screen_loc = ui_ai_add_multicam + static_inventory += using /mob/living/silicon/ai/create_mob_hud() if(client && !hud_used) diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 4da721012d..f71ced7a9d 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -12,6 +12,8 @@ var/snap2grid = FALSE var/moved = FALSE var/locked = FALSE + var/x_off = -16 + var/y_off = -16 //Snap Screen Object //Tied to the grid, snaps to the nearest turf @@ -42,8 +44,8 @@ screen_loc = "[screen_loc_X[1]],[screen_loc_Y[1]]" else //Normalise Pixel Values (So the object drops at the center of the mouse, not 16 pixels off) - var/pix_X = text2num(screen_loc_X[2]) - 16 - var/pix_Y = text2num(screen_loc_Y[2]) - 16 + var/pix_X = text2num(screen_loc_X[2]) + x_off + var/pix_Y = text2num(screen_loc_Y[2]) + y_off screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]" moved = screen_loc diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm new file mode 100644 index 0000000000..ce5f2c9884 --- /dev/null +++ b/code/_onclick/hud/picture_in_picture.dm @@ -0,0 +1,144 @@ +/obj/screen/movable/pic_in_pic + name = "Picture-in-picture" + screen_loc = "CENTER" + plane = GAME_PLANE + var/atom/center + var/width = 0 + var/height = 0 + var/list/shown_to = list() + var/list/viewing_turfs = list() + var/obj/screen/component_button/button_x + var/obj/screen/component_button/button_expand + var/obj/screen/component_button/button_shrink + + var/mutable_appearance/standard_background + var/const/max_dimensions = 10 + +/obj/screen/movable/pic_in_pic/Initialize() + . = ..() + make_backgrounds() + +/obj/screen/movable/pic_in_pic/Destroy() + for(var/C in shown_to) + unshow_to(C) + QDEL_NULL(button_x) + QDEL_NULL(button_shrink) + QDEL_NULL(button_expand) + return ..() + +/obj/screen/movable/pic_in_pic/component_click(obj/screen/component_button/component, params) + if(component == button_x) + qdel(src) + else if(component == button_expand) + set_view_size(width+1, height+1) + else if(component == button_shrink) + set_view_size(width-1, height-1) + +/obj/screen/movable/pic_in_pic/proc/make_backgrounds() + standard_background = new /mutable_appearance() + standard_background.icon = 'icons/misc/pic_in_pic.dmi' + standard_background.icon_state = "background" + standard_background.layer = SPACE_LAYER + +/obj/screen/movable/pic_in_pic/proc/add_buttons() + var/static/mutable_appearance/move_tab + if(!move_tab) + move_tab = new /mutable_appearance() + //all these properties are always the same, and since adding something to the overlay + //list makes a copy, there is no reason to make a new one each call + move_tab.icon = 'icons/misc/pic_in_pic.dmi' + move_tab.icon_state = "move" + move_tab.plane = HUD_PLANE + var/matrix/M = matrix() + M.Translate(0, (height + 0.25) * world.icon_size) + move_tab.transform = M + add_overlay(move_tab) + + if(!button_x) + button_x = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "close" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "x" + MA.plane = HUD_PLANE + button_x.appearance = MA + M = matrix() + M.Translate((max(4, width) - 0.75) * world.icon_size, (height + 0.25) * world.icon_size) + button_x.transform = M + vis_contents += button_x + + if(!button_expand) + button_expand = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "expand" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "expand" + MA.plane = HUD_PLANE + button_expand.appearance = MA + M = matrix() + M.Translate(world.icon_size, (height + 0.25) * world.icon_size) + button_expand.transform = M + vis_contents += button_expand + + if(!button_shrink) + button_shrink = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "shrink" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "shrink" + MA.plane = HUD_PLANE + button_shrink.appearance = MA + M = matrix() + M.Translate(2 * world.icon_size, (height + 0.25) * world.icon_size) + button_shrink.transform = M + vis_contents += button_shrink + +/obj/screen/movable/pic_in_pic/proc/add_background() + if((width > 0) && (height > 0)) + var/matrix/M = matrix() + M.Scale(width + 0.5, height + 0.5) + M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) + standard_background.transform = M + add_overlay(standard_background) + +/obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE) + width = CLAMP(width, 0, max_dimensions) + height = CLAMP(height, 0, max_dimensions) + src.width = width + src.height = height + + y_off = -height * world.icon_size - 16 + + cut_overlays() + add_background() + add_buttons() + if(do_refresh) + refresh_view() + +/obj/screen/movable/pic_in_pic/proc/set_view_center(atom/target, do_refresh = TRUE) + center = target + if(do_refresh) + refresh_view() + +/obj/screen/movable/pic_in_pic/proc/refresh_view() + vis_contents -= viewing_turfs + if(!width || !height) + return + var/turf/T = get_turf(center) + if(!T) + return + var/turf/lowerleft = locate(max(1, T.x - round(width/2)), max(1, T.y - round(height/2)), T.z) + var/turf/upperright = locate(min(world.maxx, lowerleft.x + width - 1), min(world.maxy, lowerleft.y + height - 1), lowerleft.z) + viewing_turfs = block(lowerleft, upperright) + vis_contents += viewing_turfs + + +/obj/screen/movable/pic_in_pic/proc/show_to(client/C) + if(C) + shown_to[C] = 1 + C.screen += src + +/obj/screen/movable/pic_in_pic/proc/unshow_to(client/C) + if(C) + shown_to -= C + C.screen -= src diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 02ece81b41..d2ac10a83f 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -30,6 +30,9 @@ /obj/screen/orbit() return +/obj/screen/proc/component_click(obj/screen/component_button/component, params) + return + /obj/screen/text icon = null icon_state = null @@ -604,3 +607,15 @@ holder.screen -= src holder = null return ..() + + +/obj/screen/component_button + var/obj/screen/parent + +/obj/screen/component_button/Initialize(mapload, obj/screen/parent) + . = ..() + src.parent = parent + +/obj/screen/component_button/Click(params) + if(parent) + parent.component_click(src, params) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index d19e8be2e1..22dc6a7671 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -60,9 +60,6 @@ user.remote_control = null if(!QDELETED(eye)) - if(user_good && user.client) - for(var/datum/camerachunk/chunk in eye.visibleCameraChunks) - chunk.remove(eye) qdel(eye) eye = null @@ -284,7 +281,7 @@ else var/datum/preset_holoimage/H = new preset_image_type record.caller_image = H.build_image() - + //These build caller image from outfit and some additional data, for use by mappers for ruin holorecords /datum/preset_holoimage var/nonhuman_mobtype //Fill this if you just want something nonhuman diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 3e8a0bb84d..2ea74637d5 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -36,6 +36,7 @@ var/alarm_on = FALSE var/busy = FALSE var/emped = FALSE //Number of consecutive EMP's on this camera + var/in_use_lights = 0 // Upgrades bitflag var/upgrades = 0 @@ -285,7 +286,7 @@ else if (stat & EMPED) icon_state = "[initial(icon_state)]emp" else - icon_state = "[initial(icon_state)]" + icon_state = "[initial(icon_state)][in_use_lights ? "_in_use" : ""]" /obj/machinery/camera/proc/toggle_cam(mob/user, displaymessage = 1) status = !status diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 6112a5d760..26a8ac940e 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -190,7 +190,7 @@ else moveToNullspace() if(use_static) - GLOB.cameranet.visibility(src) + GLOB.cameranet.visibility(src, GetViewerClient()) if(visible_icon) if(eye_user.client) eye_user.client.images -= user_image diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index fe25dc9439..c0c5a411e7 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -11,8 +11,6 @@ layer = LIGHTING_LAYER invisibility = INVISIBILITY_LIGHTING - blend_mode = BLEND_ADD - var/needs_update = FALSE var/turf/myturf diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 8664a111ae..cbc04d11be 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -74,7 +74,7 @@ var/nuking = FALSE var/obj/machinery/doomsday_device/doomsday_device - var/mob/camera/aiEye/eyeobj = new + var/mob/camera/aiEye/eyeobj var/sprint = 10 var/cooldown = 0 var/acceleration = 1 @@ -85,6 +85,13 @@ var/datum/action/innate/deploy_last_shell/redeploy_action = new var/chnotify = 0 + var/multicam_allowed = FALSE + var/multicam_on = FALSE + var/obj/screen/movable/pic_in_pic/ai/master_multicam + var/list/multicam_screens = list() + var/list/all_eyes = list() + var/max_multicams = 6 + /mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai) . = ..() if(!target_ai) //If there is no player/brain inside. @@ -116,8 +123,7 @@ job = "AI" - eyeobj.ai = src - eyeobj.forceMove(src.loc) + create_eye() rename_self("ai") holo_icon = getHologramIcon(icon('icons/mob/ai.dmi',"default")) @@ -871,9 +877,12 @@ current = A if(client) if(ismovableatom(A)) + if(A != GLOB.ai_camera_room_landmark) + end_multicam() client.perspective = EYE_PERSPECTIVE client.eye = A else + end_multicam() if(isturf(loc)) if(eyeobj) client.eye = eyeobj @@ -993,3 +1002,11 @@ . = ..() if(!target_ai) target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct + +/mob/living/silicon/ai/proc/camera_visibility(mob/camera/aiEye/moved_eye) + GLOB.cameranet.visibility(moved_eye, client, all_eyes) + +/mob/living/silicon/ai/forceMove(atom/destination) + . = ..() + if(.) + end_multicam() diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index 815ddb64ea..5cc08ff1e0 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -38,29 +38,63 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) // Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. -/datum/cameranet/proc/visibility(mob/camera/aiEye/ai) - // 0xf = 15 - var/x1 = max(0, ai.x - 16) & ~(CHUNK_SIZE - 1) - var/y1 = max(0, ai.y - 16) & ~(CHUNK_SIZE - 1) - var/x2 = min(world.maxx, ai.x + 16) & ~(CHUNK_SIZE - 1) - var/y2 = min(world.maxy, ai.y + 16) & ~(CHUNK_SIZE - 1) +/datum/cameranet/proc/visibility(list/moved_eyes, client/C, list/other_eyes) + if(!islist(moved_eyes)) + moved_eyes = moved_eyes ? list(moved_eyes) : list() + if(islist(other_eyes)) + other_eyes = (other_eyes - moved_eyes) + else + other_eyes = list() - var/list/visibleChunks = list() + var/list/chunks_pre_seen = list() + var/list/chunks_post_seen = list() - for(var/x = x1; x <= x2; x += CHUNK_SIZE) - for(var/y = y1; y <= y2; y += CHUNK_SIZE) - visibleChunks |= getCameraChunk(x, y, ai.z) + for(var/V in moved_eyes) + var/mob/camera/aiEye/eye = V + if(C) + chunks_pre_seen |= eye.visibleCameraChunks + // 0xf = 15 + var/static_range = eye.static_visibility_range + var/x1 = max(0, eye.x - static_range) & ~(CHUNK_SIZE - 1) + var/y1 = max(0, eye.y - static_range) & ~(CHUNK_SIZE - 1) + var/x2 = min(world.maxx, eye.x + static_range) & ~(CHUNK_SIZE - 1) + var/y2 = min(world.maxy, eye.y + static_range) & ~(CHUNK_SIZE - 1) - var/list/remove = ai.visibleCameraChunks - visibleChunks - var/list/add = visibleChunks - ai.visibleCameraChunks + var/list/visibleChunks = list() - for(var/chunk in remove) - var/datum/camerachunk/c = chunk - c.remove(ai) + for(var/x = x1; x <= x2; x += CHUNK_SIZE) + for(var/y = y1; y <= y2; y += CHUNK_SIZE) + visibleChunks |= getCameraChunk(x, y, eye.z) - for(var/chunk in add) - var/datum/camerachunk/c = chunk - c.add(ai) + var/list/remove = eye.visibleCameraChunks - visibleChunks + var/list/add = visibleChunks - eye.visibleCameraChunks + + for(var/chunk in remove) + var/datum/camerachunk/c = chunk + c.remove(eye, FALSE) + + for(var/chunk in add) + var/datum/camerachunk/c = chunk + c.add(eye, FALSE) + + if(C) + chunks_post_seen |= eye.visibleCameraChunks + + if(C) + for(var/V in other_eyes) + var/mob/camera/aiEye/eye = V + chunks_post_seen |= eye.visibleCameraChunks + + var/list/remove = chunks_pre_seen - chunks_post_seen + var/list/add = chunks_post_seen - chunks_pre_seen + + for(var/chunk in remove) + var/datum/camerachunk/c = chunk + C.images -= c.obscured + + for(var/chunk in add) + var/datum/camerachunk/c = chunk + C.images += c.obscured // Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index f062c7e010..e03bba3067 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -20,10 +20,11 @@ // Add an AI eye to the chunk, then update if changed. -/datum/camerachunk/proc/add(mob/camera/aiEye/eye) - var/client/client = eye.GetViewerClient() - if(client) - client.images += obscured +/datum/camerachunk/proc/add(mob/camera/aiEye/eye, add_images = TRUE) + if(add_images) + var/client/client = eye.GetViewerClient() + if(client) + client.images += obscured eye.visibleCameraChunks += src visible++ seenby += eye @@ -32,10 +33,11 @@ // Remove an AI eye from the chunk, then update if changed. -/datum/camerachunk/proc/remove(mob/camera/aiEye/eye) - var/client/client = eye.GetViewerClient() - if(client) - client.images -= obscured +/datum/camerachunk/proc/remove(mob/camera/aiEye/eye, remove_images = TRUE) + if(remove_images) + var/client/client = eye.GetViewerClient() + if(client) + client.images -= obscured eye.visibleCameraChunks -= src seenby -= eye if(visible > 0) diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index b5b1bd082b..469639d58f 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -11,6 +11,7 @@ var/mob/living/silicon/ai/ai = null var/relay_speech = FALSE var/use_static = TRUE + var/static_visibility_range = 16 // Use this when setting the aiEye's location. // It will also stream the chunk that the new loc is in. @@ -25,8 +26,8 @@ else moveToNullspace() // ???? if(use_static) - GLOB.cameranet.visibility(src) - if(ai.client) + ai.camera_visibility(src) + if(ai.client && !ai.multicam_on) ai.client.eye = src update_parallax_contents() //Holopad @@ -35,6 +36,8 @@ H.move_hologram(ai, T) if(ai.camera_light_on) ai.light_cameras() + if(ai.master_multicam) + ai.master_multicam.refresh_view() /mob/camera/aiEye/Move() return 0 @@ -45,20 +48,27 @@ return null /mob/camera/aiEye/proc/RemoveImages() - if(use_static) - for(var/datum/camerachunk/chunk in visibleCameraChunks) - chunk.remove(src) + var/client/C = GetViewerClient() + if(C && use_static) + for(var/V in visibleCameraChunks) + var/datum/camerachunk/c = V + C.images -= c.obscured /mob/camera/aiEye/Destroy() - ai = null + if(ai) + ai.all_eyes -= src + ai = null + for(var/V in visibleCameraChunks) + var/datum/camerachunk/c = V + c.remove(src) return ..() /atom/proc/move_camera_by_click() if(isAI(usr)) var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && AI.client.eye == AI.eyeobj) + if(AI.eyeobj && (AI.multicam_on || (AI.client.eye == AI.eyeobj)) && (AI.eyeobj.z == z)) AI.cameraFollow = null - if (isturf(src.loc) || isturf(src)) + if (isturf(loc) || isturf(src)) AI.eyeobj.setLoc(src) // This will move the AIEye. It will also cause lights near the eye to light up, if toggled. @@ -95,12 +105,19 @@ if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) to_chat(src, "ERROR: Eyeobj not found. Creating new eye...") - eyeobj = new(loc) - eyeobj.ai = src - eyeobj.name = "[src.name] (AI Eye)" // Give it a name + create_eye() eyeobj.setLoc(loc) +/mob/living/silicon/ai/proc/create_eye() + if(eyeobj) + return + eyeobj = new /mob/camera/aiEye() + all_eyes += eyeobj + eyeobj.ai = src + eyeobj.setLoc(loc) + eyeobj.name = "[name] (AI Eye)" + /mob/living/silicon/ai/verb/toggle_acceleration() set category = "AI Commands" set name = "Toggle Camera Acceleration" diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index a060c899d9..0fd33110b6 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -96,6 +96,7 @@ /mob/living/silicon/ai/proc/start_RestorePowerRoutine() to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.") + end_multicam() sleep(50) var/turf/T = get_turf(src) var/area/AIarea = get_area(src) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index c771f60aa2..2dc9a1fb1c 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -4,4 +4,6 @@ for(var/obj/machinery/ai_status_display/O in GLOB.ai_status_displays) //change status O.mode = 1 O.emotion = "Neutral" + if(multicam_on) + end_multicam() view_core() diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm new file mode 100644 index 0000000000..b6f3724fcf --- /dev/null +++ b/code/modules/mob/living/silicon/ai/multicam.dm @@ -0,0 +1,266 @@ +//Picture in picture + +/obj/screen/movable/pic_in_pic/ai + var/mob/living/silicon/ai/ai + var/mutable_appearance/highlighted_background + var/highlighted = FALSE + var/mob/camera/aiEye/pic_in_pic/aiEye + +/obj/screen/movable/pic_in_pic/ai/Initialize() + . = ..() + aiEye = new /mob/camera/aiEye/pic_in_pic() + aiEye.screen = src + +/obj/screen/movable/pic_in_pic/ai/Destroy() + set_ai(null) + QDEL_NULL(aiEye) + return ..() + +/obj/screen/movable/pic_in_pic/ai/Click() + ..() + if(ai) + ai.select_main_multicam_window(src) + +/obj/screen/movable/pic_in_pic/ai/make_backgrounds() + ..() + highlighted_background = new /mutable_appearance() + highlighted_background.icon = 'icons/misc/pic_in_pic.dmi' + highlighted_background.icon_state = "background_highlight" + highlighted_background.layer = SPACE_LAYER + +/obj/screen/movable/pic_in_pic/ai/add_background() + if((width > 0) && (height > 0)) + var/matrix/M = matrix() + M.Scale(width + 0.5, height + 0.5) + M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) + highlighted_background.transform = M + standard_background.transform = M + add_overlay(highlighted ? highlighted_background : standard_background) + +/obj/screen/movable/pic_in_pic/ai/set_view_size(width, height, do_refresh = TRUE) + aiEye.static_visibility_range = (round(max(width, height) / 2) + 1) + if(ai) + ai.camera_visibility(aiEye) + ..() + +/obj/screen/movable/pic_in_pic/ai/set_view_center(atom/target, do_refresh = TRUE) + ..() + aiEye.setLoc(get_turf(target)) + +/obj/screen/movable/pic_in_pic/ai/refresh_view() + ..() + aiEye.setLoc(get_turf(center)) + +/obj/screen/movable/pic_in_pic/ai/proc/highlight() + if(highlighted) + return + highlighted = TRUE + cut_overlay(standard_background) + add_overlay(highlighted_background) + +/obj/screen/movable/pic_in_pic/ai/proc/unhighlight() + if(!highlighted) + return + highlighted = FALSE + cut_overlay(highlighted_background) + add_overlay(standard_background) + +/obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai) + if(ai) + ai.multicam_screens -= src + ai.all_eyes -= aiEye + if(ai.master_multicam == src) + ai.master_multicam = null + if(ai.multicam_on) + unshow_to(ai.client) + ai = new_ai + if(new_ai) + new_ai.multicam_screens += src + ai.all_eyes += aiEye + if(new_ai.multicam_on) + show_to(new_ai.client) + +//Turf, area, and landmark for the viewing room + +/turf/open/ai_visible + name = "" + icon = 'icons/misc/pic_in_pic.dmi' + icon_state = "room_background" + flags_1 = NOJAUNT_1 + +/turf/open/ai_visible/Initialize() + . = ..() + obscured = image(null, src, null) + +/area/ai_multicam_room + name = "ai_multicam_room" + icon_state = "ai_camera_room" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + valid_territory = FALSE + ambientsounds = list() + blob_allowed = FALSE + noteleport = TRUE + hidden = TRUE + safe = TRUE + +GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) + +/obj/effect/landmark/ai_multicam_room + name = "ai camera room" + icon = 'icons/mob/landmarks.dmi' + icon_state = "x" + +/obj/effect/landmark/ai_multicam_room/Initialize() + . = ..() + qdel(GLOB.ai_camera_room_landmark) + GLOB.ai_camera_room_landmark = src + +/obj/effect/landmark/ai_multicam_room/Destroy() + if(GLOB.ai_camera_room_landmark == src) + GLOB.ai_camera_room_landmark = null + return ..() + +//Dummy camera eyes + +/mob/camera/aiEye/pic_in_pic + name = "Secondary AI Eye" + var/obj/screen/movable/pic_in_pic/ai/screen + var/list/cameras_telegraphed = list() + var/telegraph_cameras = TRUE + var/telegraph_range = 7 + +/mob/camera/aiEye/pic_in_pic/GetViewerClient() + if(screen && screen.ai) + return screen.ai.client + +/mob/camera/aiEye/pic_in_pic/setLoc(turf/T) + if (T) + forceMove(T) + else + moveToNullspace() + if(screen && screen.ai) + screen.ai.camera_visibility(src) + else + GLOB.cameranet.visibility(src) + update_camera_telegraphing() + +/mob/camera/aiEye/pic_in_pic/proc/update_camera_telegraphing() + if(!telegraph_cameras) + return + var/list/obj/machinery/camera/add = list() + var/list/obj/machinery/camera/remove = list() + var/list/obj/machinery/camera/visible = list() + for (var/VV in visibleCameraChunks) + var/datum/camerachunk/CC = VV + for (var/V in CC.cameras) + var/obj/machinery/camera/C = V + if (!C.can_use() || (get_dist(C, src) > telegraph_range)) + continue + visible |= C + + add = visible - cameras_telegraphed + remove = cameras_telegraphed - visible + + for (var/V in remove) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + cameras_telegraphed -= C + C.in_use_lights-- + C.update_icon() + for (var/V in add) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + cameras_telegraphed |= C + C.in_use_lights++ + C.update_icon() + +/mob/camera/aiEye/pic_in_pic/proc/disable_camera_telegraphing() + telegraph_cameras = FALSE + for (var/V in cameras_telegraphed) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + C.in_use_lights-- + C.update_icon() + cameras_telegraphed.Cut() + +/mob/camera/aiEye/pic_in_pic/Destroy() + disable_camera_telegraphing() + return ..() + +//AI procs + +/mob/living/silicon/ai/proc/drop_new_multicam(silent = FALSE) + if(!multicam_allowed) + if(!silent) + to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") + return + if(!eyeobj) + return + if(multicam_screens.len >= max_multicams) + if(!silent) + to_chat(src, "Cannot place more than [max_multicams] multicamera windows.") + return + var/obj/screen/movable/pic_in_pic/ai/C = new /obj/screen/movable/pic_in_pic/ai() + C.set_view_size(3, 3, FALSE) + C.set_view_center(get_turf(eyeobj)) + C.set_ai(src) + if(!silent) + to_chat(src, "Added new multicamera window.") + return C + +/mob/living/silicon/ai/proc/toggle_multicam() + if(!multicam_allowed) + to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") + return + if(multicam_on) + end_multicam() + else + start_multicam() + +/mob/living/silicon/ai/proc/start_multicam() + if(multicam_on || aiRestorePowerRoutine || !isturf(loc)) + return + if(!GLOB.ai_camera_room_landmark) + to_chat(src, "This function is not available at this time.") + return + multicam_on = TRUE + refresh_multicam() + to_chat(src, "Multiple-camera viewing mode activated.") + +/mob/living/silicon/ai/proc/refresh_multicam() + reset_perspective(GLOB.ai_camera_room_landmark) + if(client) + for(var/V in multicam_screens) + var/obj/screen/movable/pic_in_pic/P = V + P.show_to(client) + +/mob/living/silicon/ai/proc/end_multicam() + if(!multicam_on) + return + multicam_on = FALSE + select_main_multicam_window(null) + if(client) + for(var/V in multicam_screens) + var/obj/screen/movable/pic_in_pic/P = V + P.unshow_to(client) + reset_perspective() + to_chat(src, "Multiple-camera viewing mode deactivated.") + + +/mob/living/silicon/ai/proc/select_main_multicam_window(obj/screen/movable/pic_in_pic/ai/P) + if(master_multicam == P) + return + + if(master_multicam) + master_multicam.set_view_center(get_turf(eyeobj), FALSE) + master_multicam.unhighlight() + master_multicam = null + + if(P) + P.highlight() + eyeobj.setLoc(get_turf(P.center)) + P.set_view_center(eyeobj) + master_multicam = P diff --git a/icons/misc/pic_in_pic.dmi b/icons/misc/pic_in_pic.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9c550f3c25ecdf6817afd63dc0843875e245dfaa GIT binary patch literal 3370 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 E2DHmSY5)KL literal 0 HcmV?d00001 diff --git a/icons/mob/screen_ai.dmi b/icons/mob/screen_ai.dmi index a449cad90645421b1dd90f63cfa4efe0bda8fd28..8388ea3f806c07006c698401c977fe138e692670 100644 GIT binary patch delta 2446 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 diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 4e78e0444b5710ed8f676b98cf9616f3ea44fa88..1fadd875d70efa82332cb354b720d3c3f0c1eb6d 100644 GIT binary patch delta 6902 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 Qi3@b*wEb_mld!x01q!+I&;S4c delta 6620 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 U{-<|3sDqq8bNMv!r1QQ11Da`5Hvj+t diff --git a/tgstation.dme b/tgstation.dme index 909f5fdd99..e0a84f22a5 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -181,6 +181,7 @@ #include "code\_onclick\hud\monkey.dm" #include "code\_onclick\hud\movable_screen_objects.dm" #include "code\_onclick\hud\parallax.dm" +#include "code\_onclick\hud\picture_in_picture.dm" #include "code\_onclick\hud\plane_master.dm" #include "code\_onclick\hud\revenanthud.dm" #include "code\_onclick\hud\robot.dm" @@ -1949,6 +1950,7 @@ #include "code\modules\mob\living\silicon\ai\life.dm" #include "code\modules\mob\living\silicon\ai\login.dm" #include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" #include "code\modules\mob\living\silicon\ai\say.dm" #include "code\modules\mob\living\silicon\ai\vox_sounds.dm" #include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm" From 7dd53d445e40f2ba5c314c3fe4b595e7b6b82d62 Mon Sep 17 00:00:00 2001 From: Dax Dupont Date: Fri, 1 Jun 2018 11:13:49 +0200 Subject: [PATCH 017/205] Stock parts sorter now use get_parts_rating (#38191) --- code/modules/research/stock_parts.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 4bd318de21..af004c4701 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -58,10 +58,8 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' -//Sorts stock parts inside an RPED by their rating. -//Only use /obj/item/stock_parts/ with this sort proc! -/proc/cmp_rped_sort(obj/item/stock_parts/A, obj/item/stock_parts/B) - return B.rating - A.rating +/proc/cmp_rped_sort(obj/item/A, obj/item/B) + return B.get_part_rating() - A.get_part_rating() /obj/item/stock_parts name = "stock part" From 6d56a629f725a92f6bdeb9aebfa2d1890684b428 Mon Sep 17 00:00:00 2001 From: Nich Date: Fri, 1 Jun 2018 15:12:52 +0200 Subject: [PATCH 019/205] Fix infinite soapstone uses exploit (#38195) --- code/modules/library/soapstone.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 17df503765..e51103937f 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -56,7 +56,7 @@ playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) user.visible_message("[user] starts engraving a message into [T]...", "You start engraving a message into [T]...", "You hear a chipping sound.") if(can_use() && do_after(user, tool_speed, target = T) && can_use()) //This looks messy but it's actually really clever! - if(!locate(/obj/structure/chisel_message in T)) + if(!locate(/obj/structure/chisel_message) in T) user.visible_message("[user] leaves a message for future spacemen!", "You engrave a message into [T]!", "You hear a chipping sound.") playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) var/obj/structure/chisel_message/M = new(T) From 3b6e5236bf1b27848218b8e1d383a5e8407b2e2b Mon Sep 17 00:00:00 2001 From: Nich Date: Fri, 1 Jun 2018 15:26:21 +0200 Subject: [PATCH 021/205] allows changing the rank of players in the playerpanel (#38172) * allows changing the rank of players in the playerpanel * Update permissionedit.dm * Update permissionedit.dm --- code/modules/admin/admin.dm | 2 +- code/modules/admin/permissionedit.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index a37e7217af..d67bbfd6c5 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -29,7 +29,7 @@ body += "Options panel for [M]" if(M.client) body += " played by [M.client] " - body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" + body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" if(CONFIG_GET(flag/use_exp_tracking)) body += "\[" + M.client.get_exp_living() + "\]" diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm index e237a18f6a..c1fcf0ce82 100644 --- a/code/modules/admin/permissionedit.dm +++ b/code/modules/admin/permissionedit.dm @@ -165,7 +165,7 @@ return switch(task) if("add") - admin_ckey = add_admin(null, use_db) + admin_ckey = add_admin(admin_ckey, use_db) if(!admin_ckey) return change_admin_rank(admin_ckey, use_db) From 34f59b7a485ef50708491a1bdd0c5c51a1759c61 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Fri, 1 Jun 2018 10:48:12 -0400 Subject: [PATCH 023/205] Merge pull request #38179 from AutomaticFrenzy/patch/pubby-aux Fix Pubby auxiliary mining base --- _maps/map_files/PubbyStation/PubbyStation.dmm | 5 +- _maps/shuttles/aux_base_small.dmm | 150 ++++++++++++++++++ code/modules/shuttle/manipulator.dm | 2 +- 3 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 _maps/shuttles/aux_base_small.dmm diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 27a5b55895..5ba785bd6a 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -47905,7 +47905,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -52354,7 +52353,7 @@ width = 9 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "rKr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -53135,7 +53134,7 @@ /area/construction/mining/aux_base) "uoS" = ( /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "uqJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, diff --git a/_maps/shuttles/aux_base_small.dmm b/_maps/shuttles/aux_base_small.dmm new file mode 100644 index 0000000000..95f54f8b96 --- /dev/null +++ b/_maps/shuttles/aux_base_small.dmm @@ -0,0 +1,150 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"b" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"c" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"d" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"e" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"f" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"g" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"h" = ( +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; + dir = 1 + }, +/obj/structure/mining_shuttle_beacon, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"i" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"j" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + width = 9; + timid = 1 + }, +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/auxillary_base, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"k" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"l" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"m" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"n" = ( +/obj/structure/closet/secure_closet/miner/unlocked, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) + +(1,1,1) = {" +b +e +e +e +e +e +l +"} +(2,1,1) = {" +c +f +f +f +f +f +m +"} +(3,1,1) = {" +c +f +f +i +f +f +m +"} +(4,1,1) = {" +c +f +h +j +f +f +m +"} +(5,1,1) = {" +c +f +f +k +f +f +m +"} +(6,1,1) = {" +c +f +f +f +f +f +m +"} +(7,1,1) = {" +d +g +g +g +g +g +n +"} diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 1d8732cda9..68bf539e6a 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -279,7 +279,7 @@ if(istype(P, /obj/docking_port/stationary)) log_world("Map warning: Shuttle Template [S.mappath] has a stationary docking port.") if(!found) - var/msg = "load_template(): Shuttle Template [S.mappath] has no mobile docking port. Aborting import." + var/msg = "load_template(): Shuttle Template [S.mappath] has no mobile docking port. Aborting import." for(var/T in affected) var/turf/T0 = T T0.empty() From 876e8ec713369c2f2addd0d6b537aa5dbf47c5bd Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Fri, 1 Jun 2018 10:50:47 -0400 Subject: [PATCH 025/205] Merge pull request #38185 from AutomaticFrenzy/patch/cult-floors Set cult floor effects to be on the floor plane --- code/game/objects/effects/temporary_visuals/cult.dm | 1 + .../modules/antagonists/clockcult/clock_effects/clock_overlay.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/game/objects/effects/temporary_visuals/cult.dm b/code/game/objects/effects/temporary_visuals/cult.dm index 3a17494871..0f9d7321af 100644 --- a/code/game/objects/effects/temporary_visuals/cult.dm +++ b/code/game/objects/effects/temporary_visuals/cult.dm @@ -47,6 +47,7 @@ /obj/effect/temp_visual/cult/turf/floor icon_state = "floorglow" duration = 5 + plane = FLOOR_PLANE /obj/effect/temp_visual/cult/portal icon_state = "space" diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm b/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm index f3de8d04a8..34a986aa97 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_overlay.dm @@ -44,6 +44,7 @@ icon = 'icons/turf/floors.dmi' icon_state = "clockwork_floor" layer = TURF_LAYER + plane = FLOOR_PLANE /obj/effect/clockwork/overlay/floor/bloodcult //this is used by BLOOD CULT, it shouldn't use such a path... icon_state = "cult" \ No newline at end of file From f2124aa3cfbddfc78338e86ca770a9e1277668b2 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Fri, 1 Jun 2018 10:49:57 -0400 Subject: [PATCH 027/205] Merge pull request #38180 from AutomaticFrenzy/patch/heirloom-clone Fix family heirloom being lost on cloning --- code/datums/traits/_quirk.dm | 3 +++ code/datums/traits/negative.dm | 4 ++++ code/game/machinery/cloning.dm | 3 ++- code/game/machinery/computer/cloning.dm | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index d85f79f84a..963afacec3 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -55,6 +55,9 @@ /datum/quirk/proc/post_add() //for text, disclaimers etc. given after you spawn in with the trait /datum/quirk/proc/on_transfer() //code called when the trait is transferred to a new mob +/datum/quirk/proc/clone_data() //return additional data that should be remembered by cloning +/datum/quirk/proc/on_clone(data) //create the quirk from clone data + /datum/quirk/process() if(QDELETED(quirk_holder)) quirk_holder = null diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index b6dd926773..68e259441f 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -85,7 +85,11 @@ quirk_holder.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "family_heirloom") quirk_holder.SendSignal(COMSIG_ADD_MOOD_EVENT, "family_heirloom_missing", /datum/mood_event/family_heirloom_missing) +/datum/quirk/family_heirloom/clone_data() + return heirloom +/datum/quirk/family_heirloom/on_clone(data) + heirloom = data /datum/quirk/heavy_sleeper name = "Heavy Sleeper" diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index d1f4a4be86..24bb03cdf6 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -204,7 +204,8 @@ H.faction |= factions for(var/V in quirks) - new V(H) + var/datum/quirk/Q = new V(H) + Q.on_clone(quirks[V]) H.set_cloned_appearance() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 95b4ea9f80..71c62327e6 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -476,7 +476,7 @@ R.fields["quirks"] = list() for(var/V in mob_occupant.roundstart_quirks) var/datum/quirk/T = V - R.fields["quirks"] += T.type + R.fields["quirks"][T.type] = T.clone_data() if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning. R.fields["mind"] = "[REF(mob_occupant.mind)]" From 948a128a72cf7da504d3925a0607896bd9133462 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Fri, 1 Jun 2018 10:51:46 -0400 Subject: [PATCH 029/205] Merge pull request #38198 from AutomaticFrenzy/patch/chasm-beams Blacklist projectile effects from chasms --- code/datums/components/chasm.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 88360194b3..1f3a846c61 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -11,6 +11,7 @@ /obj/structure/lattice, /obj/structure/stone_tile, /obj/item/projectile, + /obj/effect/projectile, /obj/effect/portal, /obj/effect/abstract, /obj/effect/hotspot, From a3a0a49b5d1dac483e7bf997ba510c7648883d24 Mon Sep 17 00:00:00 2001 From: JStheguy Date: Fri, 1 Jun 2018 09:53:16 -0500 Subject: [PATCH 031/205] Marginal Sprite Improvements Part 2: Cigarette Lighter Boogaloo (#38161) * the rainbow of mediocrity rides again * whoops that wasn't supposed to be there * updated vending machine, burger, and donut sprites they've all been improved marginally * edits roborger a bit more "bun" is flatter, has an antenna that blinks in agony * does sprite things to lighters and cigar cases * darkened cigar case interiors * tweaks lighter flames --- code/game/objects/items/cigs_lighters.dm | 61 +++++++++++++++++++---- code/game/objects/items/storage/fancy.dm | 8 +-- icons/obj/cigarettes.dmi | Bin 8610 -> 11615 bytes 3 files changed, 55 insertions(+), 14 deletions(-) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index ed8db43bfa..9b10df57fa 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -492,11 +492,24 @@ CIGARETTE PACKETS ARE IN FANCY.DM slot_flags = ITEM_SLOT_BELT var/lit = 0 var/fancy = TRUE + var/overlay_state + var/overlay_list = list( + "plain", + "dame", + "thirteen", + "snake" + ) heat = 1500 resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE grind_results = list("iron" = 1, "welding_fuel" = 5, "oil" = 5) +/obj/item/lighter/Initialize() + . = ..() + if(!overlay_state) + overlay_state = pick(overlay_list) + update_icon() + /obj/item/lighter/suicide_act(mob/living/carbon/user) if (lit) user.visible_message("[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!") @@ -507,10 +520,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM return BRUTELOSS /obj/item/lighter/update_icon() - if(lit) - icon_state = "[initial(icon_state)]_on" - else - icon_state = "[initial(icon_state)]" + cut_overlays() + var/mutable_appearance/lighter_overlay = mutable_appearance(icon,"lighter_overlay_[overlay_state][lit ? "-on" : ""]") + icon_state = "[initial(icon_state)][lit ? "-on" : ""]" + add_overlay(lighter_overlay) /obj/item/lighter/ignition_effect(atom/A, mob/user) if(is_hot()) @@ -597,19 +610,44 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A cheap-as-free lighter." icon_state = "lighter" fancy = FALSE + overlay_list = list( + "transp", + "tall", + "matte", + "zoppo" //u cant stoppo th zoppo + ) + var/lighter_color + var/list/color_list = list( //Same 16 color selection as electronic assemblies + COLOR_ASSEMBLY_BLACK, + COLOR_FLOORTILE_GRAY, + COLOR_ASSEMBLY_BGRAY, + COLOR_ASSEMBLY_WHITE, + COLOR_ASSEMBLY_RED, + COLOR_ASSEMBLY_ORANGE, + COLOR_ASSEMBLY_BEIGE, + COLOR_ASSEMBLY_BROWN, + COLOR_ASSEMBLY_GOLD, + COLOR_ASSEMBLY_YELLOW, + COLOR_ASSEMBLY_GURKHA, + COLOR_ASSEMBLY_LGREEN, + COLOR_ASSEMBLY_GREEN, + COLOR_ASSEMBLY_LBLUE, + COLOR_ASSEMBLY_BLUE, + COLOR_ASSEMBLY_PURPLE + ) /obj/item/lighter/greyscale/Initialize() . = ..() - add_atom_colour(color2hex(randomColor(1)), FIXED_COLOUR_PRIORITY) + if(!lighter_color) + lighter_color = pick(color_list) update_icon() /obj/item/lighter/greyscale/update_icon() cut_overlays() - var/mutable_appearance/base_overlay = mutable_appearance(icon,"[initial(icon_state)]_base") - base_overlay.appearance_flags = RESET_COLOR //the edging doesn't change color - if(lit) - base_overlay.icon_state = "[initial(icon_state)]_on" - add_overlay(base_overlay) + var/mutable_appearance/lighter_overlay = mutable_appearance(icon,"lighter_overlay_[overlay_state][lit ? "-on" : ""]") + icon_state = "[initial(icon_state)][lit ? "-on" : ""]" + lighter_overlay.color = lighter_color + add_overlay(lighter_overlay) /obj/item/lighter/greyscale/ignition_effect(atom/A, mob/user) if(is_hot()) @@ -619,9 +657,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/lighter/slime name = "slime zippo" desc = "A specialty zippo made from slimes and industry. Has a much hotter flame than normal." - icon_state = "slimezippo" + icon_state = "slighter" heat = 3000 //Blue flame! light_color = LIGHT_COLOR_CYAN + overlay_state = "slime" grind_results = list("iron" = 1, "welding_fuel" = 5, "pyroxadone" = 5) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index f86188984f..aaee6f65ab 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -293,22 +293,24 @@ /obj/item/storage/fancy/cigarettes/cigars/update_icon() cut_overlays() if(fancy_open) - add_overlay("[icon_state]_open") + icon_state = "[initial(icon_state)]_open" var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type) for(var/c = contents.len, c >= 1, c--) - cigar_overlay.pixel_x = 4 * (c - 1) + cigar_overlay.pixel_x = 3 * (c - 1) add_overlay(cigar_overlay) else - icon_state = "cigarcase" + icon_state = "[initial(icon_state)]" /obj/item/storage/fancy/cigarettes/cigars/cohiba name = "\improper cohiba robusto cigar case" desc = "A case of imported Cohiba cigars, renowned for their strong flavor." + icon_state = "cohibacase" spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba /obj/item/storage/fancy/cigarettes/cigars/havana name = "\improper premium havanian cigar case" desc = "A case of classy Havanian cigars." + icon_state = "cohibacase" spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana /* diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 4de653d652bdf4fc14ee041bcb825e3d779d7692..84979e438746455b3d2f49a2dba9d73ed21934ee 100644 GIT binary patch literal 11615 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 Mt2|b&P_zpF7xAe?xBvhE literal 8610 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 Date: Fri, 1 Jun 2018 10:58:41 -0400 Subject: [PATCH 033/205] Merge pull request #38210 from AutomaticFrenzy/patch/by-vomit-combined Fix reagents being lost when vomit piles combine --- code/game/atoms.dm | 17 ----------------- code/game/turfs/turf.dm | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 122efe5772..b679956c3f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -425,23 +425,6 @@ /atom/proc/update_remote_sight(mob/living/user) return -/atom/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) - if(isturf(src)) - var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src, M.get_static_viruses()) - // Make toxins vomit look different - if(toxvomit) - V.icon_state = "vomittox_[pick(1,4)]" - if(M.reagents) - clear_reagents_to_vomit_pool(M,V) - -/atom/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) - M.reagents.trans_to(V, M.reagents.total_volume / 10) - for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food - if(istype(R, /datum/reagent/consumable)) - var/datum/reagent/consumable/nutri_check = R - if(nutri_check.nutriment_factor >0) - M.reagents.remove_reagent(R.id,R.volume) - //Hook for running code when a dir change occurs /atom/proc/setDir(newdir) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 00ac813a11..9cc2d67020 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -438,3 +438,22 @@ /turf/AllowDrop() return TRUE + +/turf/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) + var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src, M.get_static_viruses()) + // If the vomit combined, apply toxicity and reagents to the old vomit + if (QDELETED(V)) + V = locate() in src + // Make toxins vomit look different + if(toxvomit) + V.icon_state = "vomittox_[pick(1,4)]" + if(M.reagents) + clear_reagents_to_vomit_pool(M,V) + +/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) + M.reagents.trans_to(V, M.reagents.total_volume / 10) + for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food + if(istype(R, /datum/reagent/consumable)) + var/datum/reagent/consumable/nutri_check = R + if(nutri_check.nutriment_factor >0) + M.reagents.remove_reagent(R.id,R.volume) From 308a8f16b705735ca5a2e1c6c41268127e0ee81d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 26 May 2018 06:41:39 -0700 Subject: [PATCH 035/205] EMPs no longer pulse internal silicon wires --- code/modules/mob/living/silicon/robot/robot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 51e844915c..b2cd5788da 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -105,6 +105,7 @@ spark_system.attach(src) wires = new /datum/wires/robot(src) + AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) robot_modules_background = new() robot_modules_background.icon_state = "block" From d45724f12b404f6d9e567ae308b0efe74e5f55da Mon Sep 17 00:00:00 2001 From: theo2003 Date: Wed, 30 May 2018 20:11:24 +0300 Subject: [PATCH 037/205] Fixed the clockwork helmet so it drops to the ground when used by a non-clock cultist like the other clock armor does. --- .../antagonists/clockcult/clock_items/clockwork_armor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 32bf870886..d32eeee84b 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -50,7 +50,7 @@ user.emote("scream") user.apply_damage(30, BRUTE, BODY_ZONE_HEAD) user.adjustBrainLoss(30) - addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround), src, 1) //equipped happens before putting stuff on(but not before picking items up), 1). thus, we need to wait for it to be on before forcing it off. + addtimer(CALLBACK(user, /mob/living.proc/dropItemToGround, src, TRUE), 1) //equipped happens before putting stuff on(but not before picking items up), 1). thus, we need to wait for it to be on before forcing it off. /obj/item/clothing/head/helmet/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) if(equipper && !is_servant_of_ratvar(equipper)) From 5e15a988f610a34a3548f2f134ea06ca3322eb75 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Fri, 1 Jun 2018 12:27:38 -0400 Subject: [PATCH 039/205] Refactor machinery to default to being anchored --- code/game/machinery/Beacon.dm | 1 - code/game/machinery/PDApainter.dm | 3 +- code/game/machinery/Sleeper.dm | 2 - code/game/machinery/_machinery.dm | 1 + code/game/machinery/ai_slipper.dm | 1 - code/game/machinery/airlock_control.dm | 155 ++++++++++++++++++ code/game/machinery/announcement_system.dm | 1 - code/game/machinery/aug_manipulator.dm | 1 - code/game/machinery/autolathe.dm | 3 +- code/game/machinery/buttons.dm | 1 - code/game/machinery/camera/camera.dm | 1 - code/game/machinery/cell_charger.dm | 1 - code/game/machinery/cloning.dm | 1 - code/game/machinery/computer/_computer.dm | 1 - code/game/machinery/computer/atmos_control.dm | 1 - code/game/machinery/computer/dna_console.dm | 1 - code/game/machinery/dance_machine.dm | 1 - code/game/machinery/defibrillator_mount.dm | 1 - code/game/machinery/dish_drive.dm | 1 - code/game/machinery/dna_scanner.dm | 1 - code/game/machinery/doors/brigdoors.dm | 1 - code/game/machinery/doors/door.dm | 1 - code/game/machinery/doppler_array.dm | 1 - code/game/machinery/droneDispenser.dm | 1 - .../embedded_controller/access_controller.dm | 1 - .../embedded_controller_base.dm | 90 ++++++++++ code/game/machinery/firealarm.dm | 1 - code/game/machinery/flasher.dm | 1 - code/game/machinery/gulag_item_reclaimer.dm | 1 - code/game/machinery/gulag_teleporter.dm | 1 - code/game/machinery/hologram.dm | 1 - code/game/machinery/igniter.dm | 8 +- code/game/machinery/launch_pad.dm | 5 +- code/game/machinery/lightswitch.dm | 1 - code/game/machinery/limbgrower.dm | 1 - code/game/machinery/magnet.dm | 2 - code/game/machinery/mass_driver.dm | 1 - code/game/machinery/navbeacon.dm | 1 - code/game/machinery/newscaster.dm | 1 - code/game/machinery/pipe/pipe_dispenser.dm | 3 - .../machinery/porta_turret/portable_turret.dm | 2 - .../porta_turret/portable_turret_construct.dm | 1 + .../porta_turret/portable_turret_cover.dm | 1 - code/game/machinery/quantum_pad.dm | 1 - code/game/machinery/recharger.dm | 1 - code/game/machinery/rechargestation.dm | 1 - code/game/machinery/recycler.dm | 1 - code/game/machinery/requests_console.dm | 1 - code/game/machinery/shieldgen.dm | 1 - code/game/machinery/slotmachine.dm | 1 - code/game/machinery/status_display.dm | 2 - code/game/machinery/suit_storage_unit.dm | 1 - .../machinery/telecomms/machines/allinone.dm | 1 - .../telecomms/machines/broadcaster.dm | 1 - code/game/machinery/telecomms/machines/bus.dm | 1 - code/game/machinery/telecomms/machines/hub.dm | 1 - .../telecomms/machines/message_server.dm | 2 - .../machinery/telecomms/machines/processor.dm | 1 - .../machinery/telecomms/machines/receiver.dm | 1 - .../machinery/telecomms/machines/relay.dm | 1 - .../machinery/telecomms/machines/server.dm | 1 - code/game/machinery/teleporter.dm | 1 - code/game/machinery/transformer.dm | 1 - code/game/machinery/washing_machine.dm | 1 - code/game/machinery/wishgranter.dm | 1 - code/game/mecha/mech_bay.dm | 1 - code/game/mecha/mech_fabricator.dm | 1 - .../objects/items/implants/implantchair.dm | 1 - code/game/objects/structures/manned_turret.dm | 1 + code/game/objects/structures/watercloset.dm | 1 - code/modules/NTNet/relays.dm | 1 - code/modules/VR/vr_sleeper.dm | 7 +- .../antagonists/abductor/machinery/console.dm | 1 - .../abductor/machinery/dispenser.dm | 1 - .../abductor/machinery/experiment.dm | 1 - .../antagonists/abductor/machinery/pad.dm | 1 - .../nukeop/equipment/nuclearbomb.dm | 1 + .../traitor/equipment/Malf_Modules.dm | 1 - .../atmospherics/machinery/airalarm.dm | 1 - .../components/binary_devices/circulator.dm | 1 - .../components/unary_devices/cryo.dm | 1 - .../components/unary_devices/thermomachine.dm | 1 - .../atmospherics/machinery/other/meter.dm | 1 - .../atmospherics/machinery/other/miner.dm | 1 - .../portable/portable_atmospherics.dm | 2 +- .../awaymissions/bluespaceartillery.dm | 1 - code/modules/awaymissions/capture_the_flag.dm | 2 - code/modules/awaymissions/gateway.dm | 1 - .../awaymissions/mission_code/wildwest.dm | 1 - code/modules/events/pirates.dm | 2 - .../kitchen_machinery/deep_fryer.dm | 1 - .../kitchen_machinery/gibber.dm | 1 - .../kitchen_machinery/microwave.dm | 1 - .../kitchen_machinery/monkeyrecycler.dm | 1 - .../kitchen_machinery/processor.dm | 1 - .../kitchen_machinery/smartfridge.dm | 1 - code/modules/holodeck/items.dm | 1 - code/modules/hydroponics/biogenerator.dm | 1 - code/modules/hydroponics/gene_modder.dm | 1 - code/modules/hydroponics/hydroponics.dm | 1 - code/modules/hydroponics/seed_extractor.dm | 1 - code/modules/library/lib_machines.dm | 2 - code/modules/mining/laborcamp/laborstacker.dm | 2 - code/modules/mining/machine_processing.dm | 2 - code/modules/mining/machine_redemption.dm | 1 - code/modules/mining/machine_stacking.dm | 2 - code/modules/mining/machine_unloading.dm | 1 - code/modules/mining/machine_vending.dm | 1 - code/modules/mining/mint.dm | 1 - .../mob/living/simple_animal/bot/bot.dm | 1 + .../hostile/megafauna/colossus.dm | 1 + .../computers/machinery/modular_console.dm | 3 +- .../modular_computers/laptop_vendor.dm | 1 - code/modules/paperwork/photocopier.dm | 1 - code/modules/power/antimatter/shielding.dm | 1 - code/modules/power/apc.dm | 1 - code/modules/power/floodlight.dm | 1 - code/modules/power/generator.dm | 1 - code/modules/power/gravitygenerator.dm | 1 - code/modules/power/lighting.dm | 1 - code/modules/power/rtg.dm | 1 - .../power/singularity/containment_field.dm | 1 - code/modules/power/smes.dm | 1 - code/modules/power/solar.dm | 2 - code/modules/power/terminal.dm | 3 +- code/modules/power/tracker.dm | 1 - code/modules/power/turbine.dm | 2 - .../chemistry/machinery/chem_dispenser.dm | 3 - .../chemistry/machinery/chem_heater.dm | 1 - .../chemistry/machinery/chem_master.dm | 1 - .../reagents/chemistry/machinery/pandemic.dm | 1 - .../chemistry/machinery/reagentgrinder.dm | 1 - .../chemistry/machinery/smoke_machine.dm | 1 - code/modules/recycling/conveyor2.dm | 9 +- code/modules/recycling/disposal/bin.dm | 1 - code/modules/research/experimentor.dm | 1 - code/modules/research/rdmachines.dm | 1 - .../security_levels/keycard_authentication.dm | 1 - code/modules/shuttle/manipulator.dm | 1 - code/modules/shuttle/on_move.dm | 5 - code/modules/station_goals/shield.dm | 5 +- code/modules/vending/_vending.dm | 1 - 142 files changed, 269 insertions(+), 175 deletions(-) diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 61e862452f..3d0931d534 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -6,7 +6,6 @@ desc = "A device that draws power from bluespace and creates a permanent tracking beacon." level = 1 // underfloor layer = LOW_OBJ_LAYER - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 0 var/obj/item/beacon/Beacon diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index e38775b749..d5cf016816 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -4,10 +4,9 @@ icon = 'icons/obj/pda.dmi' icon_state = "pdapainter" density = TRUE - anchored = TRUE + max_integrity = 200 var/obj/item/pda/storedpda = null var/list/colorlist = list() - max_integrity = 200 /obj/machinery/pdapainter/update_icon() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 3b0a841a0d..83e0f8e0ba 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "console" density = FALSE - anchored = TRUE /obj/machinery/sleeper name = "sleeper" @@ -11,7 +10,6 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" density = FALSE - anchored = TRUE state_open = TRUE circuit = /obj/item/circuitboard/machine/sleeper var/efficiency = 1 diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 3d1d20dcae..7f661b4556 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -92,6 +92,7 @@ Class Procs: pressure_resistance = 15 max_integrity = 200 + anchored = TRUE interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT var/stat = 0 diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index a09db0a3cc..cac29404d2 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -5,7 +5,6 @@ icon_state = "ai-slipper0" layer = PROJECTILE_HIT_THRESHHOLD_LAYER plane = FLOOR_PLANE - anchored = TRUE max_integrity = 200 armor = list("melee" = 50, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f02b765573..dce0b408f0 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -151,4 +152,158 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) +======= +#define AIRLOCK_CONTROL_RANGE 5 + +// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) +/obj/machinery/door/airlock + var/id_tag + var/frequency + var/datum/radio_frequency/radio_connection + + +/obj/machinery/door/airlock/receive_signal(datum/signal/signal) + if(!signal) + return + + if(id_tag != signal.data["tag"] || !signal.data["command"]) + return + + switch(signal.data["command"]) + if("open") + open(1) + + if("close") + close(1) + + if("unlock") + locked = FALSE + update_icon() + + if("lock") + locked = TRUE + update_icon() + + if("secure_open") + locked = FALSE + update_icon() + + sleep(2) + open(1) + + locked = TRUE + update_icon() + + if("secure_close") + locked = FALSE + close(1) + + locked = TRUE + sleep(2) + update_icon() + + send_status() + + +/obj/machinery/door/airlock/proc/send_status() + if(radio_connection) + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "door_status" = density ? "closed" : "open", + "lock_status" = locked ? "locked" : "unlocked" + )) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + +/obj/machinery/door/airlock/open(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/close(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + if(new_frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/door/airlock/Destroy() + if(frequency) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/airlock_sensor + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_sensor_off" + name = "airlock sensor" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + power_channel = ENVIRON + + var/id_tag + var/master_tag + var/frequency = FREQ_AIRLOCK_CONTROL + + var/datum/radio_frequency/radio_connection + + var/on = TRUE + var/alert = FALSE + + +/obj/machinery/airlock_sensor/update_icon() + if(on) + if(alert) + icon_state = "airlock_sensor_alert" + else + icon_state = "airlock_sensor_standby" + else + icon_state = "airlock_sensor_off" + +/obj/machinery/airlock_sensor/attack_hand(mob/user) + . = ..() + if(.) + return + var/datum/signal/signal = new(list( + "tag" = master_tag, + "command" = "cycle" + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + flick("airlock_sensor_cycle", src) + +/obj/machinery/airlock_sensor/process() + if(on) + var/datum/gas_mixture/air_sample = return_air() + var/pressure = round(air_sample.return_pressure(),0.1) + alert = (pressure < ONE_ATMOSPHERE*0.8) + + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "pressure" = num2text(pressure) + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + update_icon() + +/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/airlock_sensor/Initialize() + . = ..() + set_frequency(frequency) + +/obj/machinery/airlock_sensor/Destroy() + SSradio.remove_object(src,frequency) +>>>>>>> 6d0179f... Merge pull request #38116 from AutomaticFrenzy/patch/anchored return ..() \ No newline at end of file diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 17ee13b634..959bcfab4d 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -2,7 +2,6 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system density = TRUE - anchored = TRUE name = "\improper Automated Announcement System" desc = "An automated announcement system that handles minor announcements over the radio." icon = 'icons/obj/machines/telecomms.dmi' diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 8445f62d97..a168cdd4d5 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/pda.dmi' icon_state = "pdapainter" density = TRUE - anchored = TRUE obj_integrity = 200 max_integrity = 200 var/obj/item/bodypart/storedpart diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d6154aeb8b..2a753fc333 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -7,13 +7,12 @@ desc = "It produces items using metal and glass." icon_state = "autolathe" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 circuit = /obj/item/circuitboard/machine/autolathe layer = BELOW_OBJ_LAYER - + var/operating = FALSE var/list/L = list() var/list/LL = list() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 9511e8d0d4..07d119176a 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -11,7 +11,6 @@ var/id = null var/initialized_button = 0 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 70) - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 3e8a0bb84d..39be8fab1c 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -21,7 +21,6 @@ var/c_tag = null var/c_tag_order = 999 var/status = TRUE - anchored = TRUE var/start_active = FALSE //If it ignores the random chance to start broken on round start var/invuln = null var/obj/item/camera_bug/bug = null diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e6816a3170..9a59d4aea5 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -3,7 +3,6 @@ desc = "It charges power cells." icon = 'icons/obj/power.dmi' icon_state = "ccharger" - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 60 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index d1f4a4be86..1419d21dbe 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -9,7 +9,6 @@ #define SPEAK(message) radio.talk_into(src, message, radio_channel, get_spans(), get_default_language()) /obj/machinery/clonepod - anchored = TRUE name = "cloning pod" desc = "An electronically-lockable pod for growing organic tissue." density = TRUE diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index cbb6806581..2a9a57e630 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/computer.dmi' icon_state = "computer" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 300 active_power_usage = 300 diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 6e4507c465..7eb8e206b5 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -6,7 +6,6 @@ name = "gas sensor" icon = 'icons/obj/stationobjs.dmi' icon_state = "gsensor1" - anchored = TRUE var/on = TRUE diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 0b90f1df14..72e17679f5 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -33,7 +33,6 @@ var/obj/machinery/dna_scannernew/connected = null var/obj/item/disk/data/diskette = null var/list/delayed_action = null - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 400 diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 750d83eecc..5fd40a401e 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -3,7 +3,6 @@ desc = "A classic music player." icon = 'icons/obj/stationobjs.dmi' icon_state = "jukebox" - anchored = TRUE verb_say = "states" density = TRUE req_access = list(ACCESS_BAR) diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index c1c755251d..1c72e79363 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/machines/defib_mount.dmi' icon_state = "defibrillator_mount" density = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 1 power_channel = EQUIP diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 2254500afe..7e960d4ebc 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -7,7 +7,6 @@ icon_state = "synthesizer" idle_power_usage = 8 //5 with default parts active_power_usage = 13 //10 with default parts - anchored = TRUE density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive var/static/list/item_types = list(/obj/item/trash/waffles, diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 2a8868cb4f..507d6c6f43 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/machines/cloning.dmi' icon_state = "scanner" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 50 active_power_usage = 300 diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 3ab819f275..3542b4e8bd 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -24,7 +24,6 @@ icon_state = "frame" desc = "A remote control for a door." req_access = list(ACCESS_SECURITY) - anchored = TRUE density = FALSE var/id = null // id of linked machinery/lockers diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 70268584d1..8b94648ec9 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -3,7 +3,6 @@ desc = "It opens and closes." icon = 'icons/obj/doors/Doorint.dmi' icon_state = "door1" - anchored = TRUE opacity = 1 density = TRUE layer = OPEN_DOOR_LAYER diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 0abc3e8cea..1131c55eb3 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -6,7 +6,6 @@ GLOBAL_LIST_EMPTY(doppler_arrays) icon = 'icons/obj/machines/research.dmi' icon_state = "tdoppler" density = TRUE - anchored = TRUE var/integrated = FALSE var/max_dist = 150 verb_say = "states coldly" diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index ffed5c7661..ffe7961534 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -8,7 +8,6 @@ icon = 'icons/obj/machines/droneDispenser.dmi' icon_state = "on" - anchored = TRUE density = TRUE max_integrity = 250 diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 63b7f2caeb..70ce3d36ae 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -6,7 +6,6 @@ /obj/machinery/doorButtons power_channel = ENVIRON - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 4 diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 39cf149850..d17d07aa93 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /datum/computer/file/embedded_program var/list/memory = list() var/state @@ -86,3 +87,92 @@ SSradio.remove_object(src, frequency) frequency = new_frequency radio_connection = SSradio.add_object(src, frequency) +======= +/datum/computer/file/embedded_program + var/list/memory = list() + var/state + var/obj/machinery/embedded_controller/master + +/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) + if(master) + master.post_signal(signal, comm_line) + else + qdel(signal) + +/datum/computer/file/embedded_program/proc/receive_user_command(command) + +/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal) + return null + +/datum/computer/file/embedded_program/process() + return 0 + +/obj/machinery/embedded_controller + var/datum/computer/file/embedded_program/program + + name = "embedded controller" + density = FALSE + + var/on = TRUE + +/obj/machinery/embedded_controller/ui_interact(mob/user) + . = ..() + user.set_machine(src) + var/datum/browser/popup = new(user, "computer", name) // Set up the popup browser window + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_content(return_text()) + popup.open() + +/obj/machinery/embedded_controller/update_icon() + +/obj/machinery/embedded_controller/proc/return_text() + +/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line) + return 0 + +/obj/machinery/embedded_controller/receive_signal(datum/signal/signal) + if(istype(signal) && program) + program.receive_signal(signal) + +/obj/machinery/embedded_controller/Topic(href, href_list) + if(..()) + return 0 + + if(program) + program.receive_user_command(href_list["command"]) + addtimer(CALLBACK(program, /datum/computer/file/embedded_program.proc/process), 5) + + usr.set_machine(src) + addtimer(CALLBACK(src, .proc/updateDialog), 5) + +/obj/machinery/embedded_controller/process() + if(program) + program.process() + + update_icon() + src.updateDialog() + +/obj/machinery/embedded_controller/radio + var/frequency + var/datum/radio_frequency/radio_connection + +/obj/machinery/embedded_controller/radio/Destroy() + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/embedded_controller/radio/Initialize() + . = ..() + set_frequency(frequency) + +/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal) + signal.transmission_method = TRANSMISSION_RADIO + if(radio_connection) + return radio_connection.post_signal(src, signal) + else + signal = null + +/obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency) +>>>>>>> 6d0179f... Merge pull request #38116 from AutomaticFrenzy/patch/anchored diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index b2e1ad7e5b..973f96b09d 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -16,7 +16,6 @@ desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." icon = 'icons/obj/monitors.dmi' icon_state = "fire0" - anchored = TRUE max_integrity = 250 integrity_failure = 100 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 701c637a56..56c9544a1a 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -7,7 +7,6 @@ icon_state = "mflash1" max_integrity = 250 integrity_failure = 100 - anchored = TRUE var/obj/item/assembly/flash/handheld/bulb var/id = null var/range = 2 //this is roughly the size of brig cell diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm index 628071bd21..c955edbcd0 100644 --- a/code/game/machinery/gulag_item_reclaimer.dm +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -5,7 +5,6 @@ icon_state = "dorm_taken" req_access = list(ACCESS_SECURITY) //REQACCESS TO ACCESS ALL STORED ITEMS density = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 100 active_power_usage = 2500 diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm index 08db7b41e2..4e993cf8c8 100644 --- a/code/game/machinery/gulag_teleporter.dm +++ b/code/game/machinery/gulag_teleporter.dm @@ -13,7 +13,6 @@ The console is located at computer/gulag_teleporter.dm icon_state = "implantchair" state_open = FALSE density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 200 active_power_usage = 5000 diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 61ee4eb178..887335f16a 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -34,7 +34,6 @@ Possible to do for anyone motivated enough: layer = LOW_OBJ_LAYER plane = FLOOR_PLANE flags_1 = HEAR_1 - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index d5bb8db0e3..041161e1fa 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -4,15 +4,14 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "igniter0" plane = FLOOR_PLANE - var/id = null - var/on = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 4 max_integrity = 300 armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF + var/id = null + var/on = FALSE /obj/machinery/igniter/on on = TRUE @@ -52,13 +51,12 @@ desc = "A wall-mounted ignition device." icon = 'icons/obj/stationobjs.dmi' icon_state = "migniter" + resistance_flags = FIRE_PROOF var/id = null var/disable = 0 var/last_spark = 0 var/base_state = "migniter" var/datum/effect_system/spark_spread/spark_system - anchored = TRUE - resistance_flags = FIRE_PROOF /obj/machinery/sparker/Initialize() . = ..() diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 95bf10bc6c..54bf0cf36e 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -3,12 +3,11 @@ desc = "A bluespace pad able to thrust matter through bluespace, teleporting it to or from nearby locations." icon = 'icons/obj/telescience.dmi' icon_state = "lpad-idle" - var/icon_teleport = "lpad-beam" - anchored = TRUE use_power = TRUE idle_power_usage = 200 active_power_usage = 2500 circuit = /obj/item/circuitboard/machine/launchpad + var/icon_teleport = "lpad-beam" var/stationary = TRUE //to prevent briefcase pad deconstruction and such var/display_name = "Launchpad" var/teleport_speed = 35 @@ -53,7 +52,7 @@ if(teleporting) to_chat(user, "ERROR: Launchpad busy.") return - + var/turf/dest = get_turf(src) if(dest && is_centcom_level(dest.z)) diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index 8c0e65fa82..cbb9b4f253 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -5,7 +5,6 @@ name = "light switch" icon = 'icons/obj/power.dmi' icon_state = "light1" - anchored = TRUE desc = "Make dark." var/on = TRUE var/area/area = null diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 8347e5f548..8a0658fd0f 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -11,7 +11,6 @@ icon_state = "limbgrower_idleoff" density = TRUE container_type = OPENCONTAINER - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 03455d5dd5..094db5a676 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -11,7 +11,6 @@ desc = "A device that uses station power to create points of magnetic energy." level = 1 // underfloor layer = LOW_OBJ_LAYER - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 50 @@ -195,7 +194,6 @@ icon = 'icons/obj/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! icon_state = "airlock_control_standby" density = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 45 var/frequency = FREQ_MAGNETS diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index c3162d640d..7ebed0ab0c 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -3,7 +3,6 @@ desc = "The finest in spring-loaded piston toy technology, now on a space station near you." icon = 'icons/obj/stationobjs.dmi' icon_state = "mass_driver" - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 50 diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index 1426625c92..139769e269 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -9,7 +9,6 @@ desc = "A radio beacon used for bot navigation." level = 1 // underfloor layer = LOW_OBJ_LAYER - anchored = TRUE max_integrity = 500 armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 70, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index e2b06b333c..f9dbcc85d5 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -202,7 +202,6 @@ GLOBAL_LIST_EMPTY(allCasters) var/c_locked=0 var/datum/newscaster/feed_channel/viewing_channel = null var/allow_comments = 1 - anchored = TRUE /obj/machinery/newscaster/security_unit name = "security newscaster" diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 555f4eee1b..11d9ee8df5 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -4,7 +4,6 @@ icon_state = "pipe_d" desc = "Dispenses countless types of pipes. Very useful if you need pipes." density = TRUE - anchored = TRUE interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_OFFLINE var/wait = 0 var/piping_layer = PIPING_LAYER_DEFAULT @@ -80,7 +79,6 @@ icon_state = "pipe_d" desc = "Dispenses pipes that will ultimately be used to move trash around." density = TRUE - anchored = TRUE //Allow you to drag-drop disposal pipes and transit tubes into it @@ -147,7 +145,6 @@ icon_state = "pipe_d" density = TRUE desc = "Dispenses pipes that will move beings around." - anchored = TRUE /obj/machinery/pipedispenser/disposal/transit_tube/interact(mob/user) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 399ea38754..2bd20ce667 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -8,7 +8,6 @@ name = "turret" icon = 'icons/obj/turrets.dmi' icon_state = "turretCover" - anchored = TRUE layer = OBJ_LAYER invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover density = TRUE @@ -754,7 +753,6 @@ desc = "Used to control a room's automated defenses." icon = 'icons/obj/machines/turret_control.dmi' icon_state = "control_standby" - anchored = TRUE density = FALSE var/enabled = 1 var/lethal = 0 diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 4bc5db4d5e..db3a1fad60 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -13,6 +13,7 @@ icon = 'icons/obj/turrets.dmi' icon_state = "turret_frame" desc = "An unfinished covered turret frame." + anchored = FALSE density = TRUE var/build_step = PTURRET_UNSECURED //the current step in the building process var/finish_name = "turret" //the name applied to the product turret diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index 8abb5c3fb7..74acdd41e8 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -7,7 +7,6 @@ name = "turret" icon = 'icons/obj/turrets.dmi' icon_state = "turretCover" - anchored = TRUE layer = HIGH_OBJ_LAYER density = FALSE max_integrity = 80 diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index 7236e683a5..8962ab60a5 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -3,7 +3,6 @@ desc = "A bluespace quantum-linked telepad used for teleporting objects to other quantum pads." icon = 'icons/obj/telescience.dmi' icon_state = "qpad-idle" - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 200 active_power_usage = 5000 diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index ece35564bf..1cc5d7c835 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "recharger0" desc = "A charging dock for energy based weaponry." - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 4 active_power_usage = 250 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 8cdae470cf..4ed541ef10 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/objects.dmi' icon_state = "borgcharger0" density = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 1000 diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 08fcb1baa8..002f0b089a 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/recycling.dmi' icon_state = "grinder-o0" layer = ABOVE_ALL_MOB_LAYER // Overhead - anchored = TRUE density = TRUE circuit = /obj/item/circuitboard/machine/recycler var/safety_mode = FALSE // Temporarily stops machine if it detects a mob diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 36793900bf..e3daa1814f 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -14,7 +14,6 @@ GLOBAL_LIST_EMPTY(allConsoles) /obj/machinery/requests_console name = "requests console" desc = "A console intended to send requests to different departments on the station." - anchored = TRUE icon = 'icons/obj/terminals.dmi' icon_state = "req_comp0" var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 302d1352e7..4447c9d00b 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -406,7 +406,6 @@ desc = "An energy shield." icon = 'icons/effects/effects.dmi' icon_state = "shieldwall" - anchored = TRUE density = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF light_range = 3 diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 994e74d6eb..298587cdea 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -17,7 +17,6 @@ desc = "Gambling for the antisocial." icon = 'icons/obj/economy.dmi' icon_state = "slots1" - anchored = TRUE density = TRUE use_power = IDLE_POWER_USE idle_power_usage = 50 diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index e7d6bf0491..105d47a719 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -15,7 +15,6 @@ icon = 'icons/obj/status_display.dmi' icon_state = "frame" name = "status display" - anchored = TRUE density = FALSE use_power = IDLE_POWER_USE idle_power_usage = 10 @@ -227,7 +226,6 @@ desc = "A small screen which the AI can use to present itself." icon_state = "frame" name = "\improper AI display" - anchored = TRUE density = FALSE var/mode = 0 // 0 = Blank diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e17c543154..2ff0a6758d 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -4,7 +4,6 @@ desc = "An industrial unit made to hold space suits. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." icon = 'icons/obj/machines/suit_storage.dmi' icon_state = "close" - anchored = TRUE density = TRUE max_integrity = 250 diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index 98f4bd9e2c..7a04869b93 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -8,7 +8,6 @@ icon_state = "comm_server" desc = "A compact machine used for portable subspace telecommuniations processing." density = TRUE - anchored = TRUE use_power = NO_POWER_USE idle_power_usage = 0 var/intercept = FALSE // If true, only works on the Syndicate frequency. diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index 89e2d38de1..0abe97c72e 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -13,7 +13,6 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages icon_state = "broadcaster" desc = "A dish-shaped machine used to broadcast processed subspace signals." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 25 circuit = /obj/item/circuitboard/machine/telecomms/broadcaster diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 6f9757eb45..b92ebc0d7d 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -13,7 +13,6 @@ icon_state = "bus" desc = "A mighty piece of hardware used to send massive amounts of data quickly." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 50 netspeed = 40 diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index 7a481b2069..b23c443678 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -13,7 +13,6 @@ icon_state = "hub" desc = "A mighty piece of hardware used to send/receive massive amounts of data." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 80 long_range_link = TRUE diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index d3d4b871b0..45661add0d 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -11,7 +11,6 @@ icon_state = "blackbox" name = "Blackbox Recorder" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 @@ -25,7 +24,6 @@ name = "Messaging Server" desc = "A machine that attempts to gather the secret knowledge of the universe." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm index 8b7e0f8672..2362273469 100644 --- a/code/game/machinery/telecomms/machines/processor.dm +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -11,7 +11,6 @@ icon_state = "processor" desc = "This machine is used to process large quantities of information." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 30 circuit = /obj/item/circuitboard/machine/telecomms/processor diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 527c0e6d8f..0fd3aec012 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -11,7 +11,6 @@ icon_state = "broadcast receiver" desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 30 circuit = /obj/item/circuitboard/machine/telecomms/receiver diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index 1a436e56d5..9e6716278b 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -11,7 +11,6 @@ icon_state = "relay" desc = "A mighty piece of hardware used to send massive amounts of data far away." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 30 netspeed = 5 diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 18a498efe6..6bbd8cfd38 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -10,7 +10,6 @@ icon_state = "comm_server" desc = "A machine used to store data and network statistics." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 15 circuit = /obj/item/circuitboard/machine/telecomms/server diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index cef200173c..3d217e52c5 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -2,7 +2,6 @@ name = "teleport" icon = 'icons/obj/machines/teleporter.dmi' density = TRUE - anchored = TRUE /obj/machinery/teleport/hub name = "teleporter hub" diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 7624312f84..4fa40910a8 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/recycling.dmi' icon_state = "separator-AO1" layer = ABOVE_ALL_MOB_LAYER // Overhead - anchored = TRUE density = FALSE var/transform_dead = 0 var/transform_standing = 0 diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index ab906f1bfa..8575a6f2dc 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/machines/washing_machine.dmi' icon_state = "wm_1_0" density = TRUE - anchored = TRUE state_open = TRUE var/busy = FALSE var/bloody_mess = 0 diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index aa238f9341..bec51d1d30 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -5,7 +5,6 @@ icon_state = "syndbeacon" use_power = NO_POWER_USE - anchored = TRUE density = TRUE var/charges = 1 diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index d2d9ac5e57..f198bfbd87 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -15,7 +15,6 @@ name = "mech bay power port" desc = "This port recharges a mech's internal power cell." density = TRUE - anchored = TRUE dir = EAST icon = 'icons/mecha/mech_bay.dmi' icon_state = "recharge_port" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 526c808809..77b26c4ec0 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -4,7 +4,6 @@ name = "exosuit fabricator" desc = "Nothing is being built." density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 20 active_power_usage = 5000 diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index e8933b7151..e6d1486053 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -5,7 +5,6 @@ icon_state = "implantchair" density = TRUE opacity = 0 - anchored = TRUE var/ready = TRUE var/replenishing = FALSE diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index d21379cb44..169132a158 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -6,6 +6,7 @@ icon = 'icons/obj/turrets.dmi' icon_state = "machinegun" can_buckle = TRUE + anchored = FALSE density = TRUE max_integrity = 100 buckle_lying = FALSE diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 929e6e1520..4798aae883 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -210,7 +210,6 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "shower" density = FALSE - anchored = TRUE use_power = NO_POWER_USE var/on = FALSE var/obj/effect/mist/mymist = null diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm index ab482f1f16..eaf2aa466b 100644 --- a/code/modules/NTNet/relays.dm +++ b/code/modules/NTNet/relays.dm @@ -7,7 +7,6 @@ idle_power_usage = 100 icon = 'icons/obj/machines/telecomms.dmi' icon_state = "bus" - anchored = TRUE density = TRUE circuit = /obj/item/circuitboard/machine/ntnet_relay var/datum/ntnet/NTNet = null // This is mostly for backwards reference and to allow varedit modifications from ingame. diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index 21db27ce19..dd89a08c9e 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -8,7 +8,6 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" state_open = TRUE - anchored = TRUE occupant_typecache = list(/mob/living/carbon/human) // turned into typecache in Initialize circuit = /obj/item/circuitboard/machine/vr_sleeper var/you_die_in_the_game_you_die_for_real = FALSE @@ -179,7 +178,7 @@ vr_human.vr_sleeper = null // Prevents race condition where a new human could get created out of order and set to null. QDEL_NULL(vr_human) -/obj/machinery/vr_sleeper/proc/emagNotify() +/obj/machinery/vr_sleeper/proc/emagNotify() if(vr_human) vr_human.Dizzy(10) @@ -199,10 +198,10 @@ vr_category = "team_1" /obj/effect/landmark/vr_spawn/team_2 - vr_category = "team_2" + vr_category = "team_2" /obj/effect/landmark/vr_spawn/admin - vr_category = "event" + vr_category = "event" /obj/effect/landmark/vr_spawn/syndicate // Multiple missions will use syndicate gear vr_outfit = /datum/outfit/vr/syndicate diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index e629a0b47d..6bc8fc0d5d 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -17,7 +17,6 @@ icon = 'icons/obj/abductor.dmi' icon_state = "console" density = TRUE - anchored = TRUE var/obj/item/abductor/gizmo/gizmo var/obj/item/clothing/suit/armor/abductor/vest/vest var/obj/machinery/abductor/experiment/experiment diff --git a/code/modules/antagonists/abductor/machinery/dispenser.dm b/code/modules/antagonists/abductor/machinery/dispenser.dm index c837adf1f0..17fa311c8f 100644 --- a/code/modules/antagonists/abductor/machinery/dispenser.dm +++ b/code/modules/antagonists/abductor/machinery/dispenser.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/abductor.dmi' icon_state = "dispenser" density = TRUE - anchored = TRUE var/list/gland_types var/list/gland_colors var/list/amounts diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index 527913e6aa..5614fc9105 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/abductor.dmi' icon_state = "experiment-open" density = FALSE - anchored = TRUE state_open = TRUE var/points = 0 var/credits = 0 diff --git a/code/modules/antagonists/abductor/machinery/pad.dm b/code/modules/antagonists/abductor/machinery/pad.dm index dff2fe812e..1cb95fbf05 100644 --- a/code/modules/antagonists/abductor/machinery/pad.dm +++ b/code/modules/antagonists/abductor/machinery/pad.dm @@ -3,7 +3,6 @@ desc = "Use this to transport to and from the humans' habitat." icon = 'icons/obj/abductor.dmi' icon_state = "alien-pad-idle" - anchored = TRUE var/turf/teleport_target /obj/machinery/abductor/pad/proc/Warp(mob/living/target) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index a4dd053a3f..4d3ccf8a34 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -3,6 +3,7 @@ desc = "You probably shouldn't stick around to see if this is armed." icon = 'icons/obj/machines/nuke.dmi' icon_state = "nuclearbomb_base" + anchored = FALSE density = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 4482629a2e..4400a3c0dc 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -319,7 +319,6 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( name = "doomsday device" icon_state = "nuclearbomb_base" desc = "A weapon which disintegrates all organic life in a large area." - anchored = TRUE density = TRUE verb_exclaim = "blares" var/timing = FALSE diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 7bfacbee26..6e6355ed72 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -61,7 +61,6 @@ desc = "A machine that monitors atmosphere levels. Goes off if the area is dangerous." icon = 'icons/obj/monitors.dmi' icon_state = "alarm0" - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 4 active_power_usage = 8 diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 7f37e049dd..e8007a6608 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -13,7 +13,6 @@ var/last_pressure_delta = 0 pipe_flags = PIPING_ONE_PER_TURF - anchored = TRUE density = TRUE var/global/const/CIRC_LEFT = 1 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index a07dc8f8b8..cca6c4d15a 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -5,7 +5,6 @@ icon = 'icons/obj/cryogenics.dmi' icon_state = "pod-off" density = TRUE - anchored = TRUE max_integrity = 350 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 30, "acid" = 30) layer = ABOVE_WINDOW_LAYER diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 085c18475f..5359e2324e 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -6,7 +6,6 @@ var/icon_state_on = "cold_on" var/icon_state_open = "cold_off" density = TRUE - anchored = TRUE max_integrity = 300 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30) layer = OBJ_LAYER diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 9a310fb545..b0afefd58a 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/atmospherics/pipes/meter.dmi' icon_state = "meterX" layer = GAS_PUMP_LAYER - anchored = TRUE power_channel = ENVIRON use_power = IDLE_POWER_USE idle_power_usage = 2 diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index 61681c0b38..20251418bc 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -10,7 +10,6 @@ desc = "Gasses mined from the gas giant below (above?) flow out through this massive vent." icon = 'icons/obj/atmospherics/components/miners.dmi' icon_state = "miner" - anchored = TRUE density = FALSE resistance_flags = INDESTRUCTIBLE|ACID_PROOF|FIRE_PROOF var/spawn_id = null diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 68223d85a2..1a276d03c5 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -4,7 +4,7 @@ use_power = NO_POWER_USE max_integrity = 250 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 60, "acid" = 30) - + anchored = FALSE var/datum/gas_mixture/air_contents var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm index 87b9736722..ad6f9e24a5 100644 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -10,7 +10,6 @@ icon_state = "control_boxp1" icon = 'icons/obj/machines/particle_accelerator.dmi' density = TRUE - anchored = TRUE /obj/machinery/artillerycontrol/process() if(reload < reload_cooldown) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 09504c60b7..c65fc0960e 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -135,7 +135,6 @@ desc = "Used for running friendly games of capture the flag." icon = 'icons/obj/device.dmi' icon_state = "syndbeacon" - anchored = TRUE resistance_flags = INDESTRUCTIBLE var/team = WHITE_TEAM var/team_span = "" @@ -652,7 +651,6 @@ desc = "You should capture this." icon = 'icons/obj/machines/dominator.dmi' icon_state = "dominator" - anchored = TRUE resistance_flags = INDESTRUCTIBLE var/obj/machinery/capture_the_flag/controlling var/team = "none" diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 2293ac8098..5c3e87a367 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -6,7 +6,6 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) icon = 'icons/obj/machines/gateway.dmi' icon_state = "off" density = TRUE - anchored = TRUE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/active = 0 var/checkparts = TRUE diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index ba06b96959..acb329b5c5 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -63,7 +63,6 @@ icon = 'icons/obj/device.dmi' icon_state = "syndbeacon" - anchored = TRUE density = TRUE use_power = NO_POWER_USE diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 47dafc11db..8a9df2f58f 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -92,7 +92,6 @@ icon = 'icons/obj/machines/dominator.dmi' icon_state = "dominator" density = TRUE - anchored = TRUE var/active = FALSE var/obj/item/gps/gps var/credits_stored = 0 @@ -234,7 +233,6 @@ icon = 'icons/obj/machines/research.dmi' icon_state = "tdoppler" density = TRUE - anchored = TRUE var/cooldown = 0 var/result_count = 3 //Show X results. diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 36beaf711e..bdcc8e14ac 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -26,7 +26,6 @@ God bless America. icon = 'icons/obj/kitchen.dmi' icon_state = "fryer_off" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 container_type = OPENCONTAINER diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index 784cf22ccd..d960d9945b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "grinder" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 500 diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 7363f262b4..ee04e73fbe 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -5,7 +5,6 @@ icon_state = "mw" layer = BELOW_OBJ_LAYER density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 397f5c7a6d..c25cb2288f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -5,7 +5,6 @@ icon_state = "grinder" layer = BELOW_OBJ_LAYER density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 50 diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 91a73eecec..2ec1e56adb 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -6,7 +6,6 @@ icon_state = "processor1" layer = BELOW_OBJ_LAYER density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 50 diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 9d323546e8..11da92dce0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -8,7 +8,6 @@ icon_state = "smartfridge" layer = BELOW_OBJ_LAYER density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index d967eebd59..5c143f7a25 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -150,7 +150,6 @@ var/area/currentarea = null var/eventstarted = FALSE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 6 diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 6da117da88..c7a775523a 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/machines/biogenerator.dmi' icon_state = "biogen-empty" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 40 circuit = /obj/item/circuitboard/machine/biogenerator diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index f0c7bba885..e9ffb9e450 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "dnamod" density = TRUE - anchored = TRUE circuit = /obj/item/circuitboard/machine/plantgenes var/obj/item/seeds/seed diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index fb6915aef9..ed0e1df554 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "hydrotray" density = TRUE - anchored = TRUE pixel_z = 8 obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/hydroponics diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 3d0ffdfd53..ffa9e2e21d 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -45,7 +45,6 @@ icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "sextractor" density = TRUE - anchored = TRUE circuit = /obj/item/circuitboard/machine/seed_extractor var/piles = list() var/max_seeds = 1000 diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 9a1fa4ae50..410b51633e 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -494,7 +494,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums icon = 'icons/obj/library.dmi' icon_state = "bigscanner" desc = "It servers the purpose of scanning stuff." - anchored = TRUE density = TRUE var/obj/item/book/cache // Last scanned book @@ -553,7 +552,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums icon = 'icons/obj/library.dmi' icon_state = "binder" desc = "Only intended for binding paper products." - anchored = TRUE density = TRUE var/busy = FALSE diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 43faa48337..4a90a08cf3 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" density = FALSE - anchored = TRUE var/obj/machinery/mineral/stacking_machine/laborstacker/stacking_machine = null var/machinedir = SOUTH var/obj/item/card/id/prisoner/inserted_id @@ -147,7 +146,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" density = FALSE - anchored = TRUE /obj/machinery/mineral/labor_points_checker/attack_hand(mob/user) . = ..() diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index c7ba9ad6f4..8bef2ccf6a 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -17,7 +17,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" density = TRUE - anchored = TRUE var/obj/machinery/mineral/processing_unit/machine = null var/machinedir = EAST speed_process = TRUE @@ -74,7 +73,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "furnace" density = TRUE - anchored = TRUE var/obj/machinery/mineral/CONSOLE = null var/on = FALSE var/selected_material = MAT_METAL diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index d4735d1c75..3529214609 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "ore_redemption" density = TRUE - anchored = TRUE input_dir = NORTH output_dir = SOUTH req_access = list(ACCESS_MINERAL_STOREROOM) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 0f84d11082..f0a06429c5 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -6,7 +6,6 @@ icon_state = "console" desc = "Controls a stacking machine... in theory." density = FALSE - anchored = TRUE circuit = /obj/item/circuitboard/machine/stacking_unit_console var/obj/machinery/mineral/stacking_machine/machine var/machinedir = SOUTHEAST @@ -71,7 +70,6 @@ icon_state = "stacker" desc = "A machine that automatically stacks acquired materials. Controlled by a nearby console." density = TRUE - anchored = TRUE circuit = /obj/item/circuitboard/machine/stacking_machine var/obj/machinery/mineral/stacking_unit_console/CONSOLE var/stk_types = list() diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 380509f415..e84c2d6d0d 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "unloader" density = TRUE - anchored = TRUE input_dir = WEST output_dir = EAST speed_process = TRUE diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ead00a56e3..e13a8e5c39 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "mining" density = TRUE - anchored = TRUE circuit = /obj/item/circuitboard/machine/mining_equipment_vendor var/icon_deny = "mining-deny" var/obj/item/card/id/inserted_id diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index b7cc0db43f..66b6b94d6c 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/economy.dmi' icon_state = "coinpress0" density = TRUE - anchored = TRUE var/newCoins = 0 //how many coins the machine made in it's last load var/processing = FALSE var/chosen = MAT_METAL //which material will be used to make coins diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 6ec6d59228..f152132377 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -837,6 +837,7 @@ Pass a positive integer as an argument to override a bot's default speed. // Machinery to simplify topic and access calls /obj/machinery/bot_core use_power = NO_POWER_USE + anchored = FALSE var/mob/living/simple_animal/bot/owner = null /obj/machinery/bot_core/Initialize() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 0c39dbf1c9..78290c4e95 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -355,6 +355,7 @@ Difficulty: Very Hard light_range = 8 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF use_power = NO_POWER_USE + anchored = FALSE density = TRUE flags_1 = HEAR_1 var/activation_method diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm index b9a0544021..026091f88b 100644 --- a/code/modules/modular_computers/computers/machinery/modular_console.dm +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -8,8 +8,6 @@ icon_state_unpowered = "console-off" screen_icon_state_menu = "menu" hardware_flag = PROGRAM_CONSOLE - var/console_department = "" // Used in New() to set network tag according to our area. - anchored = TRUE density = TRUE base_idle_power_usage = 100 base_active_power_usage = 500 @@ -18,6 +16,7 @@ light_strength = 2 max_integrity = 300 integrity_failure = 150 + var/console_department = "" // Used in New() to set network tag according to our area. /obj/machinery/modular_computer/console/buildable/Initialize() . = ..() diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index ef0538a1ee..6e4f80458a 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/vending.dmi' icon_state = "robotics" layer = 2.9 - anchored = TRUE density = TRUE // The actual laptop/tablet diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 2b0c6c0aec..e8a4c26d10 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -12,7 +12,6 @@ desc = "Used to copy important documents and anatomy studies." icon = 'icons/obj/library.dmi' icon_state = "photocopier" - anchored = TRUE density = TRUE use_power = IDLE_POWER_USE idle_power_usage = 30 diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index 8f4508be35..43b2400299 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -14,7 +14,6 @@ icon = 'icons/obj/machines/antimatter.dmi' icon_state = "shield" - anchored = TRUE density = TRUE dir = NORTH use_power = NO_POWER_USE//Living things generally dont use power diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 6d001dd111..e9deb8233b 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -50,7 +50,6 @@ desc = "A control terminal for the area's electrical systems." icon_state = "apc0" - anchored = TRUE use_power = NO_POWER_USE req_access = null max_integrity = 200 diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index 62abcdb440..8da3594d5e 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -41,7 +41,6 @@ desc = "A pole with powerful mounted lights on it. Due to its high power draw, it must be powered by a direct connection to a wire node." icon = 'icons/obj/lighting.dmi' icon_state = "floodlight" - anchored = TRUE density = TRUE max_integrity = 100 integrity_failure = 80 diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index ce9d2de4db..eb6e82a242 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -2,7 +2,6 @@ name = "thermoelectric generator" desc = "It's a high efficiency thermoelectric generator." icon_state = "teg" - anchored = TRUE density = TRUE use_power = NO_POWER_USE diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 0446fbc49b..0ea6a8a6f0 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -22,7 +22,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne name = "gravitational generator" desc = "A device which produces a graviton field when set up." icon = 'icons/obj/machines/gravity_generator.dmi' - anchored = TRUE density = TRUE use_power = NO_POWER_USE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 3015ef33cb..db6026c8e9 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -187,7 +187,6 @@ var/base_state = "tube" // base description and icon_state icon_state = "tube" desc = "A lighting fixture." - anchored = TRUE layer = WALL_OBJ_LAYER max_integrity = 100 use_power = ACTIVE_POWER_USE diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 7266a3e8a0..f3c6da7631 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/power.dmi' icon_state = "rtg" density = TRUE - anchored = TRUE use_power = NO_POWER_USE circuit = /obj/item/circuitboard/machine/rtg diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index c8153b4a89..f6004b664a 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -5,7 +5,6 @@ desc = "An energy field." icon = 'icons/obj/singularity.dmi' icon_state = "Contain_F" - anchored = TRUE density = FALSE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF use_power = NO_POWER_USE diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 229323d8b0..7bfdd86dfa 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -19,7 +19,6 @@ desc = "A high-capacity superconducting magnetic energy storage (SMES) unit." icon_state = "smes" density = TRUE - anchored = TRUE use_power = NO_POWER_USE circuit = /obj/item/circuitboard/machine/smes var/capacity = 5e6 // maximum charge diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index d7e0bc66bc..ed16e6a41e 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -6,7 +6,6 @@ desc = "A solar panel. Generates electricity when in contact with sunlight." icon = 'goon/icons/obj/power.dmi' icon_state = "sp_base" - anchored = TRUE density = TRUE use_power = NO_POWER_USE idle_power_usage = 0 @@ -257,7 +256,6 @@ desc = "A controller for solar panel arrays." icon = 'icons/obj/computer.dmi' icon_state = "computer" - anchored = TRUE density = TRUE use_power = IDLE_POWER_USE idle_power_usage = 250 diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index d82189e520..3fa815bf99 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -8,9 +8,8 @@ icon_state = "term" desc = "It's an underfloor wiring terminal for power equipment." level = 1 - var/obj/machinery/power/master = null - anchored = TRUE layer = WIRE_TERMINAL_LAYER //a bit above wires + var/obj/machinery/power/master = null /obj/machinery/power/terminal/Initialize() diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index c999554d87..cc5b1d6322 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -8,7 +8,6 @@ desc = "A solar directional tracker." icon = 'goon/icons/obj/power.dmi' icon_state = "tracker" - anchored = TRUE density = TRUE use_power = NO_POWER_USE max_integrity = 250 diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 22777e4fcf..85ee7589b9 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -27,7 +27,6 @@ desc = "The compressor stage of a gas turbine generator." icon = 'icons/obj/atmospherics/pipes/simple.dmi' icon_state = "compressor" - anchored = TRUE density = TRUE resistance_flags = FIRE_PROOF CanAtmosPass = ATMOS_PASS_DENSITY @@ -48,7 +47,6 @@ desc = "A gas turbine used for backup power generation." icon = 'icons/obj/atmospherics/pipes/simple.dmi' icon_state = "turbine" - anchored = TRUE density = TRUE resistance_flags = FIRE_PROOF CanAtmosPass = ATMOS_PASS_DENSITY diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index a4c85df943..85fed3759b 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -2,7 +2,6 @@ name = "chem dispenser" desc = "Creates and dispenses chemicals." density = TRUE - anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "dispenser" use_power = IDLE_POWER_USE @@ -405,7 +404,6 @@ obj/machinery/chem_dispenser/proc/work_animation() /obj/machinery/chem_dispenser/drinks name = "soda dispenser" desc = "Contains a large reservoir of soft drinks." - anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "soda_dispenser" has_panel_overlay = FALSE @@ -449,7 +447,6 @@ obj/machinery/chem_dispenser/proc/work_animation() /obj/machinery/chem_dispenser/drinks/beer name = "booze dispenser" desc = "Contains a large reservoir of the good stuff." - anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "booze_dispenser" circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 73413a5e7b..465f9a165b 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -1,7 +1,6 @@ /obj/machinery/chem_heater name = "chemical heater" density = TRUE - anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "mixer0b" use_power = IDLE_POWER_USE diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 89b63f4ee5..9fd8a8a377 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -2,7 +2,6 @@ name = "ChemMaster 3000" desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE - anchored = TRUE layer = BELOW_OBJ_LAYER icon = 'icons/obj/chemical.dmi' icon_state = "mixer0" diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 5a9efe56d1..7247b9b5ed 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -5,7 +5,6 @@ name = "PanD.E.M.I.C 2200" desc = "Used to work with viruses." density = TRUE - anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "mixer0" circuit = /obj/item/circuitboard/computer/pandemic diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index a4d9829aa6..922b557995 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -7,7 +7,6 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "juicer1" layer = BELOW_OBJ_LAYER - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 56cec26dd3..d64096c71f 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -6,7 +6,6 @@ icon = 'icons/obj/chemical.dmi' icon_state = "smoke0" density = TRUE - anchored = TRUE circuit = /obj/item/circuitboard/machine/smoke_machine var/efficiency = 10 var/on = FALSE diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 41fbc5092d..889bb2e0c5 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -8,7 +8,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) icon_state = "conveyor_map" name = "conveyor belt" desc = "A conveyor belt." - anchored = TRUE layer = BELOW_OPEN_DOOR_LAYER var/operating = 0 // 1 if running forward, -1 if backwards, 0 if off var/operable = 1 // true if can operate (no broken segments in this belt run) @@ -215,11 +214,12 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) // /obj/machinery/conveyor_switch - name = "conveyor switch" desc = "A conveyor control switch." icon = 'icons/obj/recycling.dmi' icon_state = "switch-off" + speed_process = TRUE + var/position = 0 // 0 off, -1 reverse, 1 forward var/last_pos = -1 // last direction setting var/operated = 1 // true if just operated @@ -228,11 +228,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) var/id = "" // must match conveyor IDs to control them - anchored = TRUE - speed_process = TRUE - - - /obj/machinery/conveyor_switch/Initialize(mapload, newid) . = ..() if (newid) diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 6defa464b9..aa356d5cd2 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -4,7 +4,6 @@ /obj/machinery/disposal icon = 'icons/obj/atmospherics/pipes/disposal.dmi' - anchored = TRUE density = TRUE armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) max_integrity = 200 diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 55b193de5a..1e4536058a 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -23,7 +23,6 @@ icon = 'icons/obj/machines/heavy_lathe.dmi' icon_state = "h_lathe" density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE circuit = /obj/item/circuitboard/machine/experimentor var/recentlyExperimented = 0 diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 47f34a9b15..87f8cefe78 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -6,7 +6,6 @@ name = "R&D Device" icon = 'icons/obj/machines/research.dmi' density = TRUE - anchored = TRUE use_power = IDLE_POWER_USE var/busy = FALSE var/hacked = FALSE diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 15d5abf5e8..162942d1d8 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -9,7 +9,6 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" - anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 6 diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 1d8732cda9..485d6c3818 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -9,7 +9,6 @@ icon = 'icons/obj/machines/shuttle_manipulator.dmi' icon_state = "holograph_on" - anchored = TRUE density = TRUE // UI state variables diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 1a5ba07576..76293c327c 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -204,11 +204,6 @@ All ShuttleMove procs go here on = TRUE update_list() -/obj/machinery/thruster/beforeShuttleMove(turf/newT, rotation, move_mode, obj/docking_port/mobile/moving_dock) - . = ..() - if(. & MOVE_AREA) - . |= MOVE_CONTENTS - /obj/machinery/atmospherics/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() var/missing_nodes = FALSE diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 9c92ac4bd5..44746e595e 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -87,10 +87,11 @@ desc = "" icon = 'icons/obj/machines/satellite.dmi' icon_state = "sat_inactive" - var/mode = "NTPROBEV0.8" - var/active = FALSE + anchored = FALSE density = TRUE use_power = FALSE + var/mode = "NTPROBEV0.8" + var/active = FALSE var/static/gid = 0 var/id = 0 diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index ae4c83d016..31de01b159 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -33,7 +33,6 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon = 'icons/obj/vending.dmi' icon_state = "generic" layer = BELOW_OBJ_LAYER - anchored = TRUE density = TRUE verb_say = "beeps" verb_ask = "beeps" From 3b498f228800cd55931c524aaea088e2aa551d06 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Jun 2018 05:41:31 -0500 Subject: [PATCH 040/205] map fix --- _maps/map_files/BoxStation/BoxStation.dmm | 6144 +++++++---------- .../map_files/Deltastation/DeltaStation2.dmm | 1 - _maps/map_files/MetaStation/MetaStation.dmm | 173 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 27 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 179 +- _maps/map_files/generic/CentCom.dmm | 285 +- 6 files changed, 2857 insertions(+), 3952 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index d6e6a6b3ee..27d68bb5cb 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aaa" = ( /turf/open/space/basic, /area/space) @@ -33,6 +33,13 @@ }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) +"aad" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) "aae" = ( /obj/effect/landmark/carpspawn, /turf/open/space, @@ -107,6 +114,20 @@ dir = 1 }, /area/security/prison) +"aaq" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/hydroponics/soil, +/obj/item/plant_analyzer, +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/security/prison) "aar" = ( /obj/machinery/hydroponics/soil, /obj/item/seeds/glowshroom, @@ -190,6 +211,12 @@ dir = 2 }, /area/security/prison) +"aaG" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "aaH" = ( /turf/open/floor/plating/airless, /area/space/nearstation) @@ -246,6 +273,13 @@ }, /turf/open/floor/plasteel/barber, /area/security/prison) +"aaR" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/securearea{ + pixel_y = -32 + }, +/turf/open/space, +/area/space/nearstation) "aaS" = ( /obj/structure/grille, /obj/structure/lattice, @@ -359,6 +393,26 @@ /obj/machinery/vending/security, /turf/open/floor/plasteel/showroomfloor, /area/security/main) +"abm" = ( +/obj/structure/table, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/obj/item/key/security, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abn" = ( +/obj/structure/rack, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) "abo" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -470,15 +524,166 @@ "abF" = ( /turf/open/floor/plasteel/freezer, /area/security/prison) +"abG" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"abH" = ( +/obj/structure/table, +/obj/item/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/storage/lockbox/loyalty, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abI" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abJ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abK" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"abL" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "abM" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"abN" = ( +/obj/structure/closet/secure_closet/lethalshots, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "abO" = ( /turf/open/floor/plasteel/showroomfloor, /area/security/main) +"abP" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"abQ" = ( +/obj/structure/rack, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"abR" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "abS" = ( /obj/machinery/computer/secure_data, /turf/open/floor/carpet, @@ -608,6 +813,16 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"ach" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aci" = ( +/obj/vehicle/ridden/secway, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "acj" = ( /obj/machinery/light{ dir = 4 @@ -615,6 +830,33 @@ /obj/machinery/suit_storage_unit/hos, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) +"ack" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/machinery/power/apc/highcap/five_k{ + dir = 4; + areastring = "/area/ai_monitored/security/armory"; + name = "Armory APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "acn" = ( /obj/item/storage/secure/safe/HoS{ pixel_x = 35 @@ -630,6 +872,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, /area/security/main) +"acq" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"acr" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) "acs" = ( /obj/machinery/newscaster/security_unit{ pixel_x = -30 @@ -651,6 +902,10 @@ "acu" = ( /turf/open/floor/carpet, /area/crew_quarters/heads/hos) +"acv" = ( +/obj/structure/closet/secure_closet/contraband/armory, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "acw" = ( /obj/structure/sign/warning/securearea{ pixel_y = -32 @@ -707,6 +962,21 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"acD" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acE" = ( /obj/structure/bed, /obj/machinery/camera{ @@ -744,6 +1014,22 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"acI" = ( +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Transfer Room"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/execution/transfer) "acJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -768,10 +1054,41 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) +"acM" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/item/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) "acN" = ( /obj/structure/chair/stool/bar, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) +"acO" = ( +/obj/structure/closet/l3closet/security, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "acP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, @@ -835,6 +1152,16 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/port/fore) +"acX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/execution/transfer) "acY" = ( /obj/structure/table, /obj/item/paper, @@ -842,6 +1169,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"acZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + name = "blast door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/security/execution/transfer) "ada" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/flasher{ @@ -889,11 +1225,48 @@ }, /turf/open/floor/plasteel/freezer, /area/security/prison) +"adg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "adh" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) +"adi" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) +"adj" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/ai_monitored/security/armory) "adk" = ( /obj/structure/rack, /obj/item/gun/ballistic/shotgun/riot{ @@ -1183,6 +1556,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) +"adQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "adR" = ( /turf/closed/wall/r_wall, /area/security/main) @@ -1468,12 +1847,26 @@ dir = 5 }, /area/security/prison) +"aes" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) "aet" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) +"aeu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/red/side, +/area/ai_monitored/security/armory) "aev" = ( /obj/machinery/light{ dir = 4 @@ -1608,6 +2001,21 @@ dir = 8 }, /area/security/prison) +"aeN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + name = "Prisoner Transfer Centre"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "aeO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1685,6 +2093,68 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"aeW" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aeX" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aeY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/window/southleft{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"aeZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) "afa" = ( /obj/docking_port/stationary{ dir = 4; @@ -1706,6 +2176,17 @@ /obj/machinery/recharger, /turf/open/floor/plasteel/showroomfloor, /area/security/main) +"afd" = ( +/obj/item/radio/intercom{ + freerange = 0; + frequency = 1459; + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "afe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/showroomfloor, @@ -1927,6 +2408,13 @@ }, /turf/open/floor/plasteel/red/side, /area/security/prison) +"afK" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) "afL" = ( /obj/structure/closet{ name = "Evidence Closet" @@ -1957,6 +2445,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) +"afQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) "afR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/structure/window/reinforced, @@ -1990,6 +2485,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/security/main) +"afX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/head_of_security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) "afY" = ( /obj/effect/landmark/start/security_officer, /obj/structure/chair{ @@ -2005,6 +2508,15 @@ }, /turf/open/floor/plasteel, /area/security/main) +"aga" = ( +/obj/structure/sign/warning/pods{ + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) "agb" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/side{ @@ -2086,6 +2598,13 @@ dir = 9 }, /area/security/prison) +"agl" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "agm" = ( /obj/machinery/light{ dir = 8 @@ -2099,6 +2618,45 @@ "agn" = ( /turf/closed/wall/r_wall, /area/security/warden) +"ago" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agp" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"agq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"agr" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "ags" = ( /obj/structure/chair{ dir = 4 @@ -2188,6 +2746,22 @@ /obj/item/pen, /turf/open/floor/plasteel, /area/security/main) +"agF" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/brig) "agG" = ( /obj/machinery/airalarm{ dir = 8; @@ -2287,6 +2861,12 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"agT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "agU" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -2438,6 +3018,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/security/main) +"ahm" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/blood, +/turf/open/floor/plasteel/whitered/side{ + dir = 5 + }, +/area/security/brig) "ahn" = ( /turf/closed/wall, /area/maintenance/fore/secondary) @@ -2503,6 +3093,30 @@ dir = 10 }, /area/security/brig) +"ahv" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Brig Control APC"; + areastring = "/area/security/warden"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "ahy" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2510,6 +3124,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"ahz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "ahA" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2543,6 +3166,17 @@ /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/main) +"ahD" = ( +/obj/machinery/door/window/westleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Brig Infirmary" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) "ahE" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Control"; @@ -2689,6 +3323,41 @@ "ahP" = ( /turf/open/floor/plasteel/white, /area/security/brig) +"ahQ" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahR" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/warden, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -27; + pixel_y = 8; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = -27; + pixel_y = -2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahS" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "ahT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -2716,6 +3385,23 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) +"ahX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ahY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) "ahZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -2770,6 +3456,17 @@ dir = 10 }, /area/security/brig) +"aie" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/obj/item/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "aif" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -2924,6 +3621,17 @@ }, /turf/open/floor/plasteel/red/side, /area/security/main) +"aiw" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Brig Infirmary" + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 4 + }, +/area/security/brig) "aix" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2994,6 +3702,84 @@ dir = 5 }, /area/security/brig) +"aiH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aiI" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiJ" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiL" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aiM" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aiN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) "aiO" = ( /obj/structure/window/reinforced{ dir = 4 @@ -3016,6 +3802,12 @@ dir = 1 }, /area/security/brig) +"aiR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) "aiS" = ( /obj/item/stack/rods, /turf/open/space, @@ -3030,6 +3822,14 @@ "aiV" = ( /turf/closed/wall/r_wall, /area/security/processing) +"aiW" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "aiX" = ( /turf/closed/wall/r_wall, /area/security/brig) @@ -3069,6 +3869,24 @@ dir = 1 }, /area/security/brig) +"ajd" = ( +/obj/structure/sign/plaques/golden{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"aje" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) "ajf" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3078,6 +3896,25 @@ dir = 1 }, /area/security/brig) +"ajg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajh" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/closet/secure_closet/courtroom, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/item/gavelhammer, +/turf/open/floor/plasteel, +/area/security/courtroom) "aji" = ( /obj/structure/chair{ name = "Judge" @@ -3148,6 +3985,20 @@ /obj/machinery/gulag_teleporter, /turf/open/floor/plasteel, /area/security/processing) +"ajt" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/prisoner, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock North" + }, +/turf/open/floor/plasteel, +/area/security/processing) "aju" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -3222,6 +4073,17 @@ dir = 1 }, /area/security/brig) +"ajB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajC" = ( +/obj/item/storage/toolbox/drone, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "ajD" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3237,6 +4099,24 @@ dir = 5 }, /area/security/courtroom) +"ajF" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/brig) +"ajG" = ( +/obj/machinery/light, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) "ajH" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -3251,6 +4131,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "ajK" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3275,6 +4162,17 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"ajN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access_txt = "63; 42" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "ajO" = ( /obj/structure/table/wood, /obj/item/radio/intercom{ @@ -3401,6 +4299,20 @@ dir = 8 }, /area/security/brig) +"akf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "akg" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3426,6 +4338,21 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"aki" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) "akj" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3435,6 +4362,20 @@ }, /turf/open/floor/plasteel/red/side, /area/security/brig) +"akk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/security/brig) +"akl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "akm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3452,6 +4393,73 @@ dir = 4 }, /area/security/courtroom) +"ako" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akq" = ( +/obj/machinery/camera{ + c_tag = "Brig Central"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"aks" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/brig) +"akt" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"aku" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) "akv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3480,6 +4488,10 @@ dir = 8 }, /area/security/courtroom) +"akz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "akA" = ( /obj/structure/chair{ dir = 8; @@ -3495,6 +4507,13 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"akG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) "akH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -3531,12 +4550,87 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/fore) +"akM" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akN" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akO" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akP" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) "akQ" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/closed/wall, /area/security/brig) +"akR" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"akS" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akT" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) "akU" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Desk"; @@ -3560,6 +4654,75 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/brig) +"akW" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"akX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"akY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"akZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"ala" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 4"; + name = "Cell 4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"alb" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/courtroom) "alc" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -3579,6 +4742,12 @@ dir = 6 }, /area/security/courtroom) +"alf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "alg" = ( /obj/structure/cable{ icon_state = "0-2" @@ -3609,6 +4778,17 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"aln" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) "alp" = ( /turf/open/floor/plating, /area/security/processing) @@ -3640,6 +4820,35 @@ dir = 8 }, /area/ai_monitored/nuke_storage) +"alv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"alx" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "aly" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -3654,6 +4863,23 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) +"alz" = ( +/obj/machinery/button/door{ + id = "briggate"; + name = "Desk Shutters"; + pixel_x = -26; + pixel_y = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -28; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "alA" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -3685,6 +4911,19 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/courtroom) +"alE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = 28 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "alF" = ( /obj/machinery/atmospherics/components/unary/tank/air{ dir = 2 @@ -3826,6 +5065,18 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"amf" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "amg" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 1"; @@ -3833,6 +5084,15 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) +"amh" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "ami" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 2"; @@ -3840,6 +5100,15 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) +"amj" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "amk" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 3"; @@ -3894,6 +5163,15 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) +"amo" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) "amp" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 4"; @@ -3901,6 +5179,19 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/brig) +"amq" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) "amr" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -4012,6 +5303,10 @@ /obj/item/trash/plate, /turf/open/floor/plating, /area/maintenance/port/fore) +"amK" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall, +/area/security/processing) "amL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/spawner/structure/window/reinforced, @@ -4048,12 +5343,112 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"amQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"amR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) "amS" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/closed/wall/r_wall, /area/security/brig) +"amT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amU" = ( +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"amV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amW" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"amX" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) "amY" = ( /obj/structure/chair{ dir = 1 @@ -4199,6 +5594,22 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"anu" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the exit."; + id = "laborexit"; + name = "exit button"; + normaldoorcontrol = 1; + pixel_x = 26; + pixel_y = -6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/processing) "anv" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4216,6 +5627,25 @@ dir = 1 }, /area/hallway/primary/fore) +"anx" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) +"any" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/fore) "anz" = ( /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -4224,6 +5654,21 @@ dir = 4 }, /area/hallway/primary/fore) +"anB" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/fore) +"anC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/courtroom) "anD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4279,6 +5724,16 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"anN" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/security/processing) "anO" = ( /obj/docking_port/stationary{ dir = 8; @@ -4291,10 +5746,43 @@ }, /turf/open/space/basic, /area/space) +"anP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + id_tag = "laborexit"; + name = "Labor Shuttle"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"anQ" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "anS" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"anT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"anU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "anV" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/dark, @@ -4435,6 +5923,13 @@ /obj/item/circuitboard/machine/monkey_recycler, /turf/open/floor/plating, /area/maintenance/port/fore) +"aoq" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) "aor" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -4496,11 +5991,68 @@ dir = 8 }, /area/hallway/primary/fore) +"aoy" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA"; + location = "Security" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aoz" = ( /turf/open/floor/plasteel/red/corner{ dir = 2 }, /area/hallway/primary/fore) +"aoA" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoB" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoC" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoD" = ( +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway East"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoE" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) +"aoF" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/hallway/primary/fore) "aoG" = ( /obj/structure/table, /obj/machinery/firealarm{ @@ -4718,6 +6270,12 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/closed/wall, /area/maintenance/fore/secondary) +"apo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/fore/secondary) "app" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -5343,6 +6901,10 @@ /obj/item/pen/red, /turf/open/floor/wood, /area/lawoffice) +"arc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "ard" = ( /obj/machinery/door/poddoor/preopen{ id = "lawyer_blast"; @@ -7438,6 +9000,18 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"awN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "awO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -9521,6 +11095,24 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) +"aCd" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "aCe" = ( /obj/effect/landmark/xeno_spawn, /obj/item/bikehorn/rubberducky, @@ -10135,6 +11727,16 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall/r_wall, /area/ai_monitored/storage/eva) +"aDK" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) "aDL" = ( /obj/structure/sink{ dir = 8; @@ -10632,12 +12234,62 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/ai_monitored/storage/eva) +"aFd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/dorms) +"aFe" = ( +/obj/machinery/camera{ + c_tag = "Dormitory South"; + c_tag_order = 999; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/dorms) +"aFf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) "aFg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall, /area/crew_quarters/toilet) +"aFh" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aFi" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Dormitory Bathrooms APC"; + areastring = "/area/crew_quarters/toilet"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) "aFj" = ( /turf/open/floor/plasteel/redblue/redside, /area/crew_quarters/theatre) @@ -11524,6 +13176,16 @@ dir = 4 }, /area/chapel/main) +"aHp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "aHq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12033,6 +13695,11 @@ /obj/structure/table/glass, /turf/open/floor/plasteel/chapel, /area/chapel/main) +"aIF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) "aIH" = ( /obj/structure/table, /obj/item/storage/box/lights/mixed, @@ -19434,6 +21101,10 @@ }, /turf/closed/wall, /area/quartermaster/warehouse) +"bcU" = ( +/obj/item/stack/tile/plasteel, +/turf/open/space, +/area/space/nearstation) "bcV" = ( /obj/machinery/airalarm{ dir = 8; @@ -19824,6 +21495,10 @@ /obj/structure/closet/crate/medical, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) +"bdV" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless, +/area/space/nearstation) "bdW" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/head/soft/rainbow, @@ -22418,6 +24093,10 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"bkA" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "bkB" = ( /obj/machinery/button/door{ id = "Disposal Exit"; @@ -23032,6 +24711,13 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"blT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "blU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -33227,6 +34913,10 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) +"bJP" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/bar, +/area/maintenance/port/aft) "bJQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -35124,7 +36814,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/droneDispenser, /turf/open/floor/plasteel, /area/science/misc_lab) "bOx" = ( @@ -35802,9 +37491,32 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"bPR" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/wood, +/area/maintenance/port/aft) "bPS" = ( /turf/open/floor/wood, /area/maintenance/port/aft) +"bPT" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/port/aft) +"bPU" = ( +/obj/item/shard, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bPV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maint Bar Access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden{ + name = "wooden barricade (CLOSED)" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bPW" = ( /obj/effect/decal/cleanable/oil, /turf/open/floor/plating, @@ -36220,6 +37932,27 @@ /obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plasteel/white, /area/science/circuit) +"bRc" = ( +/obj/structure/table/wood, +/obj/item/soap/nanotrasen, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/port/aft) +"bRe" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bRf" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/aft) "bRg" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -36687,6 +38420,18 @@ icon_state = "platingdmg3" }, /area/maintenance/starboard/aft) +"bSn" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bSo" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bSp" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bSq" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen, @@ -36709,6 +38454,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/tcommsat/computer) +"bSu" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) "bSv" = ( /obj/machinery/camera{ c_tag = "Construction Area"; @@ -37159,6 +38910,40 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"bTs" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/port/aft) +"bTt" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/port/aft) +"bTu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/port/aft) +"bTv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bTw" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bTx" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -37166,6 +38951,13 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/maintenance/port/aft) +"bTy" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bTz" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -37529,6 +39321,34 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"bUt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"bUv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bUx" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1 @@ -37976,6 +39796,12 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, /area/maintenance/port/aft) +"bVG" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "bVI" = ( /turf/closed/wall/r_wall, /area/tcommsat/server) @@ -39776,6 +41602,12 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"car" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/port/aft) "cas" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -43299,6 +45131,10 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) +"cjn" = ( +/obj/item/weldingtool, +/turf/open/floor/plating/airless, +/area/space/nearstation) "cjo" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plasteel, @@ -44230,6 +46066,11 @@ dir = 1 }, /area/engine/engineering) +"clS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/rnd/production/techfab/department/security, +/turf/open/floor/plasteel/red/side, +/area/security/main) "clT" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine/n2, @@ -45262,6 +47103,19 @@ }, /turf/open/space, /area/space/nearstation) +"cpg" = ( +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) "cph" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/green/visible, @@ -45398,6 +47252,15 @@ }, /turf/open/floor/engine, /area/engine/engineering) +"cpA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) "cpC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/landmark/event_spawn, @@ -45789,6 +47652,31 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/closed/wall/r_wall, /area/engine/supermatter) +"cqG" = ( +/obj/structure/rack, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) "cqJ" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -46148,15 +48036,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"crS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) "crT" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -48033,6 +49912,21 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"cwM" = ( +/obj/structure/rack, +/obj/item/storage/box/teargas{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/handcuffs, +/obj/item/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/security/armory) "cwT" = ( /obj/machinery/camera{ c_tag = "Arrivals Escape Pod 2"; @@ -48090,6 +49984,16 @@ }, /turf/open/floor/plating, /area/security/main) +"cxJ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/security/processing) "cxN" = ( /obj/structure/cable{ icon_state = "1-2" @@ -48103,6 +50007,15 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"cxP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/security/processing) "cxW" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -49191,6 +51104,18 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"cBV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) "cBZ" = ( /obj/structure/table/wood, /obj/item/clothing/under/burial, @@ -49201,6 +51126,10 @@ /obj/item/clothing/under/burial, /turf/open/floor/plasteel/grimy, /area/chapel/office) +"cCa" = ( +/obj/item/clothing/head/hardhat, +/turf/open/floor/plating/airless, +/area/space/nearstation) "cCb" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -50814,13 +52743,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) -"cIV" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) "cMm" = ( /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, @@ -51038,17 +52960,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cQs" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 4"; - name = "Cell 4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -51328,21 +53239,6 @@ dir = 1 }, /area/engine/engineering) -"cTu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) "cTD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -51466,23 +53362,6 @@ "cVb" = ( /turf/closed/wall, /area/hallway/secondary/service) -"dcW" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "dfh" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -51497,16 +53376,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dhD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -51530,38 +53399,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"eet" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"efg" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"esl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"ete" = ( -/turf/closed/wall, -/area/maintenance/bar) -"evS" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -51570,41 +53407,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"eAL" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"eEc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -51616,12 +53418,6 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"eTp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "eVL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ @@ -51632,30 +53428,12 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"faB" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/security/warden"; - dir = 1; - name = "Brig Control APC"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/science/mixing) -"fhC" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/blood/old, -/obj/item/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) "flc" = ( /obj/machinery/bookbinder, /turf/open/floor/plasteel/white, @@ -51673,46 +53451,10 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"fpJ" = ( -/obj/structure/table, -/obj/item/storage/lockbox/loyalty, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"fqD" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 1"; - name = "Cell 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) "fsQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"fuL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"fDN" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"fEF" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/wood, -/area/maintenance/port/aft) "fGf" = ( /obj/machinery/smartfridge/disks, /turf/open/floor/plasteel/hydrofloor, @@ -51722,28 +53464,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fKO" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"fLS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"fYm" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) "gbq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -51775,31 +53495,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"gwo" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"gEX" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"gKP" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) "gLH" = ( /obj/machinery/door/airlock/external{ name = "External Access"; @@ -51810,22 +53505,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"gPJ" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side, -/area/ai_monitored/security/armory) -"gPL" = ( -/obj/structure/table/wood, -/obj/item/storage/box/drinkingglasses, -/turf/open/floor/wood, -/area/maintenance/bar) "gWd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -51843,10 +53522,6 @@ dir = 8 }, /area/medical/sleeper) -"gZR" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/wood, -/area/maintenance/port/aft) "hcE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, @@ -51864,14 +53539,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"hDJ" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access = null; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "hRa" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -51884,94 +53551,20 @@ /obj/item/stock_parts/cell/super, /turf/open/floor/plasteel/white, /area/science/circuit) -"hYC" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"ihC" = ( -/obj/structure/sign/poster/random{ - pixel_y = -32 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"ihS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) "ijc" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/dark, /area/engine/engineering) "ipA" = ( -/obj/machinery/droneDispenser, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"iqw" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"irr" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/bar) "itG" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) -"iuz" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/eastright{ - name = "Brig Desk"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ixw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/computer/security{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"iyF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) "iEJ" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One" @@ -51989,33 +53582,6 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) -"iTV" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"iYT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"iZV" = ( -/obj/structure/sign/poster/random{ - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "jbf" = ( /obj/structure/cable{ icon_state = "0-2" @@ -52028,14 +53594,6 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"jdX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -52054,11 +53612,6 @@ /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/office) -"jnM" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) "jrE" = ( /obj/machinery/rnd/production/protolathe/department/science, /obj/structure/sign/poster/official/random{ @@ -52066,10 +53619,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"jss" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) "jAD" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -52086,17 +53635,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"jDQ" = ( -/obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) "jHt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -52110,20 +53648,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"jHE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"jJa" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 2 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) "jMF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -52139,12 +53663,6 @@ /obj/item/stack/cable_coil, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"jNv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "jSO" = ( /obj/machinery/light{ dir = 4 @@ -52163,22 +53681,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"jXE" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"kcq" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/wood, -/area/maintenance/port/aft) "khb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -52216,27 +53718,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ksu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"kuo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "kzT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -52254,15 +53735,6 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"kPE" = ( -/obj/machinery/light, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/cryopod) "kQk" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -52271,17 +53743,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"kQp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) "kQq" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -52293,66 +53754,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"kXo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"lgR" = ( -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Transfer Room"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/security/execution/transfer) -"lla" = ( -/obj/structure/closet/secure_closet/contraband/armory, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"loR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"lsi" = ( -/obj/machinery/power/apc/highcap/five_k{ - dir = 4; - areastring = "/area/ai_monitored/security/armory"; - name = "Armory APC"; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/science/circuit) -"lIk" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "lMg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -52363,63 +53768,10 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/science/circuit) -"lTe" = ( -/obj/structure/table, -/obj/item/storage/toolbox/drone, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"lVH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"lYQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) "mjr" = ( /obj/machinery/vending/wardrobe/bar_wardrobe, /turf/open/floor/wood, /area/crew_quarters/bar) -"mlG" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"mqQ" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 2"; - name = "Cell 2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"muL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) "mBv" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52431,117 +53783,22 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"mCA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"mKs" = ( -/obj/item/restraints/handcuffs/fake, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, -/turf/open/floor/plating, -/area/maintenance/bar) "mNi" = ( /obj/machinery/light_switch{ pixel_x = -20 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"mQI" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 4; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/machinery/door/window/brigdoor/security/cell{ - dir = 8; - id = "Secure Cell"; - name = "Secure Cell" - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, -/area/security/execution/transfer) "mRe" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"mTf" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/shield/riot, -/obj/item/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"nbc" = ( -/obj/machinery/hydroponics/soil, -/obj/item/plant_analyzer, -/obj/machinery/camera{ - c_tag = "Prison Common Room"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel/green/side{ - dir = 5 - }, -/area/security/prison) "noK" = ( /obj/structure/girder, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"npy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/armory) -"nuw" = ( -/obj/structure/chair/stool, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"nuB" = ( -/turf/open/floor/wood, -/area/maintenance/bar) "nxv" = ( /obj/machinery/power/apc{ name = "Construction Area APC"; @@ -52557,18 +53814,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"nCJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Brig"; - req_access = null; - req_access_txt = "63; 42" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) "nGt" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52580,13 +53825,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"nMU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) "nRG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -52599,56 +53837,16 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"orD" = ( -/obj/structure/table/wood/poker, -/obj/item/coin/iron, -/turf/open/floor/wood, -/area/maintenance/bar) -"oux" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/dorms) -"oxm" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) "oDF" = ( /obj/machinery/light, /turf/open/floor/plating, /area/engine/engineering) -"oEE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "oHU" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel, /area/science/circuit) -"oKT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) "oUh" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -52656,27 +53854,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) -"piy" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"poo" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space/nearstation) -"pDm" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 2 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) "pHl" = ( /obj/structure/table, /obj/item/storage/box/beakers{ @@ -52722,17 +53899,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"qiF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"qla" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/security/armory) "qpv" = ( /obj/machinery/light{ dir = 4 @@ -52745,38 +53911,6 @@ /obj/structure/grille/broken, /turf/open/space/basic, /area/space/nearstation) -"qDl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"qQU" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"qVv" = ( -/obj/structure/chair/comfy/black, -/obj/effect/landmark/start/head_of_security, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"qZT" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/flasher{ - id = "brigentry"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"rax" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) "rcD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -52787,87 +53921,17 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"rmO" = ( -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) "rmX" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/beer, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"rpN" = ( -/obj/machinery/button/door{ - desc = "A remote control switch for the exit."; - id = "laborexit"; - name = "exit button"; - normaldoorcontrol = 1; - pixel_x = 26; - pixel_y = -6; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/processing) -"rtk" = ( -/turf/open/floor/plasteel/dark, -/area/security/processing) -"ryv" = ( -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"rAZ" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"rHF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) "rKP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plating, /area/construction) -"rPG" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Unisex Showers"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"rTI" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) "saK" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -52880,21 +53944,6 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"sfv" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"sgY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "slk" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -52907,38 +53956,12 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"ssv" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/bot_white, -/obj/item/gun/energy/pumpaction/blaster, -/obj/item/gun/energy/pumpaction/blaster, -/turf/open/floor/plasteel/dark, -/area/security/armory) "sxs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, /obj/item/shovel/spade, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"sCj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"sGR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "sLv" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -52958,11 +53981,6 @@ /obj/structure/chair/office/light, /turf/open/floor/plasteel/white, /area/science/circuit) -"sVi" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) "sWR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52986,80 +54004,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/hallway/secondary/service) -"tfB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"tra" = ( -/obj/machinery/computer/prisoner{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"tsC" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/obj/structure/bed, -/obj/item/bedsheet, -/obj/item/bedsheet, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"tvf" = ( -/obj/structure/table/wood/poker, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/maintenance/bar) -"txT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"tIp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, +"trb" = ( /obj/machinery/light{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"tLw" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) +/area/security/courtroom) "tMl" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/showroomfloor, @@ -53071,16 +54021,6 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"tTl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/execution/transfer) "tXL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -53113,34 +54053,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"uzg" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"uFV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"uGh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"uMu" = ( -/obj/effect/turf_decal/tile/green/corner, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) "uNu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53151,12 +54063,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"uOE" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) "uPT" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 2 @@ -53166,10 +54072,6 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"uQt" = ( -/obj/structure/sign/poster/official/no_erp, -/turf/closed/wall, -/area/maintenance/bar) "uVS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -53182,14 +54084,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"uZB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) "vbD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -53201,48 +54095,6 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"vdY" = ( -/obj/structure/falsewall, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"vmd" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"vml" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"vnP" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -53267,61 +54119,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) -"vCy" = ( -/obj/structure/window/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Cyborg Docking Port" - }, -/obj/machinery/recharge_station, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"vGV" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Dormitory Bathrooms APC"; - areastring = "/area/crew_quarters/toilet"; - pixel_x = 26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"vJv" = ( -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway East"; - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/light, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"vJW" = ( -/obj/machinery/camera{ - c_tag = "Brig Central"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 4"; - name = "Cell 4"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -53329,71 +54126,6 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) -"vVq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"vYy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"vYR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"vZp" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"wdF" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"wkw" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "wkN" = ( /turf/closed/wall, /area/science/circuit) @@ -53440,44 +54172,11 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wOx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - layer = 2.9; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/execution/transfer) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"wZF" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"xbq" = ( -/obj/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"xgi" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -53487,13 +54186,6 @@ }, /turf/open/floor/plating, /area/construction) -"xic" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/armory) "xiw" = ( /obj/machinery/door/airlock{ name = "Service Hall"; @@ -53505,29 +54197,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xpa" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt3"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"xDn" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -53539,1681 +54208,12 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xJF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - id_tag = "laborexit"; - name = "Labor Shuttle"; - req_access = null; - req_access_txt = "63" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"xVn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"ybU" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/circuit) -"ykv" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (EAST)"; - icon_state = "cryopod-open"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/cryopod) -"yLl" = ( -/obj/machinery/suit_storage_unit/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"yOg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/table, -/obj/item/storage/box/prisoner, -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"zaC" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"zcn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"zft" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"zmg" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/brig) -"znN" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"zxh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/dorms) -"zGy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 2; - name = "motion-sensitive security camera" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"zRm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"zSX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green/corner, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"AgS" = ( -/obj/machinery/vending/games{ - name = "\improper Good 'Clean' Fun" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ATB" = ( -/obj/structure/closet/secure_closet/lethalshots, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"AWY" = ( -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"BdE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"BlT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"BSi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"CaS" = ( -/obj/structure/table, -/obj/item/folder/red, -/obj/item/pen, -/obj/item/hand_labeler, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/light, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"Clf" = ( -/obj/machinery/button/door{ - id = "briggate"; - name = "Desk Shutters"; - pixel_x = -26; - pixel_y = 6; - req_access_txt = "0" - }, -/obj/machinery/button/flasher{ - id = "brigentry"; - pixel_x = -28; - pixel_y = -8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"CpD" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"CxU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"CJg" = ( -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"CQC" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"CQO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"CUx" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"Dhx" = ( -/obj/machinery/camera/motion{ - c_tag = "Non-Lethal Armory Motion Sensor"; - dir = 4 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"DHH" = ( -/obj/machinery/button/door{ - id = "Maintdorm1"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"DHO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"DJw" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"DRh" = ( -/obj/structure/table, -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"DVb" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/closet/secure_closet/brig{ - id = "Secure Cell"; - name = "Secure Cell Locker" - }, -/obj/effect/turf_decal/stripes/white/end{ - dir = 4 - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"EbP" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"Ecg" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"Eew" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA"; - location = "Security" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"Eko" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/bar"; - dir = 2; - name = "Maintenance Bar APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"Emp" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"Evc" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access = null; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"EOh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"EXC" = ( -/obj/structure/closet/l3closet/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"Fdq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 0; - id_tag = null; - locked = 0; - name = "Prisoner Transfer Centre"; - req_access = null; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"Fwc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"FJK" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"FQA" = ( -/obj/machinery/button/door{ - id = "seclobby"; - name = "Security Lobby Lockdown"; - pixel_x = -26; - pixel_y = 8; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "lobbyairlock"; - name = "Security Lobby Doors Control"; - normaldoorcontrol = 1; - pixel_x = -26; - pixel_y = -2; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"FRl" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/bar) -"FZW" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"Gbr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"GcW" = ( -/turf/closed/wall/r_wall, -/area/security/armory) -"GlY" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Brig Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 4 - }, -/area/security/brig) -"Gmd" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"Gnk" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"GpD" = ( -/obj/machinery/flasher{ - id = "brigentry"; - pixel_y = -28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"Gwy" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - id_tag = "Maintdorm2"; - req_access_txt = "0" - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"Hig" = ( -/obj/machinery/camera{ - c_tag = "Dormitory South"; - c_tag_order = 999; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/crew_quarters/dorms) -"HJB" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"HWl" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"HXb" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"IcK" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/door_timer{ - id = "Secure Cell"; - name = "Secure Cell"; - pixel_y = -32 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"Iiq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "prison release"; - name = "Labor Camp Shuttle Lockdown"; - pixel_y = -25; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing) -"IqS" = ( -/obj/structure/window/reinforced, -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/machinery/door/window/eastleft{ - name = "Secway Docking Port" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"IwC" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"IEd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"IOq" = ( -/obj/structure/rack, -/obj/item/storage/box/chemimp{ - pixel_x = 6 - }, -/obj/item/storage/box/trackimp{ - pixel_x = -3 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"IPJ" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"JbH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"Jcn" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"Jcy" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"Jfm" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"Jgm" = ( -/obj/effect/turf_decal/loading_area/white, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"Jnv" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"JAr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/corner, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"JOT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"Knt" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"Kpp" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod{ - tag = "icon-cryopod-open (WEST)"; - icon_state = "cryopod-open"; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"KrE" = ( -/obj/structure/rack, -/obj/item/soap/nanotrasen, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"KvX" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/warden, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = -27; - pixel_y = 8; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "seclobby"; - name = "Security Lobby Lockdown"; - pixel_x = -27; - pixel_y = -2; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"KHo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"KNi" = ( -/obj/machinery/door/window/southleft{ - name = "Armory"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"LcH" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/maintenance/bar) -"Lru" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"LAP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"LZL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"Moa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"MxR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"Mzd" = ( -/obj/machinery/door/poddoor/shutters{ - id = "lowsecarmory"; - name = "Non-Lethal Armoury Shutter" - }, -/obj/machinery/button/door{ - id = "lowsecarmory"; - name = "Non-Lethal Armory Shutters"; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/main) -"MIE" = ( -/obj/item/shard, -/obj/item/wirecutters, -/obj/item/wallframe/camera, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"MJI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"MLq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"MRu" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/closet/secure_closet/courtroom, -/obj/effect/decal/cleanable/cobweb, -/obj/item/gavelhammer, -/turf/open/floor/plasteel, -/area/security/courtroom) -"MRP" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"MWg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"Nau" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"NkF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"Nmb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"Nql" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"Nrx" = ( -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"NzL" = ( -/obj/machinery/door/window/westleft{ - base_state = "left"; - dir = 4; - icon_state = "left"; - name = "Brig Infirmary"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/whitered/side{ - dir = 4 - }, -/area/security/brig) -"NQr" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_x = -30 - }, -/obj/machinery/camera{ - c_tag = "Brig Control Room"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/warden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"NSC" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"Oly" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"Osi" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armory"; - name = "Armoury Shutter" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"OtF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) -"Ozq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"OBq" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"OSr" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - id_tag = "Maintdorm1"; - req_access_txt = "0" - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"PcH" = ( -/obj/structure/table/wood/poker, -/turf/open/floor/wood, -/area/maintenance/bar) -"Pem" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"Pez" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"PlJ" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"PzP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"PBc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"PEg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"PJW" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"PYb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"Qcw" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"Qge" = ( -/obj/machinery/button/door{ - id = "Maintdorm2"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"Qru" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "lobbyairlock"; - name = "Security Lobby"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"Qvz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"QDB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"QFx" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing) -"ReY" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"Rwb" = ( -/obj/machinery/computer/crew{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"RyJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"RRt" = ( -/obj/item/lighter/greyscale, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/bar) -"RWl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"SbB" = ( -/obj/machinery/camera{ - c_tag = "Brig Equipment Room"; - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"Sfp" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = null; - name = "Evidence Storage"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"SjU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"Sly" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"STm" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, -/area/maintenance/bar) -"SUw" = ( -/obj/structure/rack, -/obj/item/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/red/side, -/area/ai_monitored/security/armory) -"SWq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Security Office"; - req_access = null; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"Tqy" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security/glass{ - cyclelinkeddir = 1; - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"TIM" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/corner, -/area/security/brig) -"TZk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"UmK" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"UnJ" = ( -/obj/machinery/vending/kink, -/turf/open/floor/wood, -/area/maintenance/bar) -"UqV" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"Uua" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"Uuv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"UvC" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"USL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"UYY" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/cryopod"; - dir = 4; - name = "Cryogenics APC"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"Vup" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt1"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - req_access_txt = "0"; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"VLP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"VTn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "0" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"VZe" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armory"; - name = "Armoury Shutter" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"Wgg" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/obj/effect/decal/cleanable/semen{ - desc = "Blech."; - name = "dried semen" - }, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/bar) -"WwY" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"WDU" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"WMt" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"WQm" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/courtroom) -"WRc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "seclobby"; - name = "security shutters" - }, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"WSZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"WWX" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"WXW" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"Xfx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"Xiv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"XjL" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun, -/obj/item/gun/energy/e_gun{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - dir = 2 - }, -/area/ai_monitored/security/armory) -"XmQ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whitered/side{ - dir = 5 - }, -/area/security/brig) -"XqB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/bar) -"XwE" = ( -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"XBE" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/crowbar, -/obj/item/electropack/shockcollar, -/turf/open/floor/plating, -/area/maintenance/bar) -"XLV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"XMB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/rnd/production/protolathe/department/security, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"XPp" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"XRe" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/security/brig) -"XSH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"YcJ" = ( -/turf/open/floor/plasteel, -/area/security/execution/transfer) -"YjW" = ( -/obj/item/radio/intercom{ - freerange = 0; - frequency = 1459; - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/red, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"YpE" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"YNq" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"YNF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"YRL" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"YUq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/computer/cryopod{ - pixel_y = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"ZbZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"Zhd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/bar) -"Zvf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/brig) -"ZAl" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ZEU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ZHV" = ( -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 2 - }, -/area/security/brig) (1,1,1) = {" aaa @@ -71049,6 +70049,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -71056,8 +70058,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aaS aaa @@ -71306,6 +70306,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -71313,8 +70315,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aaS aaf @@ -71563,6 +70563,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -71570,8 +70572,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aaS aaa @@ -71820,6 +70820,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -71827,8 +70829,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aaS acy @@ -72077,6 +71077,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -72084,8 +71086,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aba aaa @@ -72334,6 +71334,8 @@ aaa aaa aaa aaa +aaa +aaa aag aaa aaa @@ -72341,8 +71343,6 @@ aaa aaa aaa aaa -aaa -aaa aaf aaS aaf @@ -72591,10 +71591,10 @@ aaa aaa aaa aaa +aaa +aaa aag aaa -aaa -aaa aoV bZm aoV @@ -72848,10 +71848,10 @@ aaa aaa aaa aaa +aaa +aaa aag aaa -aaa -aaa aoV bVz aaf @@ -73105,10 +72105,10 @@ aaa aaa aaa aaa +aaa +aaa aag aaa -aaa -aaa aag bVz aag @@ -73362,10 +72362,10 @@ aaa aaa aaa aaa -aag -gXs aaa aaa +aag +aaa aaf bVz aoV @@ -73618,10 +72618,10 @@ aaa aaa aaa aaa -gXs +aaa +aaa +aaa aag -gXs -gXs aaa aaf bVz @@ -73876,10 +72876,10 @@ aaa aaf aaf aaf +aaa +aaa aag -gXs -gXs -gXs +aaa bVx caf aoV @@ -74133,11 +73133,11 @@ aaa aaa aaa bCq +bCq +bCq bLv bCq -bCq -bCq -bCq +aoV cbj aoV aag @@ -74390,10 +73390,10 @@ aaa aaa aaa bCq -KrE +bJP +bCq +bSn bCq -bPS -gZR bCq cbj bLv @@ -74647,10 +73647,10 @@ aaa aaa aaa bCq -bHE -bCq -fLS -pDm +bPS +aad +bPS +bPS bCq cbk bLv @@ -74904,10 +73904,10 @@ aaa aaa aaa bLv -bHE -Gwy -Qge -tsC +bPR +bRc +bSo +bTs bCq bVy bLv @@ -75161,10 +74161,10 @@ aaa aaa aaa bCq -bHE -bCq -bCq -qQU +bPS +bRf +bSo +bTu bCq bVB bHE @@ -75418,10 +74418,10 @@ aaa aaa aaa bLv -bHE -bCq -bPS -kcq +bPT +bRe +bSo +bTt bCq bVA bWw @@ -75675,10 +74675,10 @@ aaa aaa aaa bCq -bHE +bPV bCq -fLS -jJa +bCq +bTw bCq bVD bWy @@ -75932,10 +74932,10 @@ bGi aoV aoV bCq +bPU bHE -OSr -DHH -fEF +bSp +bTv bCq bVC bWx @@ -76192,7 +75192,7 @@ bCq bPW bCq bCq -qQU +bTy bCq bVF bWA @@ -76706,20 +75706,20 @@ bCq bPY cOw bCq -ete -ete -ete -ete -ete -MRP -ete -ete -ete -ete -ete -ete -ete -ete +bCq +bCq +bCq +bCq +bCq +bYy +bCq +bCq +bLv +bCq +bCq +bCq +bCq +bLv bUs bLv aaa @@ -76963,20 +75963,20 @@ bCq bPX bRg bRg -ete -nuB -OBq -sGR -jDQ -nuB -IwC -ete -nuB -iZV -OBq -nuB -lIk -ete +bCq +bHE +bVG +bHE +bHE +bHE +bLv +aaf +aoV +aoV +aoV +aoV +aoV +bLv bUs bLv aaa @@ -77220,20 +76220,20 @@ bLv bQa bHE bHE -ete -Qvz -jHE -esl -Ozq -WSZ -Ozq -UmK -Ozq -Ozq -eTp -jnM -fDN -ete +bCq +bHE +bLv +bLv +bLv +bLv +bLv +aoV +aoV +aoV +aoV +aoV +aaf +bLv bUs bLv aaf @@ -77477,20 +76477,20 @@ bLv bPZ bHE bHE -ReY -CxU -WwY -WXW -FJK -CUx -qDl -rHF -qDl -Sly -Gnk -irr -nuB -ete +cTF +bHE +bLv +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +aoV +bLv bUs bLv aaa @@ -77734,20 +76734,20 @@ bLv bHE bHE bSs -ete -MJI -tLw -wdF -jss -tLw -nuB -uQt -HJB -irr -gEX -PcH -znN -ete +bCq +bHE +bLv +aoV +aoV +aoV +bcU +aaf +aaH +cCa +aoV +aoV +aoV +bLv bUs bLv aaa @@ -77991,20 +76991,20 @@ bCq bHE bRh bLu -ete -SjU -HWl -PzP -jdX -ihS -Eko -ete -nuB -uOE -gEX -PcH -nuw -ete +bCq +bHE +bLv +aaf +aaf +aoV +aoV +aaH +bdV +aaH +aaf +aaf +aaf +bLv bUs bLv aaf @@ -78169,10 +77169,10 @@ abc abc afu abc -abc -abc -abc -abc +aaa +aaa +aaa +aaa aaa aaa aaa @@ -78248,20 +77248,20 @@ bCq bOK bCq bCq -ete -VTn -Pem -Oly -LcH -gPL -ete -ete -nuB -irr -tvf -orD -irr -ete +bCq +bHE +bLv +aoV +aoV +aoV +aoV +cjn +bSu +aaH +aoV +aoV +aoV +bLv bUs bLv aaa @@ -78425,20 +77425,20 @@ abc aea aeH aft -vdY -Jgm -jXE -DJw abc -gXs +aaa +aaa +aaa +aaa +aaa aaa aaa aiU -QFx +aln aiU aaa aiU -QFx +anN aiU aaa aaa @@ -78506,19 +77506,19 @@ bHE bLv aaa bLv -lYQ -Pem -ete -ete -ete -ete -nuB -nuB -nuB -YpE -irr -ihC -ete +bHE +bLv +aoV +aoV +aoV +aoV +aoV +aaH +aaf +aoV +aoV +aoV +bLv bUs bLv aaa @@ -78684,18 +77684,18 @@ aeJ afw abc abc -FZW -IcK -abc -aaf aaf aaa +aaf +aaf +aaf +aaf aiU -rtk +alp aiU aaa aiU -rtk +alp aiU aaf aaf @@ -78763,19 +77763,19 @@ bHE bLv aaf bLv -lYQ -Pem -mKs -XBE -RRt -FRl -nuB -HJB -jnM -kuo -nuB -nuB -ete +bUt +bLv +aaf +aaf +aoV +aoV +aoV +aaH +aoV +aoV +aaf +aaf +bLv bUs bLv aaf @@ -78934,26 +77934,26 @@ abb abt aca acz -wOx +acX adC aeb aeI afv agf abc -DVb -mQI -abc +aaf +aaa +aaa aiT aiT aiV +akG +cxJ aiU -Iiq -aiU -aiT -aiU -Iiq +amK aiU +cxP +aoq aiV aiT aiT @@ -79020,19 +78020,19 @@ bLv bCq aaa bLv -lYQ -Pem -MIE -Wgg -fhC -ete -STm -vnP -XPp -Ecg -AgS -UnJ -ete +bUs +bLv +aoV +aoV +aoV +aoV +aoV +aaf +aoV +aoV +aoV +aoV +bCq bUs bCq aaa @@ -79191,17 +78191,17 @@ abe abw acc acB -tTl +acZ adE aee aeL afy agh abc -YcJ -YcJ -YcJ -aiV +aaf +aaa +aaf +aiT ajs akb akI @@ -79277,19 +78277,19 @@ bLv aaa aaa bTB -XqB -mCA -OtF -OtF -OtF -OtF -OtF -OtF -OtF -OtF -OtF -OtF -Zhd +bUv +bES +bES +bES +bES +bGp +bGp +bGp +bGp +bES +bES +bES +car bUs bCq bCq @@ -79448,17 +78448,17 @@ abd abv acb acA -lgR +acI adD aed aeK afx agg abc -YcJ -iTV -YcJ -aiV +aaf +aaa +aaa +aiU ajr aka akH @@ -79534,7 +78534,7 @@ bLv bLv bLv bTA -iqw +bUu bLw bLw bLw @@ -79708,14 +78708,14 @@ aby aby aby aeg -Fdq +aeN afA afA afA -YcJ -YcJ -YcJ -aiV +aaf +aaa +aaa +aiU aju akd akK @@ -79973,13 +78973,13 @@ aai aai aai aai -yOg +ajt akc akJ alr amd amL -rpN +anu alq aot apc @@ -80231,13 +79231,13 @@ agK aiB aai ajw -vYR +akf aiX aiX aiX aiX aiV -xJF +anP aiT cCi cCi @@ -80475,13 +79475,13 @@ aat abh aat acd -xpa +abK acY adG aeh aeO afI -hDJ +agl agH ags ags @@ -80726,7 +79726,7 @@ aak aap aay aaD -aau +aat aat aat aat @@ -80746,7 +79746,7 @@ aho acd ajy akh -Sfp +afK ajc afM afN @@ -81257,7 +80257,7 @@ agK agK ail aiE -Evc +aiW ajA akj agj @@ -81265,7 +80265,7 @@ agj agj aiX aiX -mlG +anQ aov cCi apU @@ -81494,7 +80494,7 @@ aaa aag aaf aaj -nbc +aaq aay aaE aaJ @@ -81503,7 +80503,7 @@ aaV aat aat acd -Lru +abL adb acd ael @@ -81516,13 +80516,13 @@ agj agj agj ajz -cTu -PEg -aly -AWY -Jcn -aiX +aki +akM +alv +amf +amQ anw +anz aov cCi arT @@ -81773,13 +80773,13 @@ ahW aiD agj auj -ZEU -fqD -hYC -qiF -amg -aiX +akl +akO +alx +alx +amR anw +anz aox cCi cCi @@ -82030,13 +81030,13 @@ ain aid agj aiZ -ZHV -akQ -agj -agj -agj -aiX -kXo +akk +akN +alw +amg +amR +anw +anR aow apg aqZ @@ -82286,14 +81286,14 @@ ahP ahP aiF agj -ajD -akm -PYb -aly -ryv -Jcn -aiX -anw +aja +ajG +akQ +agj +agj +amS +anx +anz aov aph aph @@ -82522,35 +81522,35 @@ aaa aag aaf aai -ZAl +aau aaA -Kpp +aaG aaK aaP aaX aat aat acd -Vup +acD acY adG aeq aeV acd agj -XmQ -NzL -GlY +ahm +ahD +aiw aiO agj -aja -ZEU -mqQ -hYC -qiF -ami -aiX +ajD +akm +akP +aly +amh +amR anw +anz aov aph aob @@ -82786,7 +81786,7 @@ aai aai aai abj -rPG +abG acd acd acd @@ -82794,20 +81794,20 @@ acd aeP afC agk -HXb +agF agP agP agP agP aiz -zmg -TIM -akQ -agj -agj -agj -aiX +ajg +akl +akR +alx +alx +amR anw +anz aov aph aoc @@ -83039,12 +82039,12 @@ aaa aaa aaf aaf -Emp +aaa aaf aai abi abF -cIV +ach acK adf acd @@ -83058,13 +82058,13 @@ agO agO aiy ajb -fuL -kQp -Nrx -rmO -Jcn -aiX +ajF +akN +alw +ami +amR anw +anz aov api ata @@ -83296,8 +82296,8 @@ aaf aaf aaf aaf -aaS aaf +aaR aaZ aaZ aaZ @@ -83312,16 +82312,16 @@ agn agR agn agR -eEc -aiX -VLP -akv -rTI -uGh -aww -amk -aiX -eet +agn +ajc +ajI +ako +akQ +agj +agj +amS +any +anz aov aph aqb @@ -83553,32 +82553,32 @@ aaa aaa aaa aaf -Emp +aaa +aaf +aaf +aaT aaf -GcW -qla -Dhx -EbP aaZ -fpJ -ATB -lla -YRL +abm +cpg +acv +adi +adi aaZ -NQr -Gbr -tra -ixw -lVH -piy -ajI -oxm -akQ -agj -agj -agj -aiX +aeW +agQ +ahv +ahQ +aiI +aiH +ajB +akm +akP +aly +amj +amR anw +anz aov aph aph @@ -83810,32 +82810,32 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -qla -QDB -EbP +aaf +aaT +aaa aaZ -MLq -cxA +abH +acl +ajC acL -lTe +adi aaZ -faB -Uua -CQC -NSC -KvX -WWX -VLP -akm -oKT -aly -xDn -Jcn -aiX +agp +agT +ahx +ahS +aiK +ajc +ajI +akl +akT +aww +alx +amR anw +anz aov apk anw @@ -84067,41 +83067,41 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -qla -fKO -tfB +aaf +abY +aaa aaZ -xgi +abn +ack adk adK -zaC -dhD -agt +cqG +aeX +ago agS agQ -agt -Rwb -akV +ahR +aiJ +ajc ajI -ZEU -cQs -hYC -qiF -amp -aiX +akk +akS +alw +amk +amR +anw anS -Eew -JbH -oEE -oEE -oEE -oEE -oEE -oEE -JOT +aoy +apj +anz +anz +anz +anz +anz +anz +awk axB anz anz @@ -84324,32 +83324,32 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -qla -QDB -yLl +aaf +aaT +aaa aaZ -zGy -XjL -Pez -IOq -CQO -PBc +abJ +ack +acM +adQ +cwM +aeZ +agr agU ahy -LAP -xbq -Gmd -KHo -vJW +ahX +aiL +ajc +ajI +akq akQ agj agj -agj -aiX -anA +amS +anx +anz aoz apm aqd @@ -84581,33 +83581,33 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -DRh -xic -yLl +aaf +aaT +aaa aaZ -YNq +abI +ack coS aet cxA -KNi +aeY agt agt -vVq -zcn -agt -WDU -vYy -xVn +ahz +aie +aiN +ajc +ajI +akp akU -Clf +alz aml -FQA -aiX -Qru -iYT +amT +anw +anz +aoz apl aqc aqc @@ -84838,33 +83838,33 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -ssv -Fwc -XLV -BlT -wkw -eAL -sgY -Moa -tIp +aaf +abY +aaa +aaZ +abQ +ack +adj +arc +blT +agq cml agV cxk aig -CaS -aiX -Zvf -ZbZ -Nql +aiM +ajc +ajI +akp +akV alB amn -UqV -dcW -aiG -Knt +amV +anw +anz +aoz aod aqf ahT @@ -84878,9 +83878,9 @@ anF anF anF anF -UYY -Xiv -gwo +anF +anF +anF aoa aJu aKF @@ -85095,33 +84095,33 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -vmd -MWg -IEd -VZe -EOh +aaf +abY +aaa +aaZ +abN +ack +bkA acF -acF -gPJ +aes avB amN agt -ahB -Uuv -agn -aiX -ksu -muL -amS +awN +aHp +aIF +ajc +ajI +akp +akQ alA -iuz amm -zRm -vZp -vZp +amU +anw +anT +aoA apn aqe arf @@ -85133,11 +84133,11 @@ arf arf arf arf -rAZ -rAZ -rAZ -rAZ -jNv +arf +arf +arf +arf +anF ahn aJn aJn @@ -85352,33 +84352,33 @@ aaa aaa aaa aaf -Emp +aaa aaf -GcW -mTf -npy -BdE -Osi -lsi -Jnv -RyJ -SUw +aaf +aaT +aaf +aaZ +aci +acm +cpA +adg +aeu alt agu agX ahB aij agn -UvC -sCj -uZB -PlJ -UvC -Jfm -Jfm -Jfm -Jfm -CpD +aje +ajJ +akr +akX +alC +alC +amX +anz +anz +aoB aod aqe arf @@ -85390,11 +84390,11 @@ atf arf aqa atf -rAZ -ykv -kPE -rAZ -jNv +arf +aqa +atf +arf +anF ahn aaa aJn @@ -85609,12 +84609,12 @@ aaa aaa aaf aaf +aaf +aaf +aaa adR -adR -adR -adR -Mzd -avB +abo +aaZ aaZ aaZ acT @@ -85626,18 +84626,18 @@ agW ahE aii agn -Xfx -ajb -NkF -PlJ -ajc -alC -Jfm -Jfm -loR -GpD -LZL -nMU +ajd +ajI +ahY +akW +aiG +amo +amW +anz +anz +aoz +aod +aqe arf apY ate @@ -85647,11 +84647,11 @@ ath arf apY ath -rAZ -YUq -zSX -rAZ -jNv +arf +apY +ate +arf +anF ahn aaa aJn @@ -85866,33 +84866,33 @@ aaa aaa aaa aaa +aaf +aaf +aaa abp -IqS -IqS -vCy -abO -abO -SbB -abO +abP +aco +acO +abl abO abO afc -abo +afQ agw agY ahA ahZ adR aiQ -VLP -txT -Tqy -sVi -ajc -Knt -aiG -CJg -vJv +ajI +akt +akQ +agj +agj +aiX +anB +anz +aoD aod aqe arf @@ -85904,11 +84904,11 @@ ath arf ayV ath -rAZ -crS -uMu -rAZ -jNv +arf +aCd +ath +arf +anF ahn aJw aJw @@ -86123,6 +85123,9 @@ aaa aaa aaa aaa +aaa +aaf +aaa abo abO abO @@ -86130,26 +85133,23 @@ abO abO abO abO -abO -abO -abO afb abo afg ahb ahG aik -SWq +cBV ajf ajK -DHO -Qcw -IPJ -ajc -XwE -alC -CJg -Jcy +aks +akY +alx +amp +aiX +anA +anz +aoC aod aqe arf @@ -86161,11 +85161,11 @@ awo arf asd aAb -rAZ -crS -JAr -rAZ -evS +arf +asd +aDK +arf +aoa ahn aJv aKG @@ -86380,15 +85380,15 @@ aaa aaa aaa aaa +aaa +aaf +aaa abp abO -abO -wZF -wZF -wZF -wZF -wZF -abO +acq +acq +acq +acq aew afe afS @@ -86397,17 +85397,17 @@ aha ahC aia aiP -YNF -XSH -MxR +aiR +ajB +akv +ala +akz +alf aiX -uzg -USL -uFV -uFV -Nmb -Nau -efg +anA +anz +aoF +apo aqh arh asg @@ -86421,8 +85421,8 @@ atj aAX azc atj -Hig -oux +aFe +aul aHT aJy aJy @@ -86637,17 +85637,17 @@ aaa aaa aaa aaf +aaf +aaf +aaf abo abO -abO -abO -abO acp acP acP acP aev -YjW +afd afR agx agZ @@ -86656,14 +85656,14 @@ aim adR aiG ajL -RWl +aku +akZ +alE +amq aiX -WMt -qZT -vml -PJW -TZk -XRe +anA +anz +aoE aod aqg aun @@ -86678,7 +85678,7 @@ azT auk auk aDG -zxh +aFd auk aHH aJg @@ -86894,15 +85894,15 @@ aaa aaa aaa aaa +aaa +aaa +aaf abp -aco -EXC -rax -fYm -rax -rax -rax -abl +abR +abP +abP +abP +abP abp abp abp @@ -86912,15 +85912,15 @@ ahF aip adR aiX -nCJ +ajN akx aiX aiX aiX aiX -sfv -WRc -sfv +anC +anU +anC cSA aqe arf @@ -86935,7 +85935,7 @@ azV aAh aAh aFg -gKP +aFh aAh aAh aAh @@ -87151,9 +86151,9 @@ aaa aaa aaf aaf -abp -abp -abp +aaf +aaf +aaf abq abq abq @@ -87168,10 +86168,10 @@ ahb ahF clI abp -MRu +ajh ajM akw -WQm +alb alG amr amY @@ -87192,7 +86192,7 @@ aAd aAh aCm aDL -iyF +aFf aGk aHU aJz @@ -87423,7 +86423,7 @@ afV agB ahd ahI -XMB +clS abp ajj ajP @@ -87449,7 +86449,7 @@ aAg aAh aDO aDQ -vGV +aFi aGl aBy aBy @@ -87670,7 +86670,7 @@ aaf aaf abr abS -qVv +acr acQ adn adM @@ -87933,7 +86933,7 @@ adp adP aey afj -BSi +afX agC ahf ahK @@ -88970,7 +87970,7 @@ abp ajp ajU ajn -ajn +trb ajn amr ajp @@ -89218,7 +88218,7 @@ aaf abo aeA afl -zft +aga abp ahj abp @@ -89981,8 +88981,8 @@ aaf aag aag aag -poo -poo +aaa +aaa aag abp abp @@ -101566,8 +100566,8 @@ aaf aaf aaf aaf -alP -ybU +aaf +aaf alP anf alP @@ -101823,8 +100823,8 @@ aaa aaa aaa aaa -alP -alP +aaa +aaf alP anf alP diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index e22386b9f8..af3cf7bade 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -92691,7 +92691,6 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "dQF" = ( -/obj/machinery/droneDispenser, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f2b63a49f3..48f741a178 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aaa" = ( /turf/open/space/basic, /area/space) @@ -897,6 +897,13 @@ }, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"acx" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acy" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two" @@ -1042,6 +1049,15 @@ /obj/machinery/light, /turf/open/floor/plasteel/floorgrime, /area/security/prison) +"acM" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) "acN" = ( /obj/structure/table/glass, /obj/item/reagent_containers/syringe, @@ -6013,6 +6029,11 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"amU" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/port) "amW" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -21724,6 +21745,18 @@ "aUM" = ( /turf/closed/wall, /area/crew_quarters/locker) +"aUN" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUO" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) +"aUP" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/locker) "aUQ" = ( /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) @@ -25533,6 +25566,12 @@ dir = 4 }, /area/security/checkpoint/engineering) +"bcO" = ( +/obj/structure/easel, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/starboard/fore) "bcP" = ( /obj/machinery/light{ dir = 8 @@ -54314,8 +54353,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cmb" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo"; +/obj/machinery/chem_master{ pixel_x = -4 }, /turf/open/floor/plating, @@ -71412,6 +71450,10 @@ /obj/structure/easel, /turf/open/floor/plating, /area/maintenance/port) +"dbl" = ( +/obj/structure/easel, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "dbm" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, @@ -76191,14 +76233,6 @@ }, /turf/open/floor/plating, /area/security/prison) -"hAJ" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/cryopod, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) "ioI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -76447,10 +76481,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"mEW" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) "nnK" = ( /obj/item/stack/sheet/glass/fifty, /obj/item/paper_bin, @@ -76711,12 +76741,6 @@ }, /turf/open/floor/wood, /area/library) -"rhY" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/port) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -76930,15 +76954,6 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) -"vlg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/side, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) "vlx" = ( /obj/machinery/vr_sleeper, /turf/open/floor/plasteel/neutral/corner{ @@ -76994,7 +77009,6 @@ /turf/closed/wall, /area/science/circuit) "wOE" = ( -/obj/machinery/droneDispenser, /turf/open/floor/plating, /area/maintenance/aft) "wPk" = ( @@ -77083,79 +77097,6 @@ /obj/machinery/light, /turf/open/floor/plasteel/white, /area/science/circuit) -"AIY" = ( -/obj/machinery/computer/cryopod{ - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/box/white/corners, -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"FiY" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/fore) -"KHe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) -"RbF" = ( -/obj/machinery/vending/kink, -/obj/machinery/vending/kink, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"SuJ" = ( -/obj/machinery/cryopod, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"WoM" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/locker) -"Xvm" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/computer/cryopod{ - pixel_x = 30; - pixel_y = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"XMx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/corner, -/turf/open/floor/plasteel/neutral/corner{ - dir = 2 - }, -/area/crew_quarters/locker) (1,1,1) = {" aaa @@ -95026,7 +94967,7 @@ bHQ bvW bLg bLf -rhY +amU bPL alK bOf @@ -101641,8 +101582,8 @@ aay abs abK ace -hAJ -Xvm +acx +acM abe ady adT @@ -110487,7 +110428,7 @@ cGl cHg cIh dAh -RbF +dbl dyc dxQ dvY @@ -110675,8 +110616,8 @@ aOx aPJ aQT aOu -XMx -WoM +aTt +aUN aUM aYc aTC @@ -110932,8 +110873,8 @@ aOy aOt aQU aSg -vlg -AIY +aTt +aUO aUM boW aZt @@ -111189,8 +111130,8 @@ aOz aOu aQV aOv -KHe -SuJ +aTt +aUP aUM dCD aZt @@ -112475,7 +112416,7 @@ aPL aQZ aSh aTA -mEW +aUT aUM aYh aCM @@ -118361,7 +118302,7 @@ aaf aaf ack dni -FiY +bcO dnS dnS dnS diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 783b752b39..465d9ca072 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aaa" = ( /turf/open/space/basic, /area/space) @@ -7629,7 +7629,6 @@ }, /area/teleporter) "aoJ" = ( -/obj/machinery/droneDispenser, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -14629,6 +14628,18 @@ dir = 5 }, /area/crew_quarters/dorms) +"aEL" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/dorms) "aEM" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/bot, @@ -35974,16 +35985,6 @@ dir = 5 }, /area/engine/atmos) -"ZwS" = ( -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/dorms) (1,1,1) = {" aaa @@ -72590,7 +72591,7 @@ aAF aBO aCN aDD -ZwS +aEL awQ aGz aGM diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 27a5b55895..3a75a0b048 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aaa" = ( /turf/open/space/basic, /area/space) @@ -3054,6 +3054,10 @@ }, /turf/open/space, /area/space/nearstation) +"ajB" = ( +/obj/item/storage/box/mousetraps, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "ajC" = ( /obj/structure/chair/stool, /turf/open/floor/plating, @@ -3448,6 +3452,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"aks" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "akt" = ( /obj/structure/bed, /obj/item/bedsheet, @@ -10349,6 +10357,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"aBK" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/crowbar, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "aBL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -10422,6 +10438,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"aBT" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/arrival, +/area/crew_quarters/fitness/recreation) "aBU" = ( /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/arrival, @@ -12047,6 +12067,14 @@ /obj/machinery/vending/snack, /turf/open/floor/plasteel, /area/hallway/primary/central) +"aFD" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/taperecorder, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "aFE" = ( /obj/structure/cable{ icon_state = "1-2" @@ -12420,6 +12448,13 @@ /obj/machinery/vending/cigarette, /turf/open/floor/plasteel, /area/hallway/primary/central) +"aGA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/emergency/starboard) "aGB" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -21173,7 +21208,6 @@ }, /area/maintenance/department/cargo) "bdA" = ( -/obj/machinery/droneDispenser, /turf/open/floor/plating, /area/maintenance/department/cargo) "bdB" = ( @@ -33115,6 +33149,10 @@ }, /turf/open/space/basic, /area/space/nearstation) +"bHP" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/engine) "bHQ" = ( /turf/open/floor/plasteel/dark, /area/maintenance/department/engine) @@ -43077,6 +43115,19 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) +"cjO" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/item/stack/sheet/glass/fifty{ + layer = 4 + }, +/obj/item/stack/sheet/metal{ + amount = 20; + layer = 3.1 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cjP" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-22" @@ -47905,7 +47956,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/department/cargo) @@ -48014,16 +48064,6 @@ }, /turf/open/floor/plating, /area/engine/engineering) -"eWf" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/cryopod, -/obj/machinery/computer/cryopod{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) "eWi" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/dark, @@ -50991,11 +51031,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/lawoffice) -"nSH" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/dark, -/area/maintenance/department/engine) "nVU" = ( /obj/item/twohanded/spear, /turf/open/floor/plating, @@ -51957,15 +51992,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/heads/chief) -"qHi" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/crowbar, -/obj/item/taperecorder, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "qHI" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -52354,7 +52380,7 @@ width = 9 }, /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "rKr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -53135,7 +53161,7 @@ /area/construction/mining/aux_base) "uoS" = ( /turf/open/floor/plating, -/area/shuttle/auxillary_base) +/area/construction/mining/aux_base) "uqJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -54452,65 +54478,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"yzM" = ( -/obj/machinery/light/small, -/obj/item/storage/box/mousetraps, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"Drm" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/green/corner, -/area/hallway/primary/central) -"EjC" = ( -/obj/machinery/cryopod, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"JAb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/taperecorder, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"KhG" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"QYc" = ( -/obj/machinery/vending/kink, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"RST" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/green/side{ - dir = 4 - }, -/area/hallway/primary/central) -"Xmf" = ( -/obj/item/stack/sheet/metal{ - amount = 20; - layer = 3.1 - }, -/obj/item/stack/sheet/glass/fifty{ - layer = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"YSB" = ( -/obj/machinery/vending/kink, -/turf/closed/wall, -/area/storage/emergency/starboard) -"Zud" = ( -/obj/machinery/vending/kink, -/obj/machinery/vending/kink, -/turf/open/floor/plasteel/arrival, -/area/crew_quarters/fitness/recreation) (1,1,1) = {" aaa @@ -70775,7 +70742,7 @@ aaa aaa ait aiV -KhG +ajB akr aiu ait @@ -71149,7 +71116,7 @@ cvw cvI ckQ clf -Xmf +cwA cwA cwS cjm @@ -71290,7 +71257,7 @@ aaa aiu aiX ajD -yzM +aks aiu ait ait @@ -71405,7 +71372,7 @@ cgG cfn ciR cwa -QYc +cjO ckk ckC ckR @@ -75731,7 +75698,7 @@ bDg bEj bFF bva -nSH +bHP bJb bJb bJb @@ -90583,12 +90550,12 @@ awd abI awd aAM -qHi +aBK aDa aEb -Drm -RST -RST +aAM +aFD +aDa aAN aIf aJe @@ -90844,8 +90811,8 @@ awd awd aAN aAN -eWf -EjC +awd +awd aAN aIg aJf @@ -91100,10 +91067,10 @@ aaa aaa aaa aaa -aAN -aAN -aAN -aAN +aaa +aaa +aaa +awd aHN aIU aJI @@ -92387,7 +92354,7 @@ aDd apX aEU aFE -JAb +aGA aHn aIi aJi @@ -92901,7 +92868,7 @@ com apX aET lKL -YSB +aET aET aHN aIU @@ -95209,7 +95176,7 @@ axw ayu azC axw -Zud +aBT atn aEf aFc diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 02c20e6896..9a03ede62b 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2162,6 +2162,9 @@ /obj/structure/kitchenspike, /turf/open/floor/plasteel/dark, /area/ctf) +"gu" = ( +/turf/closed/indestructible/splashscreen, +/area/start) "gv" = ( /turf/open/floor/plasteel/darkblue/side{ dir = 10 @@ -13483,9 +13486,6 @@ }, /turf/open/floor/wood, /area/centcom/holding) -"NE" = ( -/turf/closed/indestructible/splashscreen, -/area/space) "NF" = ( /obj/structure/ladder/unbreakable/binary, /turf/open/indestructible/airblock, @@ -13956,9 +13956,6 @@ }, /turf/open/floor/plasteel, /area/centcom/evac) -"Wd" = ( -/turf/open/space/basic, -/area/start) "WJ" = ( /obj/machinery/door/airlock/centcom{ name = "Thunderdome Administration"; @@ -14267,21 +14264,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -NE +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +gu aa aa aa @@ -14524,21 +14521,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -14781,21 +14778,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -15052,7 +15049,7 @@ fX fX fX fX -Wd +fX aa aa aa @@ -16073,7 +16070,7 @@ fX fX fX fX -fX +fY fX fX fX @@ -16844,7 +16841,7 @@ fX fX fX fX -fY +fX fX fX fX @@ -18122,21 +18119,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -18379,21 +18376,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -18636,21 +18633,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -18893,21 +18890,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -19150,21 +19147,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -19407,21 +19404,21 @@ aa aa aa aa -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa From 6646ef854f3f3480cf100d465908d82ca3b7b786 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 06:13:29 -0500 Subject: [PATCH 041/205] Automatic changelog generation for PR #6964 [ci skip] --- html/changelogs/AutoChangeLog-pr-6964.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6964.yml diff --git a/html/changelogs/AutoChangeLog-pr-6964.yml b/html/changelogs/AutoChangeLog-pr-6964.yml new file mode 100644 index 0000000000..9b57865956 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6964.yml @@ -0,0 +1,4 @@ +author: "Cruix" +delete-after: True +changes: + - rscadd: "AIs now have an experimental multi-camera mode that allows them to view up to six map areas at the same time, accessible through two new buttons on their HUD." From d2fd75caa0361244f89f4d9d6051f803083ccc5c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:20:44 -0500 Subject: [PATCH 042/205] Automatic changelog generation for PR #6958 [ci skip] --- html/changelogs/AutoChangeLog-pr-6958.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6958.yml diff --git a/html/changelogs/AutoChangeLog-pr-6958.yml b/html/changelogs/AutoChangeLog-pr-6958.yml new file mode 100644 index 0000000000..e59e3a143e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6958.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Moving diagonally past delivery chutes, transit tube pods, &c. no longer causes your camera to be stuck on them." From f51552c68acc1e64c06c872a28b9b36161daca27 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Jun 2018 07:21:53 -0500 Subject: [PATCH 043/205] Update game_options.dm --- code/controllers/configuration/entries/game_options.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 6a2c3e0f59..84ba01fa7b 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -288,8 +288,6 @@ /datum/config_entry/flag/shift_time_realtime -<<<<<<< HEAD - //Cit changes - Adds config options for crew objectives and miscreants /datum/config_entry/flag/allow_crew_objectives @@ -306,8 +304,7 @@ /datum/config_entry/number/nightshift_finish config_entry_value = 6 //End of Cit changes -======= + /datum/config_entry/number/monkeycap config_entry_value = 64 min_val = 0 ->>>>>>> f988a13... Adds config for monkey cap (#38165) From 0ad56788945d30f0b711e7e76c7ee2f0fbfae3b2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:22:23 -0500 Subject: [PATCH 044/205] Automatic changelog generation for PR #6966 [ci skip] --- html/changelogs/AutoChangeLog-pr-6966.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6966.yml diff --git a/html/changelogs/AutoChangeLog-pr-6966.yml b/html/changelogs/AutoChangeLog-pr-6966.yml new file mode 100644 index 0000000000..e727e153fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6966.yml @@ -0,0 +1,4 @@ +author: "Dax Dupont" +delete-after: True +changes: + - bugfix: "Fixed rpeds throwing stock part rating related runtimes." From ede4c78bcdd0b8583239dd9cfe1e283823c6f040 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:23:45 -0500 Subject: [PATCH 045/205] Automatic changelog generation for PR #6963 [ci skip] --- html/changelogs/AutoChangeLog-pr-6963.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6963.yml diff --git a/html/changelogs/AutoChangeLog-pr-6963.yml b/html/changelogs/AutoChangeLog-pr-6963.yml new file mode 100644 index 0000000000..ee8f0dadc9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6963.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Fixes cyborgs not being able to use two-handed modules while other modules are equipped." From ef81bb2f6d61e8b7621f095d6011c3327fc3b44d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:28:10 -0500 Subject: [PATCH 046/205] Automatic changelog generation for PR #6969 [ci skip] --- html/changelogs/AutoChangeLog-pr-6969.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6969.yml diff --git a/html/changelogs/AutoChangeLog-pr-6969.yml b/html/changelogs/AutoChangeLog-pr-6969.yml new file mode 100644 index 0000000000..770043e579 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6969.yml @@ -0,0 +1,4 @@ +author: "Nichlas0010" +delete-after: True +changes: + - bugfix: "You can no longer use a soapstone infinitely" From 7c597ea289355afb84f84b44009e1dd3621b3fe5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:28:58 -0500 Subject: [PATCH 047/205] Automatic changelog generation for PR #6972 [ci skip] --- html/changelogs/AutoChangeLog-pr-6972.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6972.yml diff --git a/html/changelogs/AutoChangeLog-pr-6972.yml b/html/changelogs/AutoChangeLog-pr-6972.yml new file mode 100644 index 0000000000..a9ffa8bf78 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6972.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "The overlay effects of cult flooring are now on the floor plane, fixing their odd ambient occlusion appearance." From df08e83215f80ef568162ccfc932a1034813a231 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:29:19 -0500 Subject: [PATCH 048/205] Automatic changelog generation for PR #6973 [ci skip] --- html/changelogs/AutoChangeLog-pr-6973.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6973.yml diff --git a/html/changelogs/AutoChangeLog-pr-6973.yml b/html/changelogs/AutoChangeLog-pr-6973.yml new file mode 100644 index 0000000000..04a93d79ff --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6973.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Cloning no longer breaks a character's connection to their family heirloom." From 89deed21ec1186230356e11cd73fd366cbb958ab Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:29:40 -0500 Subject: [PATCH 049/205] Automatic changelog generation for PR #6974 [ci skip] --- html/changelogs/AutoChangeLog-pr-6974.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6974.yml diff --git a/html/changelogs/AutoChangeLog-pr-6974.yml b/html/changelogs/AutoChangeLog-pr-6974.yml new file mode 100644 index 0000000000..9b295ea168 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6974.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Beam rifle tracers no longer fall into chasms." From dbf0329b30743ad96c2aa5b0db5c1961c94f1c11 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:31:03 -0500 Subject: [PATCH 050/205] Automatic changelog generation for PR #6975 [ci skip] --- html/changelogs/AutoChangeLog-pr-6975.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6975.yml diff --git a/html/changelogs/AutoChangeLog-pr-6975.yml b/html/changelogs/AutoChangeLog-pr-6975.yml new file mode 100644 index 0000000000..298fdf4cad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6975.yml @@ -0,0 +1,8 @@ +author: "Big Tobacco" +delete-after: True +changes: + - rscadd: "Cheap lighters now come in four different shapes and Zippos can have one of four different designs, collect them all and improve our sales!" + - imageadd: "All existing lighter sprites have been given a face-lift and the flames are now subtly animated." + - tweak: "Cheap lighters now use a fixed list of 16 colors to pick from instead of using totally randomized colors." + - imageadd: "Cigar cases have been tweaked to be a bit smaller and to have a modified design." + - imageadd: "Cohiba Robusto and Havanan cigars now use separate case sprites from the generic premium cigar cases." From 4ccdf2d72d7c424fb7346b3cdfb4fb5c39daa8b3 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:31:55 -0500 Subject: [PATCH 051/205] Automatic changelog generation for PR #6976 [ci skip] --- html/changelogs/AutoChangeLog-pr-6976.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6976.yml diff --git a/html/changelogs/AutoChangeLog-pr-6976.yml b/html/changelogs/AutoChangeLog-pr-6976.yml new file mode 100644 index 0000000000..eda65aebd0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6976.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Vomiting on the same tile a second time no deletes the vomited reagents." From 2f602f173e725b73c1997fb3beade1f6b7d846e5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 2 Jun 2018 07:32:33 -0500 Subject: [PATCH 052/205] Automatic changelog generation for PR #6978 [ci skip] --- html/changelogs/AutoChangeLog-pr-6978.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6978.yml diff --git a/html/changelogs/AutoChangeLog-pr-6978.yml b/html/changelogs/AutoChangeLog-pr-6978.yml new file mode 100644 index 0000000000..79a17c8c34 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6978.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "fixed the clockwork helmet not dropping to ground when used by non-clock cultists" From a3febc120d65566d52f22c5830b644abee9c5bdd Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Jun 2018 07:33:31 -0500 Subject: [PATCH 053/205] Update airlock_control.dm --- code/game/machinery/airlock_control.dm | 158 +------------------------ 1 file changed, 1 insertion(+), 157 deletions(-) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index dce0b408f0..6b00fc3593 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,158 +1,3 @@ -<<<<<<< HEAD -#define AIRLOCK_CONTROL_RANGE 5 - -// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) -/obj/machinery/door/airlock - var/id_tag - var/frequency - var/datum/radio_frequency/radio_connection - - -/obj/machinery/door/airlock/receive_signal(datum/signal/signal) - if(!signal) - return - - if(id_tag != signal.data["tag"] || !signal.data["command"]) - return - - switch(signal.data["command"]) - if("open") - open(1) - - if("close") - close(1) - - if("unlock") - locked = FALSE - update_icon() - - if("lock") - locked = TRUE - update_icon() - - if("secure_open") - locked = FALSE - update_icon() - - sleep(2) - open(1) - - locked = TRUE - update_icon() - - if("secure_close") - locked = FALSE - close(1) - - locked = TRUE - sleep(2) - update_icon() - - send_status() - - -/obj/machinery/door/airlock/proc/send_status() - if(radio_connection) - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "door_status" = density ? "closed" : "open", - "lock_status" = locked ? "locked" : "unlocked" - )) - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - -/obj/machinery/door/airlock/open(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/close(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - if(new_frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/door/airlock/Destroy() - if(frequency) - SSradio.remove_object(src,frequency) - return ..() - -/obj/machinery/airlock_sensor - icon = 'icons/obj/airlock_machines.dmi' - icon_state = "airlock_sensor_off" - name = "airlock sensor" - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - - anchored = TRUE - power_channel = ENVIRON - - var/id_tag - var/master_tag - var/frequency = FREQ_AIRLOCK_CONTROL - - var/datum/radio_frequency/radio_connection - - var/on = TRUE - var/alert = FALSE - - -/obj/machinery/airlock_sensor/update_icon() - if(on) - if(alert) - icon_state = "airlock_sensor_alert" - else - icon_state = "airlock_sensor_standby" - else - icon_state = "airlock_sensor_off" - -/obj/machinery/airlock_sensor/attack_hand(mob/user) - . = ..() - if(.) - return - var/datum/signal/signal = new(list( - "tag" = master_tag, - "command" = "cycle" - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - flick("airlock_sensor_cycle", src) - -/obj/machinery/airlock_sensor/process() - if(on) - var/datum/gas_mixture/air_sample = return_air() - var/pressure = round(air_sample.return_pressure(),0.1) - alert = (pressure < ONE_ATMOSPHERE*0.8) - - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "pressure" = num2text(pressure) - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - update_icon() - -/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/airlock_sensor/Initialize() - . = ..() - set_frequency(frequency) - -/obj/machinery/airlock_sensor/Destroy() - SSradio.remove_object(src,frequency) -======= #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -305,5 +150,4 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) ->>>>>>> 6d0179f... Merge pull request #38116 from AutomaticFrenzy/patch/anchored - return ..() \ No newline at end of file + return ..() From 93e232104db3460610e952d03de9e998b0fdc46f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Jun 2018 07:33:52 -0500 Subject: [PATCH 054/205] Update embedded_controller_base.dm --- .../embedded_controller_base.dm | 91 ------------------- 1 file changed, 91 deletions(-) diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index d17d07aa93..063cfa6805 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -1,93 +1,3 @@ -<<<<<<< HEAD -/datum/computer/file/embedded_program - var/list/memory = list() - var/state - var/obj/machinery/embedded_controller/master - -/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) - if(master) - master.post_signal(signal, comm_line) - else - qdel(signal) - -/datum/computer/file/embedded_program/proc/receive_user_command(command) - -/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal) - return null - -/datum/computer/file/embedded_program/process() - return 0 - -/obj/machinery/embedded_controller - var/datum/computer/file/embedded_program/program - - name = "embedded controller" - density = FALSE - anchored = TRUE - - var/on = TRUE - -/obj/machinery/embedded_controller/ui_interact(mob/user) - . = ..() - user.set_machine(src) - var/datum/browser/popup = new(user, "computer", name) // Set up the popup browser window - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.set_content(return_text()) - popup.open() - -/obj/machinery/embedded_controller/update_icon() - -/obj/machinery/embedded_controller/proc/return_text() - -/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line) - return 0 - -/obj/machinery/embedded_controller/receive_signal(datum/signal/signal) - if(istype(signal) && program) - program.receive_signal(signal) - -/obj/machinery/embedded_controller/Topic(href, href_list) - if(..()) - return 0 - - if(program) - program.receive_user_command(href_list["command"]) - addtimer(CALLBACK(program, /datum/computer/file/embedded_program.proc/process), 5) - - usr.set_machine(src) - addtimer(CALLBACK(src, .proc/updateDialog), 5) - -/obj/machinery/embedded_controller/process() - if(program) - program.process() - - update_icon() - src.updateDialog() - -/obj/machinery/embedded_controller/radio - var/frequency - var/datum/radio_frequency/radio_connection - -/obj/machinery/embedded_controller/radio/Destroy() - SSradio.remove_object(src,frequency) - return ..() - -/obj/machinery/embedded_controller/radio/Initialize() - . = ..() - set_frequency(frequency) - -/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal) - signal.transmission_method = TRANSMISSION_RADIO - if(radio_connection) - return radio_connection.post_signal(src, signal) - else - signal = null - -/obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency) -======= /datum/computer/file/embedded_program var/list/memory = list() var/state @@ -175,4 +85,3 @@ SSradio.remove_object(src, frequency) frequency = new_frequency radio_connection = SSradio.add_object(src, frequency) ->>>>>>> 6d0179f... Merge pull request #38116 from AutomaticFrenzy/patch/anchored From 85ba48a053d8bb981f1d007a1fd9247c3c1afc15 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 3 Jun 2018 09:01:17 -0500 Subject: [PATCH 055/205] donator item --- icons/obj/custom.dmi | Bin 18075 -> 18518 bytes .../code/modules/client/loadout/__donator.dm | 6 ++++++ .../modules/custom_loadout/custom_items.dm | 7 +++++++ 3 files changed, 13 insertions(+) diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi index 419b14f52644f814ce15707c78ba6d1230969d2d..c4c2f71b267b80478fdd40cc5f6d3a908175cb0f 100644 GIT binary patch literal 18518 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 Date: Sun, 3 Jun 2018 05:57:21 -0700 Subject: [PATCH 056/205] Fix autoprocessing cloners --- code/game/machinery/computer/cloning.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 71c62327e6..6e9e468be2 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -276,8 +276,15 @@ if(href_list["task"]) switch(href_list["task"]) if("autoprocess") +<<<<<<< HEAD autoprocess = 1 playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) +======= + if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) + autoprocess = TRUE + START_PROCESSING(SSmachines, src) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) +>>>>>>> ce2d790... Fix autoprocessing cloners (#38264) if("stopautoprocess") autoprocess = 0 playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) From 49bd6e24fb6f2e09b8ce6b9fe62ce6ba441cdafa Mon Sep 17 00:00:00 2001 From: Ling Date: Sun, 3 Jun 2018 09:33:10 +0200 Subject: [PATCH 057/205] Fixes pda style loading --- code/__DEFINES/misc.dm | 2 ++ code/modules/client/preferences.dm | 4 ++++ code/modules/client/preferences_savefile.dm | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index a31ebccbad..43c706e58e 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -254,6 +254,8 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define ORBITRON "Orbitron" #define SHARE "Share Tech Mono" +GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE)) + //Color Defines #define OOC_COLOR "#002eb8" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7eb1c25455..044becba9c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1380,7 +1380,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(pickedui) UI_style = pickedui if("pda_style") +<<<<<<< HEAD var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference") as null|anything in list(MONO, SHARE, ORBITRON, VT) +======= + var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference", pda_style) as null|anything in GLOB.pda_styles +>>>>>>> 513a5f1... Fixes pda style loading (#38238) if(pickedPDAStyle) pda_style = pickedPDAStyle if("pda_color") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f17ddf8b7c..ad53f8f0dd 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -168,7 +168,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car ghost_others = sanitize_inlist(ghost_others, GLOB.ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION) menuoptions = SANITIZE_LIST(menuoptions) be_special = SANITIZE_LIST(be_special) - pda_style = sanitize_inlist(MONO, VT, SHARE, ORBITRON) + pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style)) pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color)) screenshake = sanitize_integer(screenshake, 0, 800, initial(screenshake)) From 26a24e49b7a313e1bbe8559f6e8426d99bb31601 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 3 Jun 2018 09:02:44 -0500 Subject: [PATCH 058/205] Update __donator.dm --- modular_citadel/code/modules/client/loadout/__donator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 7d7e1b8721..36955d878e 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -284,7 +284,7 @@ datum/gear/darksabresheath path = /obj/item/clothing/suit/toggle/labcoat/mad/techcoat ckeywhitelist = list("wilchen") -/datum/gear/ssk +/datum/gear/leechjar name = "Jar of Leeches" category = SLOT_IN_BACKPACK path = /obj/item/custom/leechjar From 4b38136d7967c912689f0da69d4f34c29467f672 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sat, 2 Jun 2018 22:23:37 -0500 Subject: [PATCH 059/205] Only load Reebe during clock cult (#38156) * Only load clock cult during clock cult * Return FALSE --- _maps/_basemap.dm | 1 - code/controllers/subsystem/mapping.dm | 15 ++++++--------- code/game/gamemodes/clock_cult/clock_cult.dm | 6 ++++++ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm index da795b6933..6a7e1d3636 100644 --- a/_maps/_basemap.dm +++ b/_maps/_basemap.dm @@ -5,7 +5,6 @@ #ifndef LOWMEMORYMODE #ifdef ALL_MAPS #include "map_files\Mining\Lavaland.dmm" - #include "map_files\generic\City_of_Cogs.dmm" #include "map_files\debug\runtimestation.dmm" #include "map_files\Deltastation\DeltaStation2.dmm" #include "map_files\MetaStation\MetaStation.dmm" diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 9b6944403a..2d99012881 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -121,7 +121,7 @@ SUBSYSTEM_DEF(mapping) z_list = SSmapping.z_list #define INIT_ANNOUNCE(X) to_chat(world, "[X]"); log_world(X) -/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits) +/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE) var/start_time = REALTIMEOFDAY if (!islist(files)) // handle single-level maps @@ -157,8 +157,8 @@ SUBSYSTEM_DEF(mapping) var/full_path = "_maps/[path]/[file]" if(!loader.load_map(file(full_path), 0, 0, start_z + files[file], no_changeturf = TRUE)) errorList |= full_path - - INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") + if(!silent) + INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") /datum/controller/subsystem/mapping/proc/loadWorld() //if any of these fail, something has gone horribly, HORRIBLY, wrong @@ -187,9 +187,6 @@ SUBSYSTEM_DEF(mapping) LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND) else if (!isnull(config.minetype)) INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!") - - // load Reebe - LoadGroup(FailedZs, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE) #endif if(LAZYLEN(FailedZs)) //but seriously, unless the server's filesystem is messed up this will never happen @@ -367,14 +364,14 @@ GLOBAL_LIST_EMPTY(the_station_areas) away_level = template.load_new_z() else return - + message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.") log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.") if(!away_level) message_admins("Loading [away_name] failed!") return - - + + if(GLOB.the_gateway) //Link any found away gate with station gate var/obj/machinery/gateway/centeraway/new_gate diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 355dd869b1..a0cfd79770 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -143,6 +143,12 @@ Credit where due: var/datum/team/clockcult/main_clockcult /datum/game_mode/clockwork_cult/pre_setup() + var/list/errorList = list() + SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE) + if(errorList.len) // reebe failed to load + message_admins("Rebee failed to load!") + log_game("Rebee failed to load!") + return FALSE if(CONFIG_GET(flag/protect_roles_from_antagonist)) restricted_jobs += protected_jobs if(CONFIG_GET(flag/protect_assistant_from_antagonist)) From 95bbfb29d1f3a0574871f0b72738d88486d38d4e Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Sat, 2 Jun 2018 17:41:57 -0700 Subject: [PATCH 061/205] Fix mecha mouse pointer issues (#38213) * Fix mecha mouse pointer issues * Migrate ranged ability mouse pointers to new system --- code/game/mecha/combat/combat.dm | 25 +------------------- code/game/mecha/mecha.dm | 4 ++++ code/modules/antagonists/cult/blood_magic.dm | 1 - code/modules/antagonists/cult/cult_comms.dm | 1 - code/modules/mob/living/living.dm | 13 ++++------ code/modules/mob/living/logout.dm | 2 -- code/modules/mob/login.dm | 1 + code/modules/mob/mob.dm | 9 +++++++ code/modules/spells/spell.dm | 12 ++-------- 9 files changed, 22 insertions(+), 46 deletions(-) diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index c516571e2a..ea51693135 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -2,27 +2,4 @@ force = 30 internal_damage_threshold = 50 armor = list("melee" = 30, "bullet" = 30, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - -/obj/mecha/combat/moved_inside(mob/living/carbon/human/H) - if(..()) - if(H.client && H.client.mouse_pointer_icon == initial(H.client.mouse_pointer_icon)) - H.client.mouse_pointer_icon = 'icons/mecha/mecha_mouse.dmi' - return 1 - else - return 0 - -/obj/mecha/combat/mmi_moved_inside(obj/item/mmi/mmi_as_oc,mob/user) - if(..()) - if(occupant.client && occupant.client.mouse_pointer_icon == initial(occupant.client.mouse_pointer_icon)) - occupant.client.mouse_pointer_icon = 'icons/mecha/mecha_mouse.dmi' - return 1 - else - return 0 - - -/obj/mecha/combat/go_out() - if(occupant && occupant.client && occupant.client.mouse_pointer_icon == 'icons/mecha/mecha_mouse.dmi') - occupant.client.mouse_pointer_icon = initial(occupant.client.mouse_pointer_icon) - ..() - - + mouse_pointer = 'icons/mecha/mecha_mouse.dmi' diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 438c5fdb39..c6f070c23a 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -115,6 +115,7 @@ var/smashcooldown = 3 //deciseconds var/occupant_sight_flags = 0 //sight flags to give to the occupant (e.g. mech mining scanner gives meson-like vision) + var/mouse_pointer hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD) @@ -855,6 +856,7 @@ if(H && H.client && H in range(1)) occupant = H H.forceMove(src) + H.update_mouse_pointer() add_fingerprint(H) GrantActions(H, human_occupant=1) forceMove(loc) @@ -912,6 +914,7 @@ brainmob.reset_perspective(src) brainmob.remote_control = src brainmob.update_canmove() + brainmob.update_mouse_pointer() icon_state = initial(icon_state) update_icon() setDir(dir_in) @@ -981,6 +984,7 @@ setDir(dir_in) if(L && L.client) + L.update_mouse_pointer() L.client.change_view(CONFIG_GET(string/default_view)) zoom_mode = 0 diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 3df3d63ebd..7c8c2b2022 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -271,7 +271,6 @@ attached_action.desc += "
    Has [attached_action.charges] use\s remaining." attached_action.UpdateButtonIcon() if(attached_action.charges <= 0) - remove_mousepointer(ranged_ability_user.client) remove_ranged_ability("You have exhausted the spell's power!") qdel(src) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index b51ff99041..4e6a50bf6b 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -457,7 +457,6 @@ new /obj/effect/temp_visual/cult/sparks(get_turf(target), ranged_ability_user.dir) attached_action.throwing = FALSE attached_action.cooldown = world.time + attached_action.base_cooldown - remove_mousepointer(ranged_ability_user.client) remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.") caller.update_action_buttons_icon() addtimer(CALLBACK(caller, /mob.proc/update_action_buttons_icon), attached_action.base_cooldown) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 68c8913385..7bdc65fcb0 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -35,14 +35,6 @@ QDEL_LIST(diseases) return ..() -/mob/living/ghostize(can_reenter_corpse = 1) - var/prev_client = client - . = ..() - if(.) - if(ranged_ability && prev_client) - ranged_ability.remove_mousepointer(prev_client) - - /mob/living/proc/OpenCraftingMenu() return @@ -1149,6 +1141,11 @@ clear_fullscreen("remote_view", 0) update_pipe_vision() +/mob/living/update_mouse_pointer() + ..() + if (client && ranged_ability && ranged_ability.ranged_mousepointer) + client.mouse_pointer_icon = ranged_ability.ranged_mousepointer + /mob/living/vv_edit_var(var_name, var_value) switch(var_name) if("stat") diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index b7e9036a8a..d2c50559c6 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -1,7 +1,5 @@ /mob/living/Logout() update_z(null) - if(ranged_ability && client) - ranged_ability.remove_mousepointer(client) ..() if(!key && mind) //key and mind have become separated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. \ No newline at end of file diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 7e7a86a9e4..6dd8b73a4b 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -38,6 +38,7 @@ AA.onNewMob(src) update_client_colour() + update_mouse_pointer() if(client) client.click_intercept = null diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c98f3f4afb..c9ec43c387 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -849,6 +849,15 @@ if (L) L.alpha = lighting_alpha +/mob/proc/update_mouse_pointer() + if (!client) + return + client.mouse_pointer_icon = initial(client.mouse_pointer_icon) + if (ismecha(loc)) + var/obj/mecha/M = loc + if(M.mouse_pointer) + client.mouse_pointer_icon = M.mouse_pointer + /mob/proc/is_literate() return 0 diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 89e513fd60..4d92878cc2 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -68,27 +68,19 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return user.ranged_ability = src user.click_intercept = src - add_mousepointer(user.client) + user.update_mouse_pointer() ranged_ability_user = user if(msg) to_chat(ranged_ability_user, msg) active = TRUE update_icon() -/obj/effect/proc_holder/proc/add_mousepointer(client/C) - if(C && ranged_mousepointer && C.mouse_pointer_icon == initial(C.mouse_pointer_icon)) - C.mouse_pointer_icon = ranged_mousepointer - -/obj/effect/proc_holder/proc/remove_mousepointer(client/C) - if(C && ranged_mousepointer && C.mouse_pointer_icon == ranged_mousepointer) - C.mouse_pointer_icon = initial(C.mouse_pointer_icon) - /obj/effect/proc_holder/proc/remove_ranged_ability(msg) if(!ranged_ability_user || !ranged_ability_user.client || (ranged_ability_user.ranged_ability && ranged_ability_user.ranged_ability != src)) //To avoid removing the wrong ability return ranged_ability_user.ranged_ability = null ranged_ability_user.click_intercept = null - remove_mousepointer(ranged_ability_user.client) + ranged_ability_user.update_mouse_pointer() if(msg) to_chat(ranged_ability_user, msg) ranged_ability_user = null From 217dfc0d53b1a71825762e6d55fb7b527145e0a0 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 2 Jun 2018 17:36:58 -0700 Subject: [PATCH 063/205] Fixes exploit (#38250) --- code/modules/antagonists/cult/blood_magic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 3df3d63ebd..b38274d1fd 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -64,7 +64,7 @@ qdel(nullify_spell) return BS = possible_spells[entered_spell_name] - if(QDELETED(src) || owner.incapacitated() || !BS) + if(QDELETED(src) || owner.incapacitated() || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (spells.len >= limit)) return to_chat(owner,"You begin to carve unnatural symbols into your flesh!") SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10)) From b38f42f989e99ddddd00801ddca95e315d480631 Mon Sep 17 00:00:00 2001 From: Nich Date: Sun, 3 Jun 2018 02:26:33 +0200 Subject: [PATCH 065/205] Fixes a locate and adds job checks to download objective (#38199) --- code/modules/antagonists/traitor/datum_traitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index f3ea4ef2ea..ae750adebc 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -164,7 +164,7 @@ kill_objective.find_target() add_objective(kill_objective) else - if(prob(15) && !(locate(/datum/objective/download in owner.objectives))) + if(prob(15) && !(locate(/datum/objective/download) in owner.objectives) && !(owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) var/datum/objective/download/download_objective = new download_objective.owner = owner download_objective.gen_amount_goal() From bd25d809c3d9fed4cc7f870189bc1ec7ebf8bac3 Mon Sep 17 00:00:00 2001 From: cyclowns Date: Sat, 2 Jun 2018 17:21:25 -0700 Subject: [PATCH 067/205] Fixes tritium and plasma fires storing cached_results incorrectly (#38230) * id -> "fire" * testing remnant --- code/modules/atmospherics/gasmixtures/reactions.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index dd953dcb11..ebfc9fbf2d 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -111,7 +111,7 @@ var/list/cached_gases = air.gases //this speeds things up because accessing datum vars is slow var/temperature = air.temperature var/list/cached_results = air.reaction_results - cached_results[id] = 0 + cached_results["fire"] = 0 var/turf/open/location = isturf(holder) ? holder : null var/burned_fuel = 0 @@ -131,7 +131,7 @@ ASSERT_GAS(/datum/gas/water_vapor, air) //oxygen+more-or-less hydrogen=H2O cached_gases[/datum/gas/water_vapor][MOLES] += burned_fuel/TRITIUM_BURN_OXY_FACTOR - cached_results[id] += burned_fuel + cached_results["fire"] += burned_fuel if(energy_released > 0) var/new_heat_capacity = air.heat_capacity() @@ -148,7 +148,7 @@ item.temperature_expose(air, temperature, CELL_VOLUME) location.temperature_expose(air, temperature, CELL_VOLUME) - return cached_results[id] ? REACTING : NO_REACTION + return cached_results["fire"] ? REACTING : NO_REACTION //plasma combustion: combustion of oxygen and plasma (treated as hydrocarbons). creates hotspots. exothermic /datum/gas_reaction/plasmafire @@ -169,7 +169,7 @@ var/list/cached_gases = air.gases //this speeds things up because accessing datum vars is slow var/temperature = air.temperature var/list/cached_results = air.reaction_results - cached_results[id] = 0 + cached_results["fire"] = 0 var/turf/open/location = isturf(holder) ? holder : null //Handle plasma burning @@ -206,7 +206,7 @@ energy_released += FIRE_PLASMA_ENERGY_RELEASED * (plasma_burn_rate) - cached_results[id] += (plasma_burn_rate)*(1+oxygen_burn_rate) + cached_results["fire"] += (plasma_burn_rate)*(1+oxygen_burn_rate) if(energy_released > 0) var/new_heat_capacity = air.heat_capacity() @@ -223,7 +223,7 @@ item.temperature_expose(air, temperature, CELL_VOLUME) location.temperature_expose(air, temperature, CELL_VOLUME) - return cached_results[id] ? REACTING : NO_REACTION + return cached_results["fire"] ? REACTING : NO_REACTION //fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again. /datum/gas_reaction/fusion From b9ac5c0544c57cee1e0a672a0285f775348cc2f4 Mon Sep 17 00:00:00 2001 From: theo2003 <35148170+theo2003@users.noreply.github.com> Date: Sun, 3 Jun 2018 03:20:35 +0300 Subject: [PATCH 069/205] Roboticists now have access to open the R&D windoors. (#38226) --- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- _maps/map_files/Deltastation/DeltaStation2.dmm | 15 +++++---------- _maps/map_files/MetaStation/MetaStation.dmm | 8 ++++---- _maps/map_files/OmegaStation/OmegaStation.dmm | 4 ++-- _maps/map_files/PubbyStation/PubbyStation.dmm | 7 ++----- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 27d68bb5cb..e30ccc380e 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -22918,7 +22918,7 @@ /obj/structure/table/reinforced, /obj/machinery/door/window/southright{ name = "Research and Development Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "rnd"; diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index af3cf7bade..dad495f0da 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -72556,7 +72556,7 @@ /obj/item/pen, /obj/machinery/door/window/southleft{ name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "rndlab1"; @@ -76089,7 +76089,7 @@ /obj/machinery/door/window/southleft{ dir = 4; name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/window/westleft, /obj/effect/turf_decal/delivery, @@ -76754,7 +76754,7 @@ /obj/machinery/door/window/southleft{ dir = 8; name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "rndlab2"; @@ -92690,11 +92690,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"dQF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "dQG" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -100047,7 +100042,7 @@ /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters/preopen{ @@ -134174,7 +134169,7 @@ dNC dNC dOT dPM -dQF +dOb dRE dSC dTA diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 48f741a178..cdbd083c3a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -51651,7 +51651,7 @@ /obj/machinery/door/window/eastright{ dir = 2; name = "Research and Development Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "research_shutters"; @@ -55830,7 +55830,7 @@ /obj/machinery/door/window/eastright{ dir = 4; name = "Research and Development Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/item/folder/white{ pixel_x = 4; @@ -56670,7 +56670,7 @@ /obj/machinery/door/window/eastleft{ dir = 1; name = "Research and Development Deliveries"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/structure/window/reinforced{ dir = 8 @@ -76251,7 +76251,7 @@ /obj/machinery/door/window/eastright{ dir = 2; name = "Research and Development Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters/preopen{ diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 465d9ca072..437cd5491e 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -20534,7 +20534,7 @@ /obj/item/pen, /obj/machinery/door/window/southleft{ name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "rndlab1"; @@ -21487,7 +21487,7 @@ /obj/machinery/door/window/southleft{ dir = 4; name = "Research Lab Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "rndlab1"; diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 3a75a0b048..4fb4d5ee39 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -21207,9 +21207,6 @@ icon_state = "platingdmg3" }, /area/maintenance/department/cargo) -"bdA" = ( -/turf/open/floor/plating, -/area/maintenance/department/cargo) "bdB" = ( /obj/structure/cable{ icon_state = "1-4" @@ -25766,7 +25763,7 @@ /obj/machinery/door/window/eastright{ dir = 2; name = "Research and Development Desk"; - req_access_txt = "7" + req_one_access_txt = "7;29" }, /obj/machinery/door/poddoor/shutters/preopen{ id = "research_shutters_2"; @@ -91348,7 +91345,7 @@ aPY bau aLf aFi -bdA +aFi beI beI bgD From 7be9b6ebf990f2b9c07d9f4d07ba687f070358e4 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Sat, 2 Jun 2018 19:48:19 -0400 Subject: [PATCH 071/205] Antag reputation rewards are now configurable --- code/controllers/configuration/entries/game_options.dm | 10 +++++++++- code/controllers/subsystem/job.dm | 2 +- code/modules/jobs/job_types/job.dm | 6 ++++++ config/antag_rep.txt | 5 +++++ config/config.txt | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 config/antag_rep.txt diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 3de0ebe439..8ac0941b11 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -288,6 +288,7 @@ /datum/config_entry/flag/shift_time_realtime +<<<<<<< HEAD //Cit changes - Adds config options for crew objectives and miscreants /datum/config_entry/flag/allow_crew_objectives @@ -304,4 +305,11 @@ /datum/config_entry/number/nightshift_finish config_entry_value = 6 -//End of Cit changes \ No newline at end of file +//End of Cit changes +======= +/datum/config_entry/keyed_number_list/antag_rep + +/datum/config_entry/number/monkeycap + config_entry_value = 64 + min_val = 0 +>>>>>>> d060e4e... Antag reputation rewards are now configurable (#38077) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index c19345f328..f72b7d1d6a 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -422,7 +422,7 @@ SUBSYSTEM_DEF(job) else M = H - SSpersistence.antag_rep_change[M.client.ckey] += job.antag_rep + SSpersistence.antag_rep_change[M.client.ckey] += job.GetAntagRep() to_chat(M, "You are the [rank].") if(job) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 87db3146e4..1cd7f59a27 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -49,6 +49,7 @@ var/exp_type_department = "" //The amount of good boy points playing this role will earn you towards a higher chance to roll antagonist next round + //can be overriden by antag_rep.txt config var/antag_rep = 10 //Only override this proc @@ -67,6 +68,11 @@ /datum/job/proc/special_check_latejoin(client/C) return TRUE +/datum/job/proc/GetAntagRep() + . = CONFIG_GET(keyed_number_list/antag_rep)[lowertext(title)] + if(. == null) + return antag_rep + //Don't override this unless the job transforms into a non-human (Silicons do this for example) /datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE, latejoin = FALSE) if(!H) diff --git a/config/antag_rep.txt b/config/antag_rep.txt new file mode 100644 index 0000000000..a26b157d5a --- /dev/null +++ b/config/antag_rep.txt @@ -0,0 +1,5 @@ +## Custom antag reputation values +## List of job titles followed by antag rep value, all prefixed with ANTAG_REP. See code/modules/jobs/job_types for titles +## e.g. +## ANTAG_REP Captain 10 +## ANTAG_REP Assistant 0 diff --git a/config/config.txt b/config/config.txt index 57e0050d69..fba903477c 100644 --- a/config/config.txt +++ b/config/config.txt @@ -3,6 +3,7 @@ $include game_options.txt $include dbconfig.txt $include comms.txt +$include antag_rep.txt # You can use the @ character at the beginning of a config option to lock it from being edited in-game # Example usage: From b7ae7967341d244d2b53a5815ad14245b9575c64 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Sat, 2 Jun 2018 18:20:56 -0400 Subject: [PATCH 072/205] Fixes cigar bugs (#38218) --- code/game/objects/items/cigs_lighters.dm | 2 +- code/game/objects/items/storage/fancy.dm | 21 +++++++++++++-------- icons/obj/cigarettes.dmi | Bin 11615 -> 12018 bytes 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 9b10df57fa..9401579e61 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -340,7 +340,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" icon_state = "cigaroff" icon_on = "cigaron" - icon_off = "cigaroff" + icon_off = "cigaroff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. type_butt = /obj/item/cigbutt/cigarbutt throw_speed = 0.5 item_state = "cigaroff" diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index aaee6f65ab..5fc5af6779 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -154,7 +154,7 @@ SendSignal(COMSIG_TRY_STORAGE_TAKE, W, user) user.put_in_hands(W) contents -= W - to_chat(user, "You take a [icon_type] out of the pack.") + to_chat(user, "You take \a [W] out of the pack.") else to_chat(user, "There are no [icon_type]s left in the pack.") @@ -166,18 +166,20 @@ else icon_state = initial(icon_state) add_overlay("[icon_state]_open") - var/i = contents.len + var/cig_position = 1 for(var/C in contents) var/mutable_appearance/inserted_overlay = mutable_appearance(icon) - inserted_overlay.pixel_x = 1 * (i - 1) + if(istype(C, /obj/item/lighter/greyscale)) inserted_overlay.icon_state = "lighter_in" else if(istype(C, /obj/item/lighter)) inserted_overlay.icon_state = "zippo_in" else inserted_overlay.icon_state = "cigarette" + + inserted_overlay.icon_state = "[inserted_overlay.icon_state]_[cig_position]" add_overlay(inserted_overlay) - i-- + cig_position++ else cut_overlays() @@ -191,7 +193,7 @@ SendSignal(COMSIG_TRY_STORAGE_TAKE, W, M) M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK) contents -= W - to_chat(user, "You take a [icon_type] out of the pack.") + to_chat(user, "You take \a [W] out of the pack.") else ..() else @@ -294,10 +296,13 @@ cut_overlays() if(fancy_open) icon_state = "[initial(icon_state)]_open" - var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type) - for(var/c = contents.len, c >= 1, c--) - cigar_overlay.pixel_x = 3 * (c - 1) + + var/cigar_position = 1 //generate sprites for cigars in the box + for(var/obj/item/clothing/mask/cigarette/cigar/smokes in contents) + var/mutable_appearance/cigar_overlay = mutable_appearance(icon, "[smokes.icon_off]_[cigar_position]") add_overlay(cigar_overlay) + cigar_position++ + else icon_state = "[initial(icon_state)]" diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 84979e438746455b3d2f49a2dba9d73ed21934ee..0f0433be7fb1ea90dbdb33851256704eb4052223 100644 GIT binary patch literal 12018 zcma)iby!qyyY3o7Iz>Vn5m7)uq(n*(M3hpxrF-axA*4%G5KvNS7?AERN$KupXoi6y z<}7~KK4~{IM>EwcdW8=YH?!dGBx)C3zCUyMzD$kSM&8RRaKs5%@^q-vZwR z_Gfzm0G5u|do34PGiMVgE2xW=gFOIveE*f$;xx@i9x{0P&N9AWCLH&za-&PPiwHY> zQQMZl;S+Z>`*7CmG#v-C}|(HcWrQzC4aiRc5xbQXHa!s2W5IY_^9&w@{5IJ zDG6i2WW@XUS?%qKTL zI(>hzvHV)j=fNU(DUF4jyyQ;D&lLE}b4_6y)}pk4U#_dlzL9}pf49lFiyAw}Mc6-- zqp=mgHwB%ZU<=Z*dmV%-O+}uG@SzHN9E)}=7AL`s?Z{HUBG>dR;_ zznU6$=PQMNntS&J4Zs&JO9ak`!7U!Grq7L^Dy6)Yv8>fu>SL|`Q>MWwQW|j>NOP&< zfw1_6p_*dUS2lHDr=cs9wps~#{^;dIyZia};VQG8T??W70~@0L06&g5vg~@9gu!l9 zdv!Q_pOZv|$C)qGsLfQB1dgM|lPy0A=-5z;FT4vqzzB4t7xmXc36)%-Ll;w$PbsEs z@lao+v`%z0?{_>6CdU-bzUO)9F7)M2O`eY0z@z4m`S;g!hPDhU(`mHnp1DYqANeX( z|IFQAij&CPUn;SbgF^$d42+Y1P2LXl$LjhFK3U*X20m@zv)^w~K0Z`W`?vb`y}Kx5 z*_Fppma{<=(PB{dxjjAoh8J%e3LcJrDww|K?KxA@zaxYpS(UaKNAN7{0ssr3AS?ae zIz@8asiXGPeL4}o^lDzPv3PqF3SHk;NoB_;3UDj4ySkYDR zF**Bjw&@%xil+-wEjm2!Wg`>+@aV0v$pt_aVJy`I5E;sN@g~UxZJ{0xgqiuk-oOR& zx##Hug!f>os6ZAKHFaQESd_)5Ie?9=>;rI{LZKDlV2clifU8Y_{VnVjMI_TE_A~cU9&8!(FIw4yFUl_ zNj0K7>Y{y+yMeCtnNy+8{p)Jif-W;{GqdFctC7p;YYE(gp22H*mqyfr8YXM%R;9EC zJvCL+ekmRfFj6a-ZbN@9V9XlxU3A@ZX_hQNy8+3~OcleeHH0`t2?Gttt|DFICTPpb z@4zhi!>Ba)&O5*`HyT+Mw0|Q?mJE3K2ze;L}c~R&WJv+h~&1(uq&M3_I#yU#bE2O%XaUqjhPsJ zJ_>_y-gKzULX{d7x;Y*H`E!TB1yS;IOe>?dh>l)V{|xQ2cy(y(W6#lWB80Ns6k z?W$CY_CG|~V;W&)ckTcH7i?1NTr2>)1K>DPGdIuPxt?=h*saCLsk8c-6JV^2T38rf zOfX`9>n2KdYtG~7{F#+sJKa1USI4{2*TOTB-D4kONZTw+buvmvmU@ybDqt!J)ZC8g zCISc7&-BrCu{j`a7P1=I9fr^EzHfb5JYl(}Y}k0u=|a>3#x44r>B0PTNRD~`s4IQ& z&Zz|%*iptM$HWU;TkhgWyGTjj^O#q6ooI?`#WQKgu<&l1 z1|`vr#m4%5yDx@>2u?oGI6slu3ei8N_U%0w!v}5CXSi}BI;^hv2f{oU7c^7PqMtu; zfP?lQv5Ot$;qkh+(ct)9-flErDD~KmFpG+c(q8r>J-lY<&$fGcRgqWszkArEAl5%} zE6Lnrga6>=rP*CsZgr9iBt}4Pf103eoc@1!1lYc8JRdAPjNSNOT!&X-HHgCh`p=4M z-uTtJ8xykwEHjfWcBaW6r`4>9KV<{uV{g4mQ7?8G zEsK{gU$XJ?4zB#3oz)8|8DJY3=~!+|O(e-zk{cfWHGA!cpT~4C-{76%gT*^9hzlH` z+wE$vAwTEuLN01(V|({Hb%3fJZ3#}QJ9ol!(hO!+&uI)9^1OldwY3a?%(Yhnz8Btu zx7MeBn!WHAmm2{$!7@JW!9Oi4BvlSTv~b6cpC1u^5}>4{MBURvg2~y}|4VJTMb^fW zk|qDg4hDJVzQ_H$Y>NpNQ+farB-Y z-1QSMB(C?K1NtK2P-1MfFimNqSf7ZSYOxgn96D@x0*X+aN2#u078c)Sy99!rb zw~Icp&X!py-rE>ZEE8;WRA*x6-r8W~bkQ!^EADIY!1x6qwf z~7aTeI9%T=Lichw!2&G=e^3x=)l=gqzSJ=$Z}F zr(G^5XG27JfJRN|zC{uZzyGyQcoBbWXGSl%Pz-uqvx{L&_cS=#xzpT+4=3ZA`I3dJ zcYlJohJUehsh5>tC5n?Sz_rqq#J)!)x^2R|EF&0V8+O&3An1X(wzN?qJvdwOYp{QX z%h#q^%qnxb_?at1EYmdjn7=E4iNBHE0L>V-@DUPXS}9Z z-B_>{7<#DI%CvFFY+br=OQewFD+z*0&@=f2M2{as7gUweqDIczxxM1|LXQT^kaLz zQyypfZ%cfOpjm(V^eN!;1La3Q#N6$jWT$&RKX9G9#S@Jj-_jG)n)O=*pldKHS8v38 z13fM-E*lq@;}pUV^3=T{u>CJh31-T|v9OR>U(7Ao459Vz zlA`;`@}OaOUBSfi=oO|NTyMwyh)NQPsJIlI)c{8UFKgVd%xq=HgF< z~X-Zp59USZbRVGKM+Rg1$6f$7Uh6tpTzB7#Bh%;Rod@>` zng3x3|1%!`3zhh%;F*i+00M#Fm}tfF5M{{vUIss{z7lJXT{;y8FxP937F^Q0cA14Y z+v4V~4bq|>h>7XGk#y-^`P~5+kYx!_;bu9Xj(s@)9nF;Zwwtbxd|cbjt&r@G5* zX98}4zk^uClcdy*^^(9;^XzdCciQ3i?C!ggd7v|7CVyEdzG!Y4DHHd@!j@9Y(FVbj z+pvihAA`i5<4@wvKhmD;1UYIbEiVJpSuBK$gqj&>H_89rmdlo zuxA&S=QHBV)lo1$V>eU& zS=X_2N~tuP>F)bz8Vu8lr!kpKayn6J+?=A7)u(>{E8qQ>bD=DK#p&tkQ@exwT325k zYL(k7)yZ!cEhhYZ0A2kd`(B;sy&jc_mKyVKlak*_8!KW`k?u%mq=)(yHOhvMT^g|2sV`v8KAG!T{3^xhgufQa7xLRcdmz%tUgrx;`kmrm zt^%AC>idiGqA4os`aCtR8R6nayl=PaMqC$0Vnl`wS5kSsn>*>AR#3qNdz!|#v} zQ3!SvF~a54e=2ayi*5I8Hgf8#l`ixbt{Q= zot^kpH)Jw&lS3-)boD3khUU9n4i8fwsOm|QNsTPgG*q?R9NTl(?sKl1lMen!mCeFJ z?hfDA2H@!Uz=LEiXX*Zf2f}q%WDFwYr!$fuHrs-0RxQo^XxrD-;N+yKV`*(d16@J# zA{&o^o<33^c>VgdQQ6epOa3gHO&tTkUR8BkhRLEizP1Au z6%{^`o*DC+CA5P^4}9rEUh2L)PLp_vU4&T8ddYrHflS~eD?fGU@$b- z`<|(}bky!&84|-UU%phQ4)*l4dY>MS7+v#Z}C}`rzl`wd-<~2rAPp z?Ir8&<~m@~R;YP5AE3KjF%uu1#YiR&Sir?Y2i#hmiTceH zu`}i@u%0g@*U-bg_UdLi-~Fuk^Sqd=#;Y;1QywST)#B&hS?>k}q*nkO@Q0a49xGNG zbk#~foX@Uwz^VZBodSWIL5*t{EB;EJJWl-KY!|FYBq%#Ui1ylc4*_iiDUE^4+9^m3 zzL!oV2lH(yG6q(AX;c?1*_<+dkpt1gloshn#Pk|f4V+~+S=^JOLy?@W{b&BW#_@s1nex6xgX_v=FuAC;c z=Xy4+YQJ$Q&&@9$x4j5`4-|le?j<8{fUGR*W780pS$>~zPKIDpkVJmO{?CBxe}vN> zLFI0V>m}pPQax^vx~XKfpA13F6P?KCqOkgJiZJWvWF$4v zSc2VVCV1Xyw&pF#&mP!-FH3FyM+vefuV!m}Pr`dBv%TK7ynl+a*`2v4WQOixK5hQZ z`?1hb{*8v-Qu#?7+T75eZFpQTHrR$cj!`Y(F6MyGvG?sY-r^^LfT}sfjss{uTGw@|L$RWGBj$SzIrPeb>+=;iaKxEd_m&iDnb@>fcA+vv`c7 z*L2or2Yff)E_gh#KW2I*IVnyUJKHe7v*7K044qB;&2iI_rhnSK$76b(?lk$V7jK&@ zzrlGN?Xro0vx#X3$HBO&pT#K&b~WaSm5yg}^77tS*xf`6k%`u>1PdBP9~!P9Cj<*s z!ekCk7pDln;x6C-{FD6AA;Pz^x}g^-eb{NP+c%LwbzutuJ`2PukQo-uIQ4%%d`fEQ zpsuNDL){2m5*mrOPUu!t+?oEk9~j_aI<5o^7^#QSFeO#ob{O27Sfn1R+(`M5#`A@l zeFf2kiMV~Wka*oSSoy7hXQ|#^iU`8My+qI5MmpT8xm?l~(xgQ5*?$-tdEe$I=CF)s z-9}Lap7O^8z*9WS_nF(G7Fwz^NJU}K=FNtlqOVUhK#Jt$5AsWV=xz z_EU=sJobnPwTX=gA6g%1*gZ^~qsoNw!(_hnFn3Yf}4?<4bp1M9XI_{a=*;n=uUVumC#d5jI;al~KsRHk>bDB%GEJ{DfsDPn;KNJlX~RGU9(h>gC}%iH%w z!ygkqvh0M!{mFix&cKkwP!LKlnLX6Z8b)5RQK|lCTg-fAcvoSVR8Hlw#?oY>x9OK# zK)om0F%S9mmy>`U#> zA{e$valcEc=}S$Y>mHA-7K_TtZc-LbieW5H+U=?c>&Ps5GR3^PhKnM#?f6QpWZX}n zAH-BbI4qdjX76L-o?V;%seDD6o}0_L7+-!gydwj#t(1NE>mD21&rw{M|N7MnSvk(I zs1g86g^fGc9baS{5{av_2+OLxOF=%;!Z!*CMpCyl8*U4Ajmxr6e$t`Qvb>fGbhOg_q>|vXN^WmCq z%8<#MN5JAxKI108&>hlH?E9EA%7{!Bw&}pt9`}{9mrZR&D9NbqZv6I!BT}ISH3yF? zeZ1m5&Rt*Ks`UJQO~B!7$K~(t19271e$%q7e@%eJHn<|`wK}qLJt?mr*IoZ`M?M)V z401O}=G?pTFDu3LN5hthnSe0H;X4)s-=#Y&x&VOMSb9GkwcHfx7nCEq6R@RxWp@!Jxun%P%q=PBL-6YFdIXG_7T zx=&g3Rbw+r5J;K-Mle$%Pkwvk?nBMi!D)$seWoBu^uqfvm z(oJ+lAZH{lwTPHggrx{xSAY;Xz($2@I9CjitE97J+j-+dsF)9VFI#IQ263fjCtPX_ znlm}8wG7FKzCU22j95m?73rN*0NWp>cFpjpBBg>e)8|>S2%DhAg8)aSO@47+i?BYg zj4BQ{_2SW*mx#BAl)gSAfENrE@eU<4!i-P7D|E;I4$p6S*DFC{Y57=h=h*Z)nASSb zBmbY0TmN@3=l4oc*M9rnH;^LefT^(ahed9U<>c`?V)(6^>u8&B$eY!y^76Hh)!xi} z)j{>>IND(Fge@a`P1JJpdeW9Gl6<|#Bh07bkb&>XwCBugwX1$ND`tRp7V^!N@Y@(< zk|T$p*o{`tf4<)HZE+x&DpE%KW~Rl7(LhNQLmsVmW<+Qcw9&vG%nuhPwToCs#9khNV>JV`LtdD{$ z9(FO4)v+*%dliR;_gEeI_+672R~0vQ_xHa{e5_vr=2N2Rg_Y{5)uSW4@M>u;d*gP8 zs~i8aHlv+(V(A2Kr3gE8e&aVe0Ncqj>5B1d(&)zhr+r_^D<nFrO_={ApQasM2sgWm+lCY@?J(5? zC1y6F@xvpIB_-s|>^Gr9-CVJigUCITACo1=HtlDmdG%UiJs9-E4DvFGRs8%(rGV1=cV{K{<5}LNaMdoKoo0i^D&GpGqbeAb=*mcP%aq zRduC0a)1l#h`e`)g+dZ@UX|&(qeaYoU6WgI!9*`K3*XV)6SP5dWy#r5T%1Do{fB7w zuU0r_1^Ad4mu*Tg0H6J=^mlPxlE{w0rV8ti^bUyN-o%1WKYTSd#o3o0`Y7M0zWW46 zRaJHAuu)Yj4Ox-TOewy&)+@x;h~(+U_{1NV1}yFDVXpV(eyJA-g+_6tcYnmt$_F4Js!e2N?`EZE{*cePhd88q=B}cdMd;!Vpvz6C78VXD@lUEwP1`ZC5 zbOnWao@K-N>bm7N7HzTq_0p!Mg#zqhsNI>s*&LyjfHa0K5@A`Bvl3E|M^!XvWLehR z6pgT$TRK(t(c9ZPJ}7+x#A#4+EJ@YHGkv{U%G$0!QDlYyCl3$ufA@PujpV{eH-RQL$|g3{kMd)h1Z`}p!tOyM@-~Zze7Yxk>#~cyNN?rtpjTHpqo!M9bY0-25lgYa!sEEo@EN=!UA)Ar( z(Q4h{ROW*5%yohB)J3Je$7`h4%Sl~Ln@7L&}cvmZ@JWv&}G|&(NAJYWFU>#4Ve(m>2XfgykGxRl{ob&{l&s8 zJ||G@L)uQdMHt!^5HT170k})jQSIKPYtc!ZE<_76w!-Oebqf~6jmBCx(r8c?W~>qt zOm20IgOZr~(SxscU{|dlREG*C0K`ny$0bE7wtCV<|G^YawJtI5#v9&%L?T5nhXn1j zBLutC6>VFnrVuO^Eb7_hqzFdb!AxH@X7DZ|vp0V1>}d^l;qHpces0&Mb^tCP@Fqp* z?c}Z-z~_2aOD||$XLLsSkra;YF?Y$J`c9vS6$k~=0a8|@04d)F?1V7<(ed~9o;)Hf z(ye;I^Fgo4yYx5Kq2oXhJ1Gr~2|5$Q#~#*wQlEA|eoO z?;fMdsX{(dDIN?&#Pa!shrOT2gEqikszOT}nWzC(AUIR%?K@n}(2qO+jTX>0%F0H2 zFgA|~3Z7-}m~lqHI|V=fMaz*59_HMVna4I zVODnuBeqN^#Yrd|n4gXyz?_YwyZ1A?m((2r1smuQB%~!RZ=yF;Wg+79O0$u3vYiOQTr}AsDY_kYe1+ z`cd`7_BozyWp5sdh@{83hT;WaJw$r@S)!@@Q>Nw`c2R%qjd(o-+bPa>eIIDh6YX}*6yy6DI` zj^cuGJ$m$fUYPJ^1}Rm3D@-|2OeGq~E5gO&jY02v2PzOh#)Tbx-PhLELQt@ZLNJI( zOi1whKVPn(%M(h~;8oFod*uwk^=j0tp3@BFio$N@?63!hnr8>bUlJ4RnCQiEGR%Cz zgpr&B^rn3aUv(cJpCI5%>20L~^!E@sS=N`kjtO7C3VJX^AblmMlEPkbD2HOxJJSAU zLV}V6*?1^^;C~Y`{5zZdSH*+h50dDx6Xf==+1ml(gB=A?wZRwW>}7?L*xxw2>uX(- zJhqZHj4E_gwY3Qf#v%;G&w~->be(T@27&DKv9rQ=a;b-}g}^UC^08RJAMg&^$tKF8 zLZ@`;7{m5AA#B&XF>a1wjt};b6I`wE8-DcoF)6@j_J^v6=ZS`y*)IggD|Kz{@Zn*# z`Z~90MD}I`CSFqK2(2Zs`wBY$6v9JL~}|>olqf-=q^Q ze=q^jKGKt`?nO-T{{4H9eQE3@B9n3)6@cQ4uV25OT@ejNLT6QRy7e(e1cu_{X^=Mt zy}iA+%Pa=ve0-i$t!*zPkz;`{T4vr)sS^qsjP1|~EQLOi=VDKc-E}A1s>p~TP-Viu zcbtdBD~Eu9pu2h_Ge5alv)Rg6L+6itwheziWsFo z-jRehOCioaxT^&7F6v=AmkQ?5b=S|ygM2{E#qLbiL{aFYU@1L4Jr$4>Yp=)t`STha zX-Le3A>4C++Hm`s#8W3Kz+#^UQ2O$H$nMI}YhAQnV&Cko;f$e1!I;U}t>4!YC~%V4 zPpuccB;zq-=zzdPK0bO-mONkMf}U|wUCPMz6R%{&wWY%jlrhv0uIIJI4n0rH%7= zTyMJjTEWqfjF0#dPlh2K@)|$wNbdga(lc4g^Ht+x73hT{K_6dPS#bn?4`?o`n%^E& z#F2IL1p#4s1qxpfxg4#j)v=jPQTJ|^8_UTaJy7imyiG|NXQ}v9-M3j3vD_F0ePNzp z2;Z2XExDkd-xT)e8x^kWT+%c!u+K-ECrm&1)e=(;F2;9GQR8Iv2$L@{0M>4oxhIdy zaP5bJjV(H39@$b&A^Vlw$lkm83MhgI*$lzfH*AVd&El$SynDJ$T8-=P*F|MFhoNy1*8dg$BleaSPz{peahqY)sgR30gAlp5}$Cw@Z|iEnN0{6fa(l05OasuS$m7&ObkP_HNXiqH&V>NzhP%+2DH8# z<9auyIY{tnw1}SRI_(q0&i@p4l^!FS&y4e=6C7Kjuabc_GDS=z{jkZ{cN~R_JxR9x z*UTVJI4E1Xu;noc}m8xAxCD*?3spAmhsIMvk1{dBW5;vZvaZ)~b2oe)Mg+789Te#6Oim&%9KJ_xp+xc(=>o{^&D2oK9C<`^Ka8hX7Zs zf(@B!wRI()?SDf&zTa=9TdXTSoJU~YII$GX9Fev#_N42Y--9F)Rzk!67>K5ZM(tw^ z#pbU>8C4JjxqPAt2Ox?(tp-wUQ#;M(tVHDs436%9doejuT`2ap z%hKT%RHsby9vhj?b7m+X5+)wqi$wwtM_$mR(k#_x6}D6(9zJDAYdF%o8Ls;mijOho z*poLiEz>Cy@i^hEw4EDHmrtI4fP4E%+0!Brf48>JZ^`V_NVPd?qvp4)0AIo44pw}& zIYF^o2tR^NqfH3*fXWF~qgdl)(Yd;6kp|Z-Qd-LaMriXGlMuyLcE=B>!dz{J|Gvbl z?eYF@A;DhjirQ9T(5Se4-d+5x4q-3PEXK591SsKy-r6G*r!x;lEZ9BJe`~wE2nP%* z#>IDlpI46>I{2ZL0e1KmLQlP4M%nBhSjQNcl)xYBbIiJjcy1@{oqeb>M+VtljdV$} z4CUGNVm41+_Pe#~+k_fApD+aNO_pYHa&dir*4ZyqLZVZdF$HQ-q>sSkZ5ipwTese+ z7Q+b?%ZYqw%tvO@XwXLK!dp`$}6wR@}a+ROge zf~0B=ZdlvCC7oL%IT@TzDE{9hwm}JY2j}_S*4;liMFSWO5uKoOFMj;)QXNkxYN%x3t7(IO2hV;&Wbf|F*K0LKmPEinDA0=l9;Eo!{hRVfY0c|;93PlUUEfjKnI&u1G zoPB3L&t6yH<;M8lOixDU6{G*#^80M8tStvwqo8YK9xS~h(-IfKhMvL}^y@muZjX8~ z**ha4U_9SSjQm9g=`L2LGWP)!B6t?S0235ETyGBJ$H&l=f_K03YhQuN=b$^P$z+kcgvEgut1g@={Lr=~uxBTy^F`!~|fe`P$L zpi(n4H@AC5@cib&(&q3Z=Pf=}e9lLYC_OzrnG)C5*9k+QmPZd^_eO?g=PK>~k3=&f zB0_e+1}^C7H)RsLHBZ#v+uN4Gtc~QBraXIk%SWcis$seXG%@M9kbxg!k>88p5Z}Lx zIjapQ;ymT0o*brwyw6>rsWfeskl4zURJ7pN)YMqo<6~h**%4WF+! zy5W^MTq8}x$pP94?CgVfQ2#hytZ$EkUy|d(z&s>a_4VCgXb=7XEWH^@{H zh!5T^Az<@H-b>O{NSo9x9>Yc_s~d(f{28aNT-wtBHba~0+ItmBOqY_QiFtmbc{4J5~3pAA+2;X zbez}kJ9Y0p&pGG*G0!ve&b!yzYwxvwD_`n7RwW~5BnAM0OkGV`7XTpg;D?syltO5dHOhcxC4NHR$=Ow=b1t@D&xDf8P7DO!k!J$W+sZT2)?$o z%1KGE;OBUCb7;P@ADYpSSk1cL_cNx~0*wu2bof$NTZ{Ms?Ex;3M%iZ(RrvvtDj znH&5P4YW7;+j$<72pdJ6%Xd0b+Nb`R3$NAG;nvz6!!@XF&I`QT_pDO{;_%WqYmzL) zi;l-Bgyy%L6E_Ec|IZ<+)9Mul!M(`A3y0J{l_^Xy$_anuYCA7A=a)Q2o+V2}pbs-F zI_IcG>OT^U9IM2$G|)-!CClwfINjW~>iWSJOoMvt$SmqojiVaR>_HJ}AWlqwRd^im zH7Y!1wCv8OJV|=;%e=$*@9v&5DZk#|7oI>2eT})yr7@>wJDS{IHV~sLW6$nW7N?uS zX|3boq-s;8CG?_s@f`2C_b$!(Lam_P6T07PnwPO-8O0rx4@36inNs+<8$RMH4hp{1{VA%m9Zav!`$AQz+Y+gV7iQ>_%T&a+r(N}-Z`uIxgF*TQ)E<8p>?WQ3$dk)<(d zwx%eJY+Bmmz>lFtak1k8`4IrH1M12Odj45kzk>X!^{?c1k8iGZK?`~Prs~*ry7JiT z4KPe^_4i2Pt1$G=M#OT~NOR*Cv|;6WmV%~@0ScbT!n-tEbgA2U0u_k3RbmYin#R~s z#jqi|xRE+Cqp6|giz`Cv*W&zI!Xgf@Pg`?=YBRomzJg z9wA30J+ZuEto;*!N>MZ(nheV`ra?r)dh>vrk&bkD>>SFqq%DT*$;=I{sR4l@C&!fG zLmPQ2N9Cq6+o8Yeoa(M=g|>Tlq_?kGLL0cOj^*&Im{`Df;gT+|y6uYSWje16@87nX z!wti<`SP6~TwSuJ6&mPOnbP0Qy%fw}({Af~_|@W|!F49nDvUAQ0?+D{{<_14^@O6H z%-sAUr5h~|ROR;P*Hnxb)sD>{cGc$4SDY{y39I$(fAS2(uG1Z(XCQ|wm*>`v!IMih zSt1TqdVPy`ybf0f?a$?EtptGit;y4x?Q3f|wo31zznM4{8?-^GZ@*^m4j_16`8$gB zK9=H~a;)5swEnDot#*}Twv=7!e5}08@OYawExWu}$KP$H@Myai)kZ}{O>JyrlQ->6 z;p$F73emwhWGh=nC9O0=Lw4@~9!#11V?xaSKD72$Ze>=1z`72h5Kmehp*E9Aw2L6Cv#eAr(cB| zpPX6ke2xGjLdLBnN1A!x<6&^HG}QpfEmLhMVE;2cOeFalmM+o0t?MfWuv5wF(V!LX z@q3e@1?|ng%zr6O&Mxn}3P6#h1GvoAJd6*X7aUxDoszz&6gVmRPz;G;we0OkB7b>F zDFj({0+b6nZwon1*7u|>jp32_S3Vrb-+g0&!DU}4MN!T{;^~Lk*xx@n`Oakpty&|j zDy8Omj0-2IQmAy`OZ>A~0(lcPj{fy^C`R(A`)s(`bNg4Ybn~<7vh!RNr6vF7b!VsY zi;L5h58!#icH*yELgiB1PCs&ENx#po zZ94*S18=OUFI%!YEy?}s=sKSogAD9Ial6~4`|9QX&~u-yDZD>96po8Zn0N`|AdttP z*E~~fX7G(}WGJfx-<^TdAU{cth@W3uPg$6Zk2(6}_F3D~z3@OK+d1mSj02>_0SH_M z&)ItfJ1E<0~bqJp?2A*iXz4iHwlb(*_xiuy0#OB<_ z6A~fJ+tgGjkkjTuY@wdf8{k&=8&u!t+o6Et+NOju>z?)nHRhE8a)R-&h*k~4z`Q8%NRh5CwUSTm?-y;d%8TXC zEw337wlwMADxY1_0Eq^wIVcngJ9fn`f1N6&${J@Y^v3&M`_H?}>PbDqkQS}b$lyhNlB%kz zWSQfcnBJVw-|zNn2y`Ak#E+(66L26J<;xK1wj}`&n~=8;aOD+9NT`38m9a9Jn_#s3 zqGljd>7-V7N5w*71wL4-inN%;-6)rIMe zvk`&@hko`1R(NN9oUDenwyI_fhL@K&t|FeUmmm0ps&ajs=hCiSzfshIb`*wqn&n`8 zF56}dup2So=*YuR?6nxmVDA{wP7Z-V@aJHyw;yFE|XLcY^2IZYL}83-k!UyH>`r&Ws5RAySW|W>~3z$Cf9%3(&7{ z{Ah3#9t>HzS!-2X+r`6}@nB>td4k@eABUzxyXDpor?UlWwixs-G--5@nON?s6Lxt2 zL>crZ!vpy+y~L9R>hr8l(=(krD|z3SUl88CB6ru;`i;`aSO_HCbYkx`w7^0V`B-9D zKC-yiD?iZc=zk{MXkL{1ZN=Xpb=r1Z^?Y~;aeDC1oP#VwY8fU>5^b{$0|ma`#c3hM z4CW_U^9c#$zl zdfX;2ms)PYrrn&w8*3jQASNL(*3cmS(bE%^o}O+mGSt)4WA}@o9E%nEVP?v|E#U=i zkmWF&VT++)d-(Vn*F%A@lS4mAz0@x1*r)a-y1lf% z6H0-h3=hh@0G~nGe4|N5)%IC= z!*#@OCN+rnLq}BX%a_)ooIOdPF*(7NQ|XnS3wvMUjHIXW(9qG<$migzf?%_!A#_QZ zr(~rVYZ!j(0{DwO(f>_c^&iM{SG|u=i;(EC2+u3G7e@!51CLv^_2sNH+K5#N_ZZdp8E9GEa*dX8kc>d)yBC5WhW)e` z2|8Jbkr9|ixzK~ZfB4CMJ3_8)d%geePozHVNAUY9bTfs(7|qIJLfV=d%Tat}V3k?# z{B+Esu2}^&{UJ8h#0qgyUKPU@!ax^a*kxyujJ{Rabt&ivz=K7pM#(t%?{0ooad5|4zZeGRZw#9AjI(p6|Q?e2$ zPdB_k@7rZZZSq^9Y&Y3I1N8hR%NMF|eK(f9K{yGpDSlbc&+lzsF=oJy0;Xe45W)Ie zL9wqg4Do@9dI7qMV_V&;_^BqzscYebB0*U4N7~i?PS@PiWmiVry>OTKBvrZG)JA-Z z-+a)cFO=c=f8H%T^18Qz8cuveFW_A&<2_{b!sY%P&dFidpN+?m)u@lwstZMBSy{{% zM(3hU0vmBi2y^ff*~MN`=yIz`h7h>G-fg$M`=^yquBlYBWz3g~h4HIY9ka$M#8G`@ z;01cIhR={Gt3SKVf6^9Cj1gxPvI2JW2U=1;o(1QK5rg``*CIZ34Uf{0x27%gYb>vwn4d_gbU%dFt{+O`8 zuaEBe^XEp+&Yw2VL+6?%=+b1;KU1K5eV|D%j z9KS5ubs?$7@nkg#nbV(C$dNZ01g3p0hr5x@gqJ^RNu7_ zT*&hGhNhXR$!WwnzZ9fhM3Ooa$$6ND05jx49tLvkE0DM^JkbjS0ZOLlJIaa`-W*Oa zwSa5cV^zI2&Yd|%R3w|{lFpc~d_M2^^^(>J1VV!_)M5h~C_`fYu(r=|NRO*E8 zxI(CYZ<^ARy!js4*MATE77r;Y1Q0pdh35>Vycfz^I2CJh|4L$nz+ZDsc|LI7j*hfz zhT}eYC`GwcvD!kcCK zOXV(gKt|=b!R#1CI^g=riID2I|2odieI~I=QjeCs=mW2Cb-~m3o&q57n5De{5JC~; z*jFziZ%Ee*nWv53mo#~G6^$Ii;@HEMi#gu+vOFhzkC%8QJHDF_ft{ib^)V0}d@C@j zKGc`TQ;v+O-T!sW#r+$7BJD!M`e-_)zxE-=ajC%TS5Ud5ZxJEz(VxiOr6+P$P#Ey~ zHRKLPOn8ztVH zCq1*y5H?iuh){4Ctrh4Dx_`+XE0^}+=~7g(x+lY7hv0)%9!*jUwwo2rUtood*#w#{$ zIqh(Q{tlgLY_}~-r-9{Qf_B3Q&yceiFgJJF$ZkP6`4l5IdU$=fG5BSNuaVk!kyhTu z4UlI*veTVkI+J|T8)Z{(8ULe@JQcWO;%!5y%O@1;Ma(`Q_$yGB!>1sP>w+tqffpBN zMhj;EMY~GkjEB#Y0})-l5H&E>iJBTOMO@!OlecWdx4(Y#9&~TArXk6`jHD=N1obiC zcnYweOL9J^C2OrsRA!$$m{08j^`RytW4-AX+R7KCsR3a$8jtg@=^(|1UTGrx+PTl_4P z1@r{WH5 zMf0m?q}?XFhxj@zo>x3>B5 z*?RoK_+be9UK8GGKOz<_Z7w>=bY8j%Tj*$>no1B-dA-+|3?`&7TMrW+8wAMdmAQp!h?GqgqhbgQt<5ozt|H zzlyXiyIg)Oe1uGhUMMQ%PhBjMk&X849$@44a@u#0mNE&vTz-we;>u-Lu8qY<_%ALR zZ7!{PgkPuz^91X9(n+^_RN38-8YcI*!AG9)FERrh92^*Z_uq}xZ=|dIiO72rFPd=j=8>|Skdk>blFc(`^L)=$k?RCWP+S|?%;HnVG%lc%q#+2ZSUqvy8K z0?%4QCn-LItXHD>z#wPiA9w1C;OH!RZ>I3%x*`l`f#RF@Q*16LLJlIoW9{8aVi(KCt22;Br(uA;HbM1zS7HU=0oWM1&sY zLbSefk7;0SBn?!f4e_|-ePv#bj@HhR>nZ$g2i~?;0AsrF($i7Yg>nlH#+}}CixGWV z*s|gBJ=CDjKHnZ4x3sgVk`{CJ#lH5#pIYzOhDriXPEOB-{2gl;>3~v9n@F_v+}EyH zHYvOhAMj^n&W+31sFS`WKAhOx=EvCcDC=vUoNC1FnqG}8ZKhVi-s)TY8CtOiSwk>r zxeH3?8@ue0MJ%O5MsRZ+2AoY&1Tb+Uf}B)5lSQ(Xl?>}E6dB2W_bv@ttmoAxt&3RR ztA_xlWYOlX*|F0G906~-oIi*=W0FOL9$*WK(I;56H(B;4q#+UDIp>(;q7WNs=7Jjt z7i3p1iXcy{pbu;8SE$NoVE|g$=bNQ)0a7Tga@`K$SH$A*_5y)FA*RQWiE_M<1z`V~ zs|3$yvBvLbDX-{RXJW|@yNagRIg5m08|`feh@ce{t^;4ZI0?B4`(zy#&gAehUl|xH zCOK9a4#R=W>;O`^+$g&FMoqc%mOS0af2{N^DXr|LXsu9yG5AQ%Pl+)x^GoMeS5qQb z5++&7l^|6YtB$-=o1|hWtiO1Vx4_I{o?0Y~s%*6;{r{}P{|QZmK$-LhmH{-$Qc=54nE=R#HUZmwt8+a5H6>-VRvNkq0rpv-5O__9KoHJSA&#%hAg*cg5 zuEE~c$l_TcjBD-5f>sUXmVT@70DwwBz_+XCk9F`DKD)(7et%>Q=IN_+I7R#EF z0{!{tfOOymEcNYMiJj1Z(>ts|p=o*N?Wikl5jI;5{HnLuHJAiud3m|YyqVeXJCj$^ z;OWK3`!6`pdmczMbVrVijN}qW6H${_RhaL{8yVf6LXpIs!GbsJ4bjq zjM7fIuXf&`^Q!yEl^V$9nSW9rG}hxMu})(Et9f&88snJXJ!xEbet1>atgk!YwP-PV zS)*W#d>DokIq7OYmT|GcvEtq-^Dv>IJ2rCpS^Ca2!a85`o(wAUplZTW#9puJ+cyg} z^~qb`Hv+go?&q6JC2FfdB=#Ah5!dHk9=k`C=&rN6r|E;GEP;osVHM^<7}vIflP1Xh z_MN>3?5g)Y;}qZ6xHv_1bs`N7jVy)S0;^Bj5C#Cu_)MEPDKlp$UK)o67fkMJd2Hf( zE+tDyZW_3LZ@g_xQUyQnBP4Q4`ld#$t1D}8*OB{?1m^V{p81F^(vBDv+r^WdlMc2k z0H`w3&@pxC05dEhJ`r-&#DwU{;Fr8NA}baQO)1RE4L=E|5VJr_XEMZGCYVaQJ9I-C zfh>;IH9A1{$8~MN0s-*;Jw7D1V=3wSTYG!n?rw)=&DXEU>Y!t;8rFTcIa#xGp#_&0 zn+&^yeHP9s?k5x257UQ4VTc;!<_^!U|Z5*truK{W)TAf}TaP({^)0 z`qN%j zSX)~cm%3oI<=(a1@V;*GsOmWWzPXMakTU%cd;*a-Hh$lIt~VFtL&yyL=|>9wH4Nt- zD`i!w_P*db{FVJp!4d<^&hXxcZ>L1l1oKXwP5M{BmR zPS;CWc(+I5xc)dy^xsV5I2rA9Jk(xA5bU(ZQP0IJ>e`7ZDsomWp(Kr_k#B;18Y;eA z9_?@ah-L%crlke7Xk%MfhNUsb!Xdq+fe`#waw|mc_!oPJs%apb9A*{M`hh&Km9=TW zbHqYK-tW@Qrgl>3RD0txaM%&m2AT&Bfr_=kRBNBCg8Z2Rg-78>gQ`+Pen;09VgS6F z*v*Z5*6k2{AX|!Ou{E?43J}LT?{=uO^IhH)@VWh!2YI2GiY0uI`g5HTxYYUGK|$D7 znZH-I;|u(;|7m~RA3*z0Cr|cYIeDd+PM(L0@xIy|*C($iHgcx}ZGY4<1zT8`kB54F zfsP6EB^o;&OCqP=qUcqV^thy?GN;WN8oil};g@zT2Z>JxeL8VYogzLA@vC@K>`dY#3@MO7;te82R`g1SWnb@-IL^=dDRqOxcXU^o~gT&t0tdPyt%iC7F&1~#=Vg5 zbD2owx0E6k%@G0@kk#G5pxml(DM^W1w6u1gjjCzm3TeiSEgZ$ z^(C_+tr7vCRt}_+LKChpRu2P3N5;RvsKTqNbVS+PPiqa!Mq|Y#xz}>;2z+h#MFw7S zj|RdOV-LZyRm&LR;hBYe>|+8JW>o~#)^qDs-M{;G=I+@4@a=7(CnyUfjI;GKLGCLB z9>NBjS_J}jT!0!k7HJQ;-_+%r@L?f?B|K3UnSM`ALqjnnL{|2EQ$+gmaQLS)%H}fg`mwJz zwnTQ+@N=7X3}$U@&8Xg;e0&`vB~Kv$SbA1{_Uz_p(V3nc zX8l~6*i2V`FVL+ zF}Zttd$RP$w0~KHay~)+t;r7FMMA5Znx>ZEg*xz0pcHL1Sg=Nxk--SM7{&iY0<5Y_ z&l(c{+v2$*h2;JH=l}Ln5ZNX;3qV5ncNX9uJlC2rS}TjU#Ry`-O@ed_%e3hq@_>DK ztq6{P>&E{NQQ&`W-2a!a_N)M)e&iiEQYu0-v>hT1lupVu*3;^RuAd3-VA&(TadB~V zY;_ia7xEhEKUzd*1uBOMkyQ1a61FtAxZUBdXClR_`10i$p zQzXuuTE5H!*OQ2ercygLRZQlt@2zeQXJ22jyu7@E5Mv(X8PJ_@Bch<-=JLwQQfpZJC@Gw*|RFUo>UHyTe#;^{#S;GE}Ji}Z)v8Fa4^u)-rDFI zhfCt-Nc!IS@#BY(@46l!f4u#R^2QC`wYZW-Sq>9BQAV%z5ng6#f0&AjiiH0z`{Qg$ zy!^r2nlg>12ryiAcNeg+wN1&)Bms(xixH#F?|iyO%#bkt(u#_Q-H9wuo<5BLi-AAJ z6m1i}IEwz5f*zj1PIebMB!W*oYggViiQnEi(>M;p)qvk}E^Tbn-M}e+-m(4=W^{6hgTXMHdF66@huNV*WDfRXB`=+fsqOH%5wqB2_YirY|-ZdV& zy9=J%oXsUqj(_`xBq$na0$@}K0HCI~wM1I_k0&K2Mt9kG1(l)Bz^j7-hg;KzgHz7M zJ54(>GUP{RS{Ej`OwnRuFkef)jQp8*|^_Y z`R;77o~?79lFg+sMCb!>s2dpAG=KIk3oHmrAjcKqfICaSMtz9?xJT2qIr!kxN(r)x zGwUHfi#0c8mNsE)**KWJZrLE9<`7KkyQAHb--%)bwF;NwAN9yVzp(#x8(Z&OzoB0I znb>*T(#}eOll@mYH#xV^;g!0&%kLs=Zl5m$c0z8R9+e6Mb5qG(7UpMAPA)EMlnH19 zFXvE9)OxvqKl!A?K@gcrIWJaBYHiJkt{niC2jMraFAD>b5M7i^4m#q8mp11)f9@k2K5+c!0^VDWY~WbajFDn;1PbSTKS52lAxSkH#|q&V;toyDhqz8VN^V4o~S z7573`ODv&?gSJuUE~G_B3Z9E9fB%+YM<%lSsI&yH7<-I1Mb88@9QT`t3V;$nN(>`@ z5HJdLEwQXvEJ7v^G}jmKef+9q<#mppy+)aC+!Yt6<30W*=)_+-x_;4fJ#j+xNrHy1 z-jejz-Vr9nWp zVY&EI<%$l~B1ZuCP11!A?f|AFw@Pq&oKc(~{5*ViM%4Gm3M)I^f?Y3g0nfGv{qJ(# zxSd;qS3PTSno&@>Rr>KS#qlEwHlO-WA=efBq4zGLf5{kq-a;PAE$JVecLzv3d?s`G zrm5=%YobBn2!9XvRPe)9P_L>pFU2HJdab`phI@=H%uqF+S!K9~4jUj&vJ5`YQS-Z^ zT>x>~pVLU`gD26fTc+3A^c8C2u;;aqv{Zl7xl&n-v50Oq9HDjVaGT%BQf1h3*_5ef zVw%s=1=Tk5M#Z65&9|?Ys__VNr~0yd)bRN^{l$^`%0li0!N=vJpih;ZM>zMdPP)E+ zl{Cd@Twis~HM_tkc{Jq)8b=jiu8o|=B_9>WQWY31xiyFV!dh>JoG345>S$si-PULc z`TS=*GCOD0)zy7Ub2T->UFWwO$LI+Z1kBLBt(D5iY*H*Q&?>sQ{l(}q4b|5TuH?gZ z?Y|9cw<3zZq~_rha}{@AkRZlY{bu; zqI{J8d@kd2XPvIxgg=Oj&slR#HtuI<@y$Ayv>6>=Qq)VCa+;J-U~GF#Nw5)nFeB6f zFlu5+iaeH^*}l*Off|vICl2nv4?Ca%*N&MsDVbZh{-_&+p&CDK!b=}$_KTm3dYfso z?zc1Y{d80iG`xDlwvQ!ei+(m;FPk)WLUXWx?_i7uIjjL+QC>|=#k0B;*N()0E5n5U zH-51+$I{9$B`9KBL2M!<;uZzFDgQsyHUAvM86JJ*=1ElKe zW%uNerk8&Qbw0mvt6izh3D!L_Fal?89?KSEP?ki4u*x$)^K2)XU~ zm<@C{xjt*J=#Xo_U&f7Y{rkX+VjTisp+%?Z5GVb`qn3~pQ^ZhVVT<8Q*djp&!7AQx z;s$>k6u?umYAQA(NrrLC5X*be&@{}TuaaO?Rp1!DQv&j8S1hK`uDC0nRKq9c3@?@9*c%5!^f> z3FhK_A)MBM-PnCX>V-5c*m@zKC4I5-Wc Mt2|b&P_zpF7xAe?xBvhE From 67841c3f195b97a67d2d34f43d1e03ab718d3335 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Sat, 2 Jun 2018 17:04:26 -0400 Subject: [PATCH 074/205] Fixes pocket items being deleted when monkeyizing (#38220) --- code/datums/diseases/transformation.dm | 2 +- code/game/machinery/recycler.dm | 2 +- code/modules/admin/verbs/debug.dm | 5 ++++- code/modules/admin/verbs/one_click_antag.dm | 2 +- code/modules/antagonists/highlander/highlander.dm | 2 +- code/modules/assembly/bomb.dm | 2 +- code/modules/clothing/outfits/standard.dm | 2 +- code/modules/mob/inventory.dm | 2 +- code/modules/mob/transform_procs.dm | 6 +++--- 9 files changed, 14 insertions(+), 11 deletions(-) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 52b63ccd5f..8008c185a5 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -55,7 +55,7 @@ if(affected_mob.notransform) return affected_mob.notransform = 1 - for(var/obj/item/W in affected_mob.get_equipped_items()) + for(var/obj/item/W in affected_mob.get_equipped_items(TRUE)) affected_mob.dropItemToGround(W) for(var/obj/item/I in affected_mob.held_items) affected_mob.dropItemToGround(I) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 08fcb1baa8..8b1e104089 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -181,7 +181,7 @@ // Remove and recycle the equipped items if(eat_victim_items) - for(var/obj/item/I in L.get_equipped_items()) + for(var/obj/item/I in L.get_equipped_items(TRUE)) if(L.dropItemToGround(I)) eat(I, sound=FALSE) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 2fd212b4dc..e837953f4e 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -734,14 +734,17 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) if(!dresscode) return + var/delete_pocket var/mob/living/carbon/human/H if(isobserver(M)) H = M.change_mob_type(/mob/living/carbon/human, null, null, TRUE) else H = M + if(alert("Drop Items in Pockets? No will delete them.", "Robust quick dress shop", "Yes", "No") == "No") + delete_pocket = TRUE SSblackbox.record_feedback("tally", "admin_verb", 1, "Select Equipment") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - for (var/obj/item/I in H.get_equipped_items()) + for (var/obj/item/I in H.get_equipped_items(delete_pocket)) qdel(I) if(dresscode != "Naked") H.equipOutfit(dresscode) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index fd9de5308b..410e976b85 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -290,7 +290,7 @@ /datum/admins/proc/equipAntagOnDummy(mob/living/carbon/human/dummy/mannequin, datum/antagonist/antag) - for(var/I in mannequin.get_equipped_items()) + for(var/I in mannequin.get_equipped_items(TRUE)) qdel(I) if (ispath(antag, /datum/antagonist/ert)) var/datum/antagonist/ert/ert = antag diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 6f50e69c84..4e511d7fac 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -42,7 +42,7 @@ if(!istype(H)) return - for(var/obj/item/I in H.get_equipped_items()) + for(var/obj/item/I in H.get_equipped_items(TRUE)) qdel(I) for(var/obj/item/I in H.held_items) qdel(I) diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 25a0e804a4..9e3ffaf483 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -117,7 +117,7 @@ if(isigniter(assembly.a_left) == isigniter(assembly.a_right)) return - if((src in user.get_equipped_items()) && !user.canUnEquip(src)) + if((src in user.get_equipped_items(TRUE)) && !user.canUnEquip(src)) to_chat(user, "[src] is stuck to you!") return diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 6375f7986f..88752f7415 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -151,7 +151,7 @@ r_hand = /obj/item/twohanded/fireaxe /datum/outfit/psycho/post_equip(mob/living/carbon/human/H) - for(var/obj/item/carried_item in H.get_equipped_items()) + for(var/obj/item/carried_item in H.get_equipped_items(TRUE)) carried_item.add_mob_blood(H)//Oh yes, there will be blood... for(var/obj/item/I in H.held_items) I.add_mob_blood(H) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 4e945b437f..44af3936a8 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -379,7 +379,7 @@ /mob/living/proc/unequip_everything() var/list/items = list() - items |= get_equipped_items() + items |= get_equipped_items(TRUE) for(var/I in items) dropItemToGround(I) drop_all_held_items() diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 45aa3b06ff..f1940be0e2 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -23,7 +23,7 @@ CH.cavity_item = null if(tr_flags & TR_KEEPITEMS) - var/Itemlist = get_equipped_items() + var/Itemlist = get_equipped_items(TRUE) Itemlist += held_items for(var/obj/item/W in Itemlist) dropItemToGround(W) @@ -174,7 +174,7 @@ //now the rest if (tr_flags & TR_KEEPITEMS) - var/Itemlist = get_equipped_items() + var/Itemlist = get_equipped_items(TRUE) Itemlist += held_items for(var/obj/item/W in Itemlist) dropItemToGround(W, TRUE) @@ -495,7 +495,7 @@ SSblackbox.record_feedback("amount", "gorillas_created", 1) - var/Itemlist = get_equipped_items() + var/Itemlist = get_equipped_items(TRUE) Itemlist += held_items for(var/obj/item/W in Itemlist) dropItemToGround(W, TRUE) From d8113dfc99e1be2c33c5204e3a611fa926a41d85 Mon Sep 17 00:00:00 2001 From: Jordie <4343468+Jordie0608@users.noreply.github.com> Date: Sun, 3 Jun 2018 06:41:58 +1000 Subject: [PATCH 076/205] Fixes datediff not returning (#38215) --- code/modules/client/client_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 2d12b7b0a4..2723370cb9 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -520,7 +520,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) if(!account_join_date) account_age = -1 else - var/datum/DBQuery/query_datediff = SSdbcore.NewQuery("SELECT DATEDIFF(Now(),[account_join_date])") + var/datum/DBQuery/query_datediff = SSdbcore.NewQuery("SELECT DATEDIFF(Now(),'[account_join_date]')") if(!query_datediff.Execute()) return if(query_datediff.NextRow()) From d3f34517dce0f75cb2447fd940177065ce7603cf Mon Sep 17 00:00:00 2001 From: Jalleo Date: Sat, 2 Jun 2018 21:23:52 +0100 Subject: [PATCH 078/205] Slight changes to camera network code --- _maps/map_files/BoxStation/BoxStation.dmm | 1 - _maps/shuttles/aux_base_default.dmm | 9 +- _maps/shuttles/aux_base_small.dmm | 149 ++++++++++++++++++++++ code/game/machinery/camera/camera.dm | 1 - code/game/machinery/camera/tracking.dm | 8 +- code/game/machinery/computer/camera.dm | 2 +- 6 files changed, 154 insertions(+), 16 deletions(-) create mode 100644 _maps/shuttles/aux_base_small.dmm diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 27d68bb5cb..bf4f82f883 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -12246,7 +12246,6 @@ "aFe" = ( /obj/machinery/camera{ c_tag = "Dormitory South"; - c_tag_order = 999; dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ diff --git a/_maps/shuttles/aux_base_default.dmm b/_maps/shuttles/aux_base_default.dmm index d35420ebb0..e093d3c864 100644 --- a/_maps/shuttles/aux_base_default.dmm +++ b/_maps/shuttles/aux_base_default.dmm @@ -1,4 +1,4 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "b" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -44,10 +44,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/shuttle/auxillary_base) -"y" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) "z" = ( /obj/machinery/light{ dir = 8 @@ -82,7 +78,6 @@ /area/shuttle/auxillary_base) "X" = ( /obj/machinery/camera{ - c_tag = "Auxillary Mining Base"; dir = 1 }, /obj/structure/mining_shuttle_beacon, @@ -142,7 +137,7 @@ P k k k -y +x "} (6,1,1) = {" v diff --git a/_maps/shuttles/aux_base_small.dmm b/_maps/shuttles/aux_base_small.dmm new file mode 100644 index 0000000000..a7ddb70a9b --- /dev/null +++ b/_maps/shuttles/aux_base_small.dmm @@ -0,0 +1,149 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"b" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"c" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"d" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"e" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"f" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"g" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"h" = ( +/obj/machinery/camera{ + dir = 1 + }, +/obj/structure/mining_shuttle_beacon, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"i" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"j" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 2; + dwidth = 4; + height = 9; + width = 9; + timid = 1 + }, +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/auxillary_base, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"k" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"l" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"m" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"n" = ( +/obj/structure/closet/secure_closet/miner/unlocked, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) + +(1,1,1) = {" +b +e +e +e +e +e +l +"} +(2,1,1) = {" +c +f +f +f +f +f +m +"} +(3,1,1) = {" +c +f +f +i +f +f +m +"} +(4,1,1) = {" +c +f +h +j +f +f +m +"} +(5,1,1) = {" +c +f +f +k +f +f +m +"} +(6,1,1) = {" +c +f +f +f +f +f +m +"} +(7,1,1) = {" +d +g +g +g +g +g +n +"} diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 2ea74637d5..1f2017ec6d 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -19,7 +19,6 @@ integrity_failure = 50 var/list/network = list("ss13") var/c_tag = null - var/c_tag_order = 999 var/status = TRUE anchored = TRUE var/start_active = FALSE //If it ignores the random chance to start broken on round start diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index c327f4c17a..1dbfe9d055 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -146,10 +146,6 @@ for (var/j = 1 to i - 1) a = L[j] b = L[j + 1] - if (a.c_tag_order != b.c_tag_order) - if (a.c_tag_order > b.c_tag_order) - L.Swap(j, j + 1) - else - if (sorttext(a.c_tag, b.c_tag) < 0) - L.Swap(j, j + 1) + if (sorttext(a.c_tag, b.c_tag) < 0) + L.Swap(j, j + 1) return L diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 4ccf9d588c..7e901667ab 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -196,7 +196,7 @@ icon_keyboard = "mining_key" network = list("mine") circuit = /obj/item/circuitboard/computer/mining - + /obj/machinery/computer/security/research name = "research camera console" desc = "Used to access the various cameras in science." From 5503e00199309e779306da7f52b95e46552f2853 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 10:41:41 -0500 Subject: [PATCH 079/205] Automatic changelog generation for PR #6985 [ci skip] --- html/changelogs/AutoChangeLog-pr-6985.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6985.yml diff --git a/html/changelogs/AutoChangeLog-pr-6985.yml b/html/changelogs/AutoChangeLog-pr-6985.yml new file mode 100644 index 0000000000..7fa4518219 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6985.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Switching mobs into/out of a mech (by VR, ghosting, or mindswap) no longer improperly applies the mech's cursor." From 927e3af71a356312158dc8a8a39704520b28ae4c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 10:42:29 -0500 Subject: [PATCH 080/205] Automatic changelog generation for PR #6987 [ci skip] --- html/changelogs/AutoChangeLog-pr-6987.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6987.yml diff --git a/html/changelogs/AutoChangeLog-pr-6987.yml b/html/changelogs/AutoChangeLog-pr-6987.yml new file mode 100644 index 0000000000..491a186af9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6987.yml @@ -0,0 +1,5 @@ +author: "Nichlas0010" +delete-after: True +changes: + - bugfix: "You now can't get multiple download objectives!" + - tweak: "RDs, Scientists and Roboticists can no longer get download objectives!" From ab7709bedd9cf60f703048bb42c2b59b6f2e55d7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 10:44:53 -0500 Subject: [PATCH 081/205] Automatic changelog generation for PR #6988 [ci skip] --- html/changelogs/AutoChangeLog-pr-6988.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6988.yml diff --git a/html/changelogs/AutoChangeLog-pr-6988.yml b/html/changelogs/AutoChangeLog-pr-6988.yml new file mode 100644 index 0000000000..4b29f0fb09 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6988.yml @@ -0,0 +1,4 @@ +author: "cyclowns" +delete-after: True +changes: + - bugfix: "Fires no longer flicker back and forth like crazy" From 0d42b1c4d12ac573837f1063bd303d08f880c647 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Sun, 3 Jun 2018 18:02:27 +0200 Subject: [PATCH 082/205] Replaces airlock_controller/incinerator related varedits with defines/subtypes --- _maps/map_files/BoxStation/BoxStation.dmm | 123 ++------- .../map_files/Deltastation/DeltaStation2.dmm | 128 ++-------- _maps/map_files/MetaStation/MetaStation.dmm | 130 +++------- _maps/map_files/PubbyStation/PubbyStation.dmm | 237 ++++++++---------- code/__DEFINES/atmospherics.dm | 31 +++ code/game/machinery/airlock_control.dm | 166 ++++++++++++ code/game/machinery/buttons.dm | 38 +++ code/game/machinery/doors/airlock_types.dm | 42 ++++ code/game/machinery/doors/poddoor.dm | 20 ++ .../embedded_controller/airlock_controller.dm | 37 ++- code/game/machinery/igniter.dm | 12 + .../components/binary_devices/dp_vent_pump.dm | 12 + 12 files changed, 545 insertions(+), 431 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 27d68bb5cb..fb43a1d231 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -36023,10 +36023,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMu" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "bMv" = ( @@ -36036,9 +36033,8 @@ /turf/closed/wall/r_wall, /area/science/mixing) "bMw" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ @@ -36047,9 +36043,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "bMx" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_y = 24 }, /obj/machinery/atmospherics/components/binary/pump/on{ @@ -36074,14 +36068,8 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -36411,33 +36399,17 @@ /area/science/mixing) "bNu" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /turf/open/floor/engine, /area/science/mixing) "bNv" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) "bNw" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 2 }, /turf/open/floor/engine, /area/science/mixing) @@ -36867,9 +36839,8 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "bOE" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ @@ -36904,15 +36875,11 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" + pixel_y = 5 }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -25; pixel_y = -5 }, @@ -45814,19 +45781,13 @@ /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) "cli" = ( -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = 6; - pixel_y = -24; - req_access_txt = "32" + pixel_y = -24 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -6; - pixel_y = -24; - req_access_txt = "32" + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 4 @@ -46117,14 +46078,7 @@ /area/maintenance/disposal/incinerator) "cmf" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Turbine Interior Airlock"; - req_access_txt = "32" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -46132,17 +46086,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = 38; - pixel_y = 6; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = 6 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -46379,9 +46325,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_x = 8; pixel_y = 24 }, @@ -46406,10 +46350,8 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -46603,14 +46545,7 @@ /area/construction) "cnC" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Turbine Exterior Airlock"; - req_access_txt = "32" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -46874,10 +46809,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cos" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Auxiliary Incinerator Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cot" = ( @@ -47559,10 +47491,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "cqt" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cqu" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index af3cf7bade..454828be9f 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -15401,9 +15401,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_y = 24 }, /turf/open/floor/engine, @@ -15960,10 +15958,7 @@ }, /area/security/execution/education) "aNO" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNP" = ( @@ -15997,9 +15992,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aNR" = ( -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/structure/cable{ icon_state = "4-8" }, @@ -16011,14 +16004,7 @@ /area/maintenance/disposal/incinerator) "aNS" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Incinerator Exterior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable{ icon_state = "4-8" }, @@ -16033,23 +16019,14 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 2 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNU" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Incinerator Interior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable{ icon_state = "4-8" }, @@ -16057,16 +16034,8 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; - pixel_y = 27; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ + pixel_y = 27 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -16735,24 +16704,17 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aPA" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 8; pixel_y = -36 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -8; - pixel_y = -36; - req_access_txt = "12" + pixel_y = -36 }, -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = -8; - pixel_y = -24; - req_access_txt = "12" + pixel_y = -24 }, /obj/machinery/computer/turbine_computer{ dir = 1; @@ -17622,10 +17584,7 @@ /turf/open/floor/plating/airless, /area/maintenance/disposal/incinerator) "aRo" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Incineration Chamber Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "aRp" = ( @@ -99678,14 +99637,7 @@ }, /area/science/mixing) "fpQ" = ( -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/engine, /area/science/mixing) @@ -99713,9 +99665,7 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 }, -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -99950,17 +99900,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/button/ignition{ - id = "herrington_memorial_toxigniter"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -6; pixel_y = 30 }, -/obj/machinery/button/door{ - id = "mixvent"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = 8; - pixel_y = 30; - req_one_access = null; - req_one_access_txt = "8" + pixel_y = 30 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera{ @@ -100065,10 +100011,8 @@ }, /area/science/mixing) "lyU" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 8 }, /turf/open/floor/engine, /area/science/mixing) @@ -100143,14 +100087,8 @@ /area/science/circuit) "mkm" = ( /obj/machinery/atmospherics/components/binary/valve, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_y = 26; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_y = 26 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/vault{ @@ -100206,15 +100144,7 @@ }, /area/science/mixing) "oIE" = ( -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_one_access = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/engine, /area/science/mixing) @@ -100254,9 +100184,7 @@ }, /area/science/research) "oYI" = ( -/obj/machinery/igniter{ - id = "herrington_memorial_toxigniter" - }, +/obj/machinery/igniter/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "oZC" = ( @@ -100359,9 +100287,7 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "svv" = ( -/obj/machinery/door/poddoor{ - id = "mixvent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "tmi" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 48f741a178..b8a827375c 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -52974,29 +52974,14 @@ /area/maintenance/disposal/incinerator) "cja" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Incinerator Interior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, /obj/structure/cable{ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = 40; - pixel_y = 8; - req_access_txt = "12"; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -53704,9 +53689,7 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 }, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_atmos{ pixel_x = -8; pixel_y = 24 }, @@ -53719,10 +53702,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 8; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -54366,14 +54347,7 @@ /area/space/nearstation) "cmd" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Incinerator Exterior Airlock"; - req_access_txt = "12" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /obj/structure/cable{ icon_state = "1-2" }, @@ -54833,9 +54807,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cne" = ( -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/structure/cable{ icon_state = "1-2" }, @@ -54855,10 +54827,7 @@ /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cng" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Incineration Chamber Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "cnh" = ( @@ -56943,10 +56912,7 @@ /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "crf" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "crg" = ( @@ -63457,10 +63423,7 @@ /turf/open/space, /area/science/mixing) "cEr" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "cEs" = ( @@ -63470,9 +63433,8 @@ /turf/open/floor/engine/vacuum, /area/science/mixing) "cEt" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ @@ -63487,9 +63449,7 @@ /turf/closed/wall/r_wall, /area/science/mixing) "cEv" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; +/obj/machinery/airlock_sensor/incinerator_toxmix{ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63503,14 +63463,8 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 }, /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -63902,35 +63856,19 @@ /area/science/mixing) "cFo" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /turf/open/floor/engine, /area/science/mixing) "cFp" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "tox_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 2 }, /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/science/mixing) "cFq" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/research/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) "cFr" = ( @@ -64354,9 +64292,8 @@ }, /area/science/research) "cGj" = ( -/obj/machinery/sparker{ +/obj/machinery/sparker/toxmix{ dir = 2; - id = "mixingsparker"; pixel_x = 25 }, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ @@ -64379,15 +64316,11 @@ dir = 4 }, /obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; +/obj/machinery/button/door/incinerator_vent_toxmix{ pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" + pixel_y = 5 }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; +/obj/machinery/button/ignition/incinerator/toxmix{ pixel_x = -25; pixel_y = -5 }, @@ -67135,8 +67068,7 @@ /turf/open/floor/plating, /area/maintenance/aft) "cLC" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 8; pixel_y = -36 }, @@ -67147,20 +67079,14 @@ network = list("turbine"); pixel_x = 29 }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = -8; - pixel_y = -36; - req_access_txt = "12" + pixel_y = -36 }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = -8; - pixel_y = -24; - req_access_txt = "12" + pixel_y = -24 }, /obj/machinery/computer/turbine_computer{ dir = 1; diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 3a75a0b048..4077ea65b5 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -31516,8 +31516,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -32098,9 +32098,6 @@ dir = 4 }, /area/science/explab) -"bFg" = ( -/turf/open/floor/plasteel/white, -/area/science/mixing) "bFh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -32535,6 +32532,9 @@ /area/science/mixing) "bGn" = ( /obj/machinery/vending/wardrobe/science_wardrobe, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGo" = ( @@ -32554,6 +32554,9 @@ pixel_y = -2 }, /obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGp" = ( @@ -32578,6 +32581,9 @@ network = list("ss13","rd") }, /obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGq" = ( @@ -32595,16 +32601,25 @@ }, /obj/item/assembly/timer, /obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGr" = ( /obj/structure/tank_dispenser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGs" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel/whitepurple/side, /area/science/mixing) "bGt" = ( @@ -33057,12 +33072,8 @@ /area/science/mixing) "bHz" = ( /obj/machinery/atmospherics/components/binary/valve, -/obj/machinery/button/door{ - id = "toxvent"; - name = "Aft Vent Control"; - pixel_y = -24; - req_access_txt = "0"; - req_one_access_txt = "8;24" +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_y = -24 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33078,14 +33089,9 @@ pixel_x = -6; pixel_y = -24 }, -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "tox_airlock_exterior"; - idInterior = "tox_airlock_interior"; - idSelf = "tox_access_control"; - name = "Mixing Chamber Access Console"; +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ pixel_x = 6; - pixel_y = -26; - req_access_txt = "0" + pixel_y = -26 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -33102,9 +33108,15 @@ dir = 2; name = "Incinerator Output Pump" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/mixing) "bHD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/purple/side, /area/science/mixing) "bHE" = ( @@ -33115,6 +33127,9 @@ /obj/effect/turf_decal/bot{ dir = 2 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, /turf/open/floor/plasteel/purple/side, /area/science/mixing) "bHI" = ( @@ -33553,15 +33568,7 @@ /area/science/mixing) "bIL" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_interior"; - name = "Interior Airlock"; - req_access_txt = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/engine, /area/science/mixing) @@ -33992,36 +33999,33 @@ /obj/machinery/atmospherics/components/binary/pump/on{ dir = 2 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "tox_airlock_exterior"; - idSelf = "tox_access_control"; - layer = 3.1; - name = "airlock control"; - pixel_x = 8; - pixel_y = -24 - }, /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_x = -24 + }, /turf/open/floor/engine, /area/science/mixing) "bJR" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 8 + }, /turf/open/floor/engine, /area/science/mixing) "bJS" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1 }, -/obj/machinery/doorButtons/access_button{ - idDoor = "tox_airlock_interior"; - idSelf = "tox_access_control"; - name = "airlock control"; - pixel_x = -8; - pixel_y = 24 - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/engine, /area/science/mixing) "bJT" = ( @@ -34505,15 +34509,7 @@ /area/engine/atmos) "bLf" = ( /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "tox_airlock_exterior"; - name = "Exterior Airlock"; - req_access_txt = "8"; - req_one_access_txt = "0" - }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -35718,10 +35714,7 @@ /turf/closed/wall/r_wall, /area/science/mixing) "bOt" = ( -/obj/machinery/door/poddoor{ - id = "toxvent"; - name = "Aft Vent" - }, +/obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) "bOu" = ( @@ -40346,19 +40339,13 @@ dir = 8; id = "incineratorturbine" }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Outtake Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_main{ pixel_x = 24; - pixel_y = 6; - req_one_access_txt = "8;24" + pixel_y = 6 }, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Intake Vent Control"; +/obj/machinery/button/door/incinerator_vent_atmos_aux{ pixel_x = 24; - pixel_y = -6; - req_one_access_txt = "8;24" + pixel_y = -6 }, /turf/open/floor/plasteel/darkyellow/side{ dir = 4 @@ -40378,6 +40365,9 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = 22 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "bZT" = ( @@ -40645,24 +40635,10 @@ icon_state = "4-8" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_interior"; - name = "Turbine Interior Airlock"; - req_access_txt = "24" - }, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "incinerator_airlock_pump"; - exterior_door_tag = "incinerator_airlock_exterior"; - id_tag = "incinerator_airlock_control"; - interior_door_tag = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_x = -6; - pixel_y = -26; - sanitize_external = 1; - sensor_tag = "incinerator_airlock_sensor" + pixel_y = -26 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -40670,10 +40646,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ - dir = 2; - frequency = 1449; - id = "incinerator_airlock_pump" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 2 }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) @@ -40682,23 +40656,14 @@ icon_state = "4-8" }, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - id_tag = "incinerator_airlock_exterior"; - name = "Turbine Exterior Airlock"; - req_access_txt = "24" - }, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caO" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/igniter{ - id = "Incinerator" - }, +/obj/machinery/igniter/incinerator_atmos, /obj/machinery/air_sensor/atmos/incinerator_tank{ pixel_x = 32; pixel_y = -32 @@ -40735,10 +40700,7 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caR" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Outtake Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "caS" = ( @@ -40958,8 +40920,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "cbC" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; +/obj/machinery/button/ignition/incinerator/atmos{ pixel_x = 26; pixel_y = -6 }, @@ -40983,12 +40944,6 @@ }, /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/airlock_sensor{ - id_tag = "incinerator_airlock_sensor"; - master_tag = "incinerator_airlock_control"; - pixel_x = -26; - pixel_y = 8 - }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "cbF" = ( @@ -41232,10 +41187,7 @@ }, /area/maintenance/disposal/incinerator) "ccs" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Intake Vent" - }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "ccu" = ( @@ -49769,6 +49721,12 @@ icon_state = "platingdmg3" }, /area/maintenance/department/engine) +"kfh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "kfM" = ( /obj/structure/closet, /obj/machinery/light/small{ @@ -49833,6 +49791,10 @@ /obj/item/clothing/under/rank/clown/sexy, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"kmn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) "knw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -49875,9 +49837,6 @@ dir = 9 }, /area/chapel/office) -"kwI" = ( -/turf/open/floor/plasteel, -/area/science/mixing) "kxj" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -50772,6 +50731,12 @@ /obj/item/stack/spacecash/c10, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"noM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) "npE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -50809,6 +50774,12 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"nsD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "ntj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52433,6 +52404,10 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"rPW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) "rSH" = ( /obj/item/trash/can, /turf/open/floor/wood, @@ -53046,6 +53021,10 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) +"ubW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) "uek" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -54328,6 +54307,12 @@ }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) +"xIx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "xJy" = ( /obj/structure/chair/comfy/black, /obj/structure/sign/plaques/atmos{ @@ -94970,7 +94955,7 @@ bAF bBK bCW bDV -bFg +bFh bGm bHy aaa @@ -95227,7 +95212,7 @@ bAF bBL bCW bDW -bFh +kmn bGn bHy aaa @@ -96514,9 +96499,9 @@ bDa bEa bFm bGs -bHy -bHy -bHy +ubW +ubW +xIx bHy bHy bHy @@ -97542,9 +97527,9 @@ bHy bHy bHy bGw -bHy -bHy -bHy +nsD +rPW +kfh bHy bHy bHy @@ -97799,7 +97784,7 @@ bwm glf bFr qtA -kwI +khk bIN dAF bCV @@ -98569,7 +98554,7 @@ nev hgD bEf bFu -khk +noM bHE bJV bLh diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index c6c35ef08b..f6f903ec8f 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -194,6 +194,37 @@ #define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" #define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" +//AIRLOCK CONTROLLER TAGS + +//RnD toxins burn chamber +#define INCINERATOR_TOXMIX_IGNITER "toxmix_igniter" +#define INCINERATOR_TOXMIX_VENT "toxmix_vent" +#define INCINERATOR_TOXMIX_DP_VENTPUMP "toxmix_airlock_pump" +#define INCINERATOR_TOXMIX_AIRLOCK_SENSOR "toxmix_airlock_sensor" +#define INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER "toxmix_airlock_controller" +#define INCINERATOR_TOXMIX_AIRLOCK_INTERIOR "toxmix_airlock_interior" +#define INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR "toxmix_airlock_exterior" + +//Atmospherics/maintenance incinerator +#define INCINERATOR_ATMOS_IGNITER "atmos_incinerator_igniter" +#define INCINERATOR_ATMOS_MAINVENT "atmos_incinerator_mainvent" +#define INCINERATOR_ATMOS_AUXVENT "atmos_incinerator_auxvent" +#define INCINERATOR_ATMOS_DP_VENTPUMP "atmos_incinerator_airlock_pump" +#define INCINERATOR_ATMOS_AIRLOCK_SENSOR "atmos_incinerator_airlock_sensor" +#define INCINERATOR_ATMOS_AIRLOCK_CONTROLLER "atmos_incinerator_airlock_controller" +#define INCINERATOR_ATMOS_AIRLOCK_INTERIOR "atmos_incinerator_airlock_interior" +#define INCINERATOR_ATMOS_AIRLOCK_EXTERIOR "atmos_incinerator_airlock_exterior" + +//Syndicate lavaland base incinerator (lavaland_surface_syndicate_base1.dmm) +#define INCINERATOR_SYNDICATELAVA_IGNITER "syndicatelava_igniter" +#define INCINERATOR_SYNDICATELAVA_MAINVENT "syndicatelava_mainvent" +#define INCINERATOR_SYNDICATELAVA_AUXVENT "syndicatelava_auxvent" +#define INCINERATOR_SYNDICATELAVA_DP_VENTPUMP "syndicatelava_airlock_pump" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR "syndicatelava_airlock_sensor" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER "syndicatelava_airlock_controller" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR "syndicatelava_airlock_interior" +#define INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR "syndicatelava_airlock_exterior" + //MULTIPIPES //IF YOU EVER CHANGE THESE CHANGE SPRITES TO MATCH. #define PIPING_LAYER_MIN 1 diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f02b765573..f709ce07a7 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -151,4 +152,169 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) +======= +#define AIRLOCK_CONTROL_RANGE 5 + +// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) +/obj/machinery/door/airlock + var/id_tag + var/frequency + var/datum/radio_frequency/radio_connection + + +/obj/machinery/door/airlock/receive_signal(datum/signal/signal) + if(!signal) + return + + if(id_tag != signal.data["tag"] || !signal.data["command"]) + return + + switch(signal.data["command"]) + if("open") + open(1) + + if("close") + close(1) + + if("unlock") + locked = FALSE + update_icon() + + if("lock") + locked = TRUE + update_icon() + + if("secure_open") + locked = FALSE + update_icon() + + sleep(2) + open(1) + + locked = TRUE + update_icon() + + if("secure_close") + locked = FALSE + close(1) + + locked = TRUE + sleep(2) + update_icon() + + send_status() + + +/obj/machinery/door/airlock/proc/send_status() + if(radio_connection) + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "door_status" = density ? "closed" : "open", + "lock_status" = locked ? "locked" : "unlocked" + )) + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + +/obj/machinery/door/airlock/open(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/close(surpress_send) + . = ..() + if(!surpress_send) + send_status() + + +/obj/machinery/door/airlock/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + if(new_frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/door/airlock/Destroy() + if(frequency) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/airlock_sensor + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_sensor_off" + name = "airlock sensor" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + power_channel = ENVIRON + + var/id_tag + var/master_tag + var/frequency = FREQ_AIRLOCK_CONTROL + + var/datum/radio_frequency/radio_connection + + var/on = TRUE + var/alert = FALSE + +/obj/machinery/airlock_sensor/incinerator_toxmix + id_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR + master_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/incinerator_atmos + id_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR + master_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/incinerator_syndicatelava + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR + master_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER + +/obj/machinery/airlock_sensor/update_icon() + if(on) + if(alert) + icon_state = "airlock_sensor_alert" + else + icon_state = "airlock_sensor_standby" + else + icon_state = "airlock_sensor_off" + +/obj/machinery/airlock_sensor/attack_hand(mob/user) + . = ..() + if(.) + return + var/datum/signal/signal = new(list( + "tag" = master_tag, + "command" = "cycle" + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + flick("airlock_sensor_cycle", src) + +/obj/machinery/airlock_sensor/process() + if(on) + var/datum/gas_mixture/air_sample = return_air() + var/pressure = round(air_sample.return_pressure(),0.1) + alert = (pressure < ONE_ATMOSPHERE*0.8) + + var/datum/signal/signal = new(list( + "tag" = id_tag, + "timestamp" = world.time, + "pressure" = num2text(pressure) + )) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + update_icon() + +/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/airlock_sensor/Initialize() + . = ..() + set_frequency(frequency) + +/obj/machinery/airlock_sensor/Destroy() + SSradio.remove_object(src,frequency) +>>>>>>> 5f76d96... replaces varedits with defines/subtypes (#38240) return ..() \ No newline at end of file diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 9511e8d0d4..2c6a2abea4 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -190,6 +190,31 @@ device = new /obj/item/assembly/control(src) ..() +/obj/machinery/button/door/incinerator_vent_toxmix + name = "combustion chamber vent control" + id = INCINERATOR_TOXMIX_VENT + req_access = list(ACCESS_TOX) + +/obj/machinery/button/door/incinerator_vent_atmos_main + name = "turbine vent control" + id = INCINERATOR_ATMOS_MAINVENT + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/button/door/incinerator_vent_atmos_aux + name = "combustion chamber vent control" + id = INCINERATOR_ATMOS_AUXVENT + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/button/door/incinerator_vent_syndicatelava_main + name = "turbine vent control" + id = INCINERATOR_SYNDICATELAVA_MAINVENT + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/button/door/incinerator_vent_syndicatelava_aux + name = "combustion chamber vent control" + id = INCINERATOR_SYNDICATELAVA_AUXVENT + req_access = list(ACCESS_SYNDICATE) + /obj/machinery/button/massdriver name = "mass driver button" desc = "A remote control switch for a mass driver." @@ -204,6 +229,19 @@ skin = "launcher" device_type = /obj/item/assembly/control/igniter +/obj/machinery/button/ignition/incinerator + name = "combustion chamber ignition switch" + desc = "A remote control switch for the combustion chamber's igniter." + +/obj/machinery/button/ignition/incinerator/toxmix + id = INCINERATOR_TOXMIX_IGNITER + +/obj/machinery/button/ignition/incinerator/atmos + id = INCINERATOR_ATMOS_IGNITER + +/obj/machinery/button/ignition/incinerator/syndicatelava + id = INCINERATOR_SYNDICATELAVA_IGNITER + /obj/machinery/button/flasher name = "flasher button" desc = "A remote control switch for a mounted flasher." diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 69621adc84..33bd47126c 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -79,6 +79,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior + name = "Turbine Interior Airlock" + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/glass/incinerator/syndicatelava_exterior + name = "Turbine Exterior Airlock" + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR + /obj/machinery/door/airlock/command/glass opacity = 0 glass = TRUE @@ -107,6 +121,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/research/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_access = list(ACCESS_TOX) + +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior + name = "Mixing Room Interior Airlock" + id_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior + name = "Mixing Room Exterior Airlock" + id_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR + /obj/machinery/door/airlock/mining/glass opacity = 0 glass = TRUE @@ -287,6 +315,20 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/public/glass/incinerator + autoclose = FALSE + frequency = FREQ_AIRLOCK_CONTROL + heat_proof = TRUE + req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS) + +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior + name = "Turbine Interior Airlock" + id_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR + +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior + name = "Turbine Exterior Airlock" + id_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR + ////////////////////////////////// /* External Airlocks diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 9e467e8926..a581b20f52 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -36,6 +36,26 @@ else INVOKE_ASYNC(src, .proc/close) +/obj/machinery/door/poddoor/incinerator_toxmix + name = "combustion chamber vent" + id = INCINERATOR_TOXMIX_VENT + +/obj/machinery/door/poddoor/incinerator_atmos_main + name = "turbine vent" + id = INCINERATOR_ATMOS_MAINVENT + +/obj/machinery/door/poddoor/incinerator_atmos_aux + name = "combustion chamber vent" + id = INCINERATOR_ATMOS_AUXVENT + +/obj/machinery/door/poddoor/incinerator_syndicatelava_main + name = "turbine vent" + id = INCINERATOR_SYNDICATELAVA_MAINVENT + +/obj/machinery/door/poddoor/incinerator_syndicatelava_aux + name = "combustion chamber vent" + id = INCINERATOR_SYNDICATELAVA_AUXVENT + /obj/machinery/door/poddoor/CollidedWith(atom/movable/AM) if(density) return 0 diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index e2402177e2..8b9255b5ac 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -7,11 +7,11 @@ /datum/computer/file/embedded_program/airlock_controller var/id_tag - var/exterior_door_tag - var/interior_door_tag - var/airpump_tag - var/sensor_tag - var/sanitize_external + var/exterior_door_tag //Burn chamber facing door + var/interior_door_tag //Station facing door + var/airpump_tag //See: dp_vent_pump.dm + var/sensor_tag //See: /obj/machinery/airlock_sensor + var/sanitize_external //Before the interior airlock opens, do we first drain all gases inside the chamber and then repressurize? state = AIRLOCK_STATE_CLOSED var/target_state = AIRLOCK_STATE_CLOSED @@ -211,6 +211,33 @@ var/sensor_tag var/sanitize_external +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_TOXMIX_DP_VENTPUMP + exterior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR + +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_ATMOS_DP_VENTPUMP + exterior_door_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR + +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava + name = "Incinerator Access Console" + airpump_tag = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP + exterior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR + id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER + interior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR + sanitize_external = TRUE + sensor_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR + /obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload) . = ..() if(!mapload) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index d5bb8db0e3..0753d7598f 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -14,6 +14,15 @@ armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF +/obj/machinery/igniter/incinerator_toxmix + id = INCINERATOR_TOXMIX_IGNITER + +/obj/machinery/igniter/incinerator_atmos + id = INCINERATOR_ATMOS_IGNITER + +/obj/machinery/igniter/incinerator_syndicatelava + id = INCINERATOR_SYNDICATELAVA_IGNITER + /obj/machinery/igniter/on on = TRUE icon_state = "igniter1" @@ -60,6 +69,9 @@ anchored = TRUE resistance_flags = FIRE_PROOF +/obj/machinery/sparker/toxmix + id = INCINERATOR_TOXMIX_IGNITER + /obj/machinery/sparker/Initialize() . = ..() spark_system = new /datum/effect_system/spark_spread diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm index 671eca928e..a737b3c688 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -62,6 +62,18 @@ Acts like a normal vent, but has an input AND output. /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume name = "large dual-port air vent" +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix + id = INCINERATOR_TOXMIX_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos + id = INCINERATOR_ATMOS_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_syndicatelava + id = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP + frequency = FREQ_AIRLOCK_CONTROL + /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer1 piping_layer = PIPING_LAYER_MIN pixel_x = -PIPING_LAYER_P_X From 8b4a3ab273369f48775bcbd1d20d119b288e6734 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Sun, 3 Jun 2018 18:03:24 +0200 Subject: [PATCH 083/205] Readds missing objs to Delta toxins (#38245) * prb: no update * another one --- _maps/map_files/Deltastation/DeltaStation2.dmm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index af3cf7bade..c540e99274 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -82923,7 +82923,6 @@ /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 }, -/obj/structure/window/spawner/north, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -83693,6 +83692,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/portable_atmospherics/pump{ + name = "Lil Pump" + }, /turf/open/floor/plasteel, /area/science/mixing) "dxQ" = ( @@ -84469,7 +84471,6 @@ dir = 4 }, /obj/machinery/portable_atmospherics/canister, -/obj/structure/window/spawner, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -84989,7 +84990,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/structure/window/spawner, /turf/open/floor/plasteel, /area/science/mixing) "dAD" = ( @@ -85787,6 +85787,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/item/radio/intercom{ + pixel_x = -26 + }, /turf/open/floor/plasteel, /area/science/mixing) "dCb" = ( @@ -86384,7 +86387,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/structure/window/spawner/north, /turf/open/floor/plasteel, /area/science/mixing) "dDt" = ( @@ -86891,6 +86893,7 @@ /obj/structure/sign/poster/official/science{ pixel_x = 32 }, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plasteel, /area/science/mixing) "dEv" = ( @@ -87473,6 +87476,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel, /area/science/mixing) "dFM" = ( From 42e5ded9b34b650e01429fb78ab37a4505cf0ad7 Mon Sep 17 00:00:00 2001 From: iksyp <33264221+iskyp@users.noreply.github.com> Date: Sun, 3 Jun 2018 09:05:03 -0700 Subject: [PATCH 085/205] fatsuits (#38233) --- _maps/shuttles/infiltrator_basic.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index 5d21fad7f8..0b1a7c5c6a 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -411,12 +411,12 @@ /area/shuttle/syndicate/airlock) "bi" = ( /obj/structure/rack, -/obj/item/clothing/suit/space/syndicate/black/red, -/obj/item/clothing/head/helmet/space/syndicate/black/red, /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate/airlock) "bj" = ( From 83cf30c92e91838be3d926ee6dc6718812eafd2c Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Sun, 3 Jun 2018 19:45:25 +0300 Subject: [PATCH 087/205] oh ho (#38249) --- code/game/machinery/computer/communications.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 14d02e9752..37282c6478 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -51,7 +51,7 @@ /obj/machinery/computer/communications/Topic(href, href_list) if(..()) return - if(!is_station_level(z) && !is_centcom_level(z)) //Can only use on centcom and SS13 + if(!is_station_level(z) && !is_transit_level(z)) //Can only use in transit and on SS13 to_chat(usr, "Unable to establish a connection: \black You're too far away from the station!") return usr.set_machine(src) From 68236af5424241e3c22f6c5f7224bf80109b0782 Mon Sep 17 00:00:00 2001 From: yorii Date: Sun, 3 Jun 2018 19:58:17 +0200 Subject: [PATCH 089/205] Adds one brain damage statement (#38244) * this one is kinda funny tbqh * fix comma * fix --- strings/traumas.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/strings/traumas.json b/strings/traumas.json index 4dd2d77abb..ab3f58f984 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -106,7 +106,8 @@ "@pick(bug)", "@pick(semicolon)wtf??????????? @pick(bug)", "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)", - "DON'T EVER TUCH ME" + "DON'T EVER TUCH ME", + "@pick(semicolon)GIVE ME FREE ROBUX PLEASE JUST ENOUGH FOR SHIRT AND PANTS" ], "mutations": [ From 805852e1dfb4dedca2c14284118cb63f3f8edf21 Mon Sep 17 00:00:00 2001 From: theo2003 <35148170+theo2003@users.noreply.github.com> Date: Sun, 3 Jun 2018 20:59:09 +0300 Subject: [PATCH 091/205] Fixed hydroponics tray weed light not turning off when weeds are removed by an integrated circuits device. (#38246) --- code/modules/integrated_electronics/subtypes/manipulation.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index f4cc363afb..645e54c153 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -286,6 +286,7 @@ push_data() if(1) TR.weedlevel = 0 + TR.update_icon() if(2) if(TR.myseed) //Could be that they're just using it as a de-weeder TR.age = 0 From f83dc08fa77c0b49cb59b9a89bbaf5b91eb0d392 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Sun, 3 Jun 2018 21:21:18 +0300 Subject: [PATCH 093/205] are we free? (#38228) --- code/datums/holocall.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 22dc6a7671..12070f6fe2 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -202,7 +202,7 @@ /datum/holorecord/proc/set_caller_image(mob/user) var/olddir = user.dir user.setDir(SOUTH) - caller_image = getFlatIcon(user) + caller_image = image(user) user.setDir(olddir) /obj/item/disk/holodisk @@ -300,7 +300,7 @@ mannequin.equipOutfit(outfit_type,TRUE) mannequin.setDir(SOUTH) COMPILE_OVERLAYS(mannequin) - . = getFlatIcon(mannequin) + . = image(mannequin) unset_busy_human_dummy("HOLODISK_PRESET") /obj/item/disk/holodisk/example @@ -344,4 +344,3 @@ /datum/preset_holoimage/clown outfit_type = /datum/outfit/job/clown - From 568dfa7f35a89334e6081a7b40ca0601f2091b87 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Sun, 3 Jun 2018 21:24:45 +0300 Subject: [PATCH 095/205] Include item overlays in attack animations (shows the proper color of screwdrivers etc) (#38225) * overlay attacks * this works too * fix trays too --- code/game/atoms_movable.dm | 2 +- code/game/objects/items/storage/bags.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 29c02932fc..22a7940bbf 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -562,7 +562,7 @@ if(visual_effect_icon) I = image('icons/effects/effects.dmi', A, visual_effect_icon, A.layer + 0.1) else if(used_item) - I = image(used_item.icon, A, used_item.icon_state, A.layer + 0.1) + I = image(icon = used_item, loc = A, layer = A.layer + 0.1) // Scale the icon. I.transform *= 0.75 diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index a44e61f16a..a3e4bc112e 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -310,7 +310,7 @@ /obj/item/storage/bag/tray/update_icon() cut_overlays() for(var/obj/item/I in contents) - add_overlay(mutable_appearance(I.icon, I.icon_state)) + add_overlay(new /mutable_appearance(I)) /obj/item/storage/bag/tray/Entered() . = ..() From 9f4f4706072818d0109ed400434ea6c0d34f015f Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Sun, 3 Jun 2018 12:25:34 -0700 Subject: [PATCH 097/205] Delay smoothing atoms that have not initialized yet (#38173) --- code/controllers/subsystem/icon_smooth.dm | 22 ++++++++++++++++------ code/modules/mapping/map_template.dm | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/code/controllers/subsystem/icon_smooth.dm b/code/controllers/subsystem/icon_smooth.dm index d0ad2ffbc3..1c8d94826d 100644 --- a/code/controllers/subsystem/icon_smooth.dm +++ b/code/controllers/subsystem/icon_smooth.dm @@ -6,16 +6,26 @@ SUBSYSTEM_DEF(icon_smooth) flags = SS_TICKER var/list/smooth_queue = list() + var/list/deferred = list() /datum/controller/subsystem/icon_smooth/fire() - while(smooth_queue.len) - var/atom/A = smooth_queue[smooth_queue.len] - smooth_queue.len-- - smooth_icon(A) + var/list/cached = smooth_queue + while(cached.len) + var/atom/A = cached[cached.len] + cached.len-- + if (A.flags_1 & INITIALIZED_1) + smooth_icon(A) + else + deferred += A if (MC_TICK_CHECK) return - if (!smooth_queue.len) - can_fire = 0 + + if (!cached.len) + if (deferred.len) + smooth_queue = deferred + deferred = cached + else + can_fire = 0 /datum/controller/subsystem/icon_smooth/Initialize() smooth_zlevel(1,TRUE) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index b5b2091eb9..0cfdf322c4 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -57,12 +57,12 @@ if(!bounds) return FALSE - smooth_zlevel(world.maxz) repopulate_sorted_areas() SSlighting.initialize_lighting_objects(block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]),locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) //initialize things that are normally initialized after map load initTemplateBounds(bounds) + smooth_zlevel(world.maxz) log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") return level From 6791d13e8113de97de922a4a7b2a31faba8a0306 Mon Sep 17 00:00:00 2001 From: Yenwodyah Date: Sun, 3 Jun 2018 15:47:03 -0500 Subject: [PATCH 099/205] Fix some advanced disease thresholds (#38257) --- code/datums/diseases/advance/symptoms/fire.dm | 2 +- code/datums/diseases/advance/symptoms/heal.dm | 6 +++--- code/datums/diseases/advance/symptoms/shivering.dm | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index 781cd6de4d..f85024a7a9 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -125,7 +125,7 @@ Bonus symptom_delay_max = 140 if(A.properties["stage_rate"] >= 8) //serious boom when wet explosion_power = 2 - if(A.properties["transmission"] >= 8) //extra chemicals + if(A.properties["transmittable"] >= 8) //extra chemicals chems = TRUE /datum/symptom/alkali/Activate(datum/disease/advance/A) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 02e0546201..9f274c0aa3 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -60,7 +60,7 @@ /datum/symptom/heal/starlight/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["transmission"] >= 6) + if(A.properties["transmittable"] >= 6) nearspace_penalty = 1 if(A.properties["stage_rate"] >= 6) power = 2 @@ -358,7 +358,7 @@ return if(A.properties["stage_rate"] >= 7) power = 2 - if(A.properties["trasmission"] >= 6) + if(A.properties["transmittable"] >= 6) temp_rate = 4 /datum/symptom/heal/plasma/CanHeal(datum/disease/advance/A) @@ -425,7 +425,7 @@ return if(A.properties["resistance"] >= 7) power = 2 - if(A.properties["trasmission"] >= 6) + if(A.properties["transmittable"] >= 6) cellular_damage = TRUE /datum/symptom/heal/radiation/CanHeal(datum/disease/advance/A) diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm index c67bf7798a..e4bb5e1b3e 100644 --- a/code/datums/diseases/advance/symptoms/shivering.dm +++ b/code/datums/diseases/advance/symptoms/shivering.dm @@ -33,10 +33,10 @@ Bonus /datum/symptom/fever/Start(datum/disease/advance/A) if(!..()) return - if(A.properties["stage_speed"] >= 5) //dangerous cold + if(A.properties["stage_rate"] >= 5) //dangerous cold power = 1.5 unsafe = TRUE - if(A.properties["stage_speed"] >= 10) + if(A.properties["stage_rate"] >= 10) power = 2.5 /datum/symptom/shivering/Activate(datum/disease/advance/A) From 46790245f9313b39deec002fbd4a09e6928ec1cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:19:18 -0500 Subject: [PATCH 101/205] Automatic changelog generation for PR #6991 [ci skip] --- html/changelogs/AutoChangeLog-pr-6991.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6991.yml diff --git a/html/changelogs/AutoChangeLog-pr-6991.yml b/html/changelogs/AutoChangeLog-pr-6991.yml new file mode 100644 index 0000000000..bf8b60a831 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6991.yml @@ -0,0 +1,6 @@ +author: "ShizCalev" +delete-after: True +changes: + - bugfix: "Fixed cigar cases & cigarette packets taking two inventory slots" + - bugfix: "Fixed cigar cases showing the wrong icon for the cigars inside them." + - bugfix: "Fixed cigar cases & cigarette packets stating the wrong name of the cigar/cigarette when removed via altclick." From c96416ed91d3aecfb552804208710ec86627c2c0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:19:38 -0500 Subject: [PATCH 102/205] Automatic changelog generation for PR #6992 [ci skip] --- html/changelogs/AutoChangeLog-pr-6992.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6992.yml diff --git a/html/changelogs/AutoChangeLog-pr-6992.yml b/html/changelogs/AutoChangeLog-pr-6992.yml new file mode 100644 index 0000000000..30168181c9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6992.yml @@ -0,0 +1,11 @@ +author: "ShizCalev" +delete-after: True +changes: + - bugfix: "Fixed items in pockets vanishing when a mob is monkeyized." + - bugfix: "Fixed items in pockets vanishing when a mob is gorillized." + - bugfix: "Fixed items in pockets vanishing when a mob is infected with a transformation disease." + - bugfix: "Fixed items in pockets not being properly deleted when a mob goes through a recycler" + - bugfix: "Fixed items in pockets not being properly deleted when highlander mode is enabled." + - bugfix: "Fixed exploit allowing you to remove unremovable tanks from pockets." + - bugfix: "Fixed items in pockets dropping when a mob is equipped with a new outfit." + - bugfix: "Fixed items in pockets not being covered in blood when equipping the psycho outfit." From dd70a5ef8b01a4f37e618ffa7cd3588af02c3364 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:20:01 -0500 Subject: [PATCH 103/205] Automatic changelog generation for PR #6989 [ci skip] --- html/changelogs/AutoChangeLog-pr-6989.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6989.yml diff --git a/html/changelogs/AutoChangeLog-pr-6989.yml b/html/changelogs/AutoChangeLog-pr-6989.yml new file mode 100644 index 0000000000..b448b9a768 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6989.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "roboticists have access to R&D windoors" From b3a4fb6560634374f006192fb2907829631971c6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:20:33 -0500 Subject: [PATCH 104/205] Automatic changelog generation for PR #6996 [ci skip] --- html/changelogs/AutoChangeLog-pr-6996.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6996.yml diff --git a/html/changelogs/AutoChangeLog-pr-6996.yml b/html/changelogs/AutoChangeLog-pr-6996.yml new file mode 100644 index 0000000000..8485bdb247 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6996.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - tweak: "The Deltastation toxins lab has its portable scrubber, air pump and intercom back." From 431f48c0891011d1974559494c4920747bf06c7f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:21:00 -0500 Subject: [PATCH 105/205] Automatic changelog generation for PR #6997 [ci skip] --- html/changelogs/AutoChangeLog-pr-6997.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6997.yml diff --git a/html/changelogs/AutoChangeLog-pr-6997.yml b/html/changelogs/AutoChangeLog-pr-6997.yml new file mode 100644 index 0000000000..fe6f96ec08 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6997.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "switched the type of the space suit on the syndicate shuttle" From 18de1bad241c8ecbbfe6eb36417084e0b4ae98a0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:21:21 -0500 Subject: [PATCH 106/205] Automatic changelog generation for PR #6998 [ci skip] --- html/changelogs/AutoChangeLog-pr-6998.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6998.yml diff --git a/html/changelogs/AutoChangeLog-pr-6998.yml b/html/changelogs/AutoChangeLog-pr-6998.yml new file mode 100644 index 0000000000..4c5fa0b950 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6998.yml @@ -0,0 +1,4 @@ +author: "Naksu" +delete-after: True +changes: + - bugfix: "comms consoles now work in transit again, and no longer work in centcom" From d667da2d8d78a723c0ec3233fd1ed4a36174d503 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:21:39 -0500 Subject: [PATCH 107/205] Automatic changelog generation for PR #6999 [ci skip] --- html/changelogs/AutoChangeLog-pr-6999.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6999.yml diff --git a/html/changelogs/AutoChangeLog-pr-6999.yml b/html/changelogs/AutoChangeLog-pr-6999.yml new file mode 100644 index 0000000000..5c646a8334 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6999.yml @@ -0,0 +1,4 @@ +author: "yorpan" +delete-after: True +changes: + - rscadd: "Brain damage makes you say one more thing." From 3607e0db5d851def0756f3c394bbd5153d3827bb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:21:55 -0500 Subject: [PATCH 108/205] Automatic changelog generation for PR #7000 [ci skip] --- html/changelogs/AutoChangeLog-pr-7000.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7000.yml diff --git a/html/changelogs/AutoChangeLog-pr-7000.yml b/html/changelogs/AutoChangeLog-pr-7000.yml new file mode 100644 index 0000000000..c4aaff36e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7000.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "fixed hydroponics tray weed light staying on when removing weeds with integrated circuits" From 4e7b5bd0c964ce2b095df92fd7db19466d5a5806 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:22:11 -0500 Subject: [PATCH 109/205] Automatic changelog generation for PR #7001 [ci skip] --- html/changelogs/AutoChangeLog-pr-7001.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7001.yml diff --git a/html/changelogs/AutoChangeLog-pr-7001.yml b/html/changelogs/AutoChangeLog-pr-7001.yml new file mode 100644 index 0000000000..2721ba92e2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7001.yml @@ -0,0 +1,4 @@ +author: "Naksu" +delete-after: True +changes: + - code_imp: "removed unnecessary getFlatIcons from holocalls" From 5974ec89c30e2c3ec67db8c0fc74241d1cd7ab36 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:22:32 -0500 Subject: [PATCH 110/205] Automatic changelog generation for PR #7002 [ci skip] --- html/changelogs/AutoChangeLog-pr-7002.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7002.yml diff --git a/html/changelogs/AutoChangeLog-pr-7002.yml b/html/changelogs/AutoChangeLog-pr-7002.yml new file mode 100644 index 0000000000..df3104e20f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7002.yml @@ -0,0 +1,4 @@ +author: "Naksu" +delete-after: True +changes: + - bugfix: "Screwdrivers and other items with overlays now show the proper appearance of the item when attacking something with them, or when put on a tray." From 99ae2dccf6d3cf87245f89495117901ee9214b8b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:23:50 -0500 Subject: [PATCH 111/205] Automatic changelog generation for PR #7003 [ci skip] --- html/changelogs/AutoChangeLog-pr-7003.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7003.yml diff --git a/html/changelogs/AutoChangeLog-pr-7003.yml b/html/changelogs/AutoChangeLog-pr-7003.yml new file mode 100644 index 0000000000..c60bd62fcf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7003.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Atom initialization and icon smoothing no longer race, causing late-loading mineral turfs to have no icon." From 3a3a9f89f83e704be8a71cd256ad2fb6d9ef05d1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 3 Jun 2018 16:24:00 -0500 Subject: [PATCH 112/205] Automatic changelog generation for PR #7004 [ci skip] --- html/changelogs/AutoChangeLog-pr-7004.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7004.yml diff --git a/html/changelogs/AutoChangeLog-pr-7004.yml b/html/changelogs/AutoChangeLog-pr-7004.yml new file mode 100644 index 0000000000..a981bcaf98 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7004.yml @@ -0,0 +1,4 @@ +author: "yenwodyah" +delete-after: True +changes: + - bugfix: "A few virus threshold effects should work now" From a57bda822bad8404bc24636af211c7703337c23e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 3 Jun 2018 22:19:13 -0400 Subject: [PATCH 113/205] Update game_options.dm --- .../configuration/entries/game_options.dm | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 8ac0941b11..ebf27324b9 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -288,7 +288,11 @@ /datum/config_entry/flag/shift_time_realtime -<<<<<<< HEAD +/datum/config_entry/keyed_number_list/antag_rep + +/datum/config_entry/number/monkeycap + config_entry_value = 64 + min_val = 0 //Cit changes - Adds config options for crew objectives and miscreants /datum/config_entry/flag/allow_crew_objectives @@ -306,10 +310,3 @@ /datum/config_entry/number/nightshift_finish config_entry_value = 6 //End of Cit changes -======= -/datum/config_entry/keyed_number_list/antag_rep - -/datum/config_entry/number/monkeycap - config_entry_value = 64 - min_val = 0 ->>>>>>> d060e4e... Antag reputation rewards are now configurable (#38077) From 8157233145bfc88983632d6e244c63e6383221d1 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 3 Jun 2018 22:19:52 -0400 Subject: [PATCH 114/205] Update airlock_control.dm --- code/game/machinery/airlock_control.dm | 158 +------------------------ 1 file changed, 1 insertion(+), 157 deletions(-) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f709ce07a7..1db9669a96 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -1,158 +1,3 @@ -<<<<<<< HEAD -#define AIRLOCK_CONTROL_RANGE 5 - -// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) -/obj/machinery/door/airlock - var/id_tag - var/frequency - var/datum/radio_frequency/radio_connection - - -/obj/machinery/door/airlock/receive_signal(datum/signal/signal) - if(!signal) - return - - if(id_tag != signal.data["tag"] || !signal.data["command"]) - return - - switch(signal.data["command"]) - if("open") - open(1) - - if("close") - close(1) - - if("unlock") - locked = FALSE - update_icon() - - if("lock") - locked = TRUE - update_icon() - - if("secure_open") - locked = FALSE - update_icon() - - sleep(2) - open(1) - - locked = TRUE - update_icon() - - if("secure_close") - locked = FALSE - close(1) - - locked = TRUE - sleep(2) - update_icon() - - send_status() - - -/obj/machinery/door/airlock/proc/send_status() - if(radio_connection) - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "door_status" = density ? "closed" : "open", - "lock_status" = locked ? "locked" : "unlocked" - )) - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - -/obj/machinery/door/airlock/open(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/close(surpress_send) - . = ..() - if(!surpress_send) - send_status() - - -/obj/machinery/door/airlock/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - if(new_frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/door/airlock/Destroy() - if(frequency) - SSradio.remove_object(src,frequency) - return ..() - -/obj/machinery/airlock_sensor - icon = 'icons/obj/airlock_machines.dmi' - icon_state = "airlock_sensor_off" - name = "airlock sensor" - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - - anchored = TRUE - power_channel = ENVIRON - - var/id_tag - var/master_tag - var/frequency = FREQ_AIRLOCK_CONTROL - - var/datum/radio_frequency/radio_connection - - var/on = TRUE - var/alert = FALSE - - -/obj/machinery/airlock_sensor/update_icon() - if(on) - if(alert) - icon_state = "airlock_sensor_alert" - else - icon_state = "airlock_sensor_standby" - else - icon_state = "airlock_sensor_off" - -/obj/machinery/airlock_sensor/attack_hand(mob/user) - . = ..() - if(.) - return - var/datum/signal/signal = new(list( - "tag" = master_tag, - "command" = "cycle" - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - flick("airlock_sensor_cycle", src) - -/obj/machinery/airlock_sensor/process() - if(on) - var/datum/gas_mixture/air_sample = return_air() - var/pressure = round(air_sample.return_pressure(),0.1) - alert = (pressure < ONE_ATMOSPHERE*0.8) - - var/datum/signal/signal = new(list( - "tag" = id_tag, - "timestamp" = world.time, - "pressure" = num2text(pressure) - )) - - radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) - - update_icon() - -/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) - SSradio.remove_object(src, frequency) - frequency = new_frequency - radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) - -/obj/machinery/airlock_sensor/Initialize() - . = ..() - set_frequency(frequency) - -/obj/machinery/airlock_sensor/Destroy() - SSradio.remove_object(src,frequency) -======= #define AIRLOCK_CONTROL_RANGE 5 // This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) @@ -316,5 +161,4 @@ /obj/machinery/airlock_sensor/Destroy() SSradio.remove_object(src,frequency) ->>>>>>> 5f76d96... replaces varedits with defines/subtypes (#38240) - return ..() \ No newline at end of file + return ..() From 678e429dbfd693caf6d7b8cb2a7579378ed2b20d Mon Sep 17 00:00:00 2001 From: MrDoomBringer Date: Mon, 4 Jun 2018 01:36:53 -0400 Subject: [PATCH 115/205] Adds a Supplypod-delivery admin smite (#38069) * wa la * oop forgot an icon * buildmode compatibility * ok * makes centcompod default * CentCom pods fall faster and are capatilized right * yike * yike2 * FASTER * white space and default icon state * spacemaniac thanks --- code/__DEFINES/admin.dm | 1 + .../closets/secure/supplypod.dm | 59 +++++++++++++----- code/modules/admin/verbs/randomverbs.dm | 18 +++++- icons/obj/2x2.dmi | Bin 18601 -> 24355 bytes 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 94a247171c..2a8f455e64 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -67,6 +67,7 @@ #define ADMIN_PUNISHMENT_BSA "Bluespace Artillery Device" #define ADMIN_PUNISHMENT_FIREBALL "Fireball" #define ADMIN_PUNISHMENT_ROD "Immovable Rod" +#define ADMIN_PUNISHMENT_SUPPLYPOD "Supply Pod" #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm b/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm index ca64b7c537..c51f13bb12 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm @@ -1,6 +1,7 @@ //The "BDPtarget" temp visual is created by the expressconsole, which in turn makes two things: a falling droppod animation, and the droppod itself. #define POD_STANDARD 0 #define POD_BLUESPACE 1 +#define POD_CENTCOM 2 //------------------------------------SUPPLY POD-------------------------------------// /obj/structure/closet/supplypod @@ -18,17 +19,25 @@ armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 90, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) anchored = TRUE anchorable = FALSE - var/generated = FALSE var/datum/supply_order/SupplyOrder + var/atom/other_delivery /obj/structure/closet/supplypod/bluespacepod name = "Bluespace Drop Pod" desc = "A Nanotrasen Bluespace drop pod. Teleports back to CentCom after delivery." icon_state = "bluespacepod" -/obj/structure/closet/supplypod/Initialize(mapload, datum/supply_order/so) +/obj/structure/closet/supplypod/bluespacepod/centcompod + name = "CentCom Drop Pod" + desc = "A Nanotrasen Bluespace drop pod, this one has been marked with Central Command's designations. Teleports back to Centcom after delivery." + icon_state = "centcompod" + +/obj/structure/closet/supplypod/Initialize(mapload, var/SO) . = ..() - SupplyOrder = so//uses Supply Order passed from expressconsole into BDPtarget + if(istype(SO, /datum/supply_order)) + SupplyOrder = SO//uses Supply Order passed from expressconsole into BDPtarget + else + other_delivery = SO//if the object is not a supply order, we force the object in the pod addtimer(CALLBACK(src, .proc/open), 30)//open 3seconds after appearing /obj/structure/closet/supplypod/update_icon() @@ -47,9 +56,10 @@ /obj/structure/closet/supplypod/open() var/turf/T = get_turf(src) opened = TRUE - if(!generated) - generated = TRUE + if(SupplyOrder) SupplyOrder.generate(T)//not called during populateContents as supplyorder generation requires a turf + if(other_delivery) + new other_delivery(T) update_icon() playsound(src, open_sound, 15, 1, -3) if(istype(src,/obj/structure/closet/supplypod/bluespacepod)) @@ -66,21 +76,24 @@ //------------------------------------FALLING SUPPLY POD-------------------------------------// /obj/effect/temp_visual/DPfall icon = 'icons/obj/2x2.dmi' - icon_state = "supplypod_falling" pixel_x = -16 pixel_y = -5 pixel_z = 200 desc = "Get out of the way!" layer = FLY_LAYER//that wasnt flying, that was falling with style! randomdir = FALSE + icon_state = "supplypod_falling" /obj/effect/temp_visual/DPfall/Initialize(var/dropLocation, var/podID) - if (podID == POD_BLUESPACE) + if (podID == POD_STANDARD) + icon_state = "supplypod_falling" + name = "Supply Drop Pod" + else if (podID == POD_BLUESPACE) icon_state = "bluespacepod_falling" name = "Bluespace Drop Pod" else - icon_state = "supplypod_falling" - name = "Supply Drop Pod" + icon_state = "centcompod_falling" + name = "CentCom Drop Pod" . = ..() //------------------------------------TEMPORARY_VISUAL-------------------------------------// @@ -91,22 +104,34 @@ light_range = 2 var/obj/effect/temp_visual/fallingPod -/obj/effect/DPtarget/Initialize(mapload, datum/supply_order/SO, var/podID) +/obj/effect/DPtarget/Initialize(mapload, var/SO, var/podID) . = ..() - addtimer(CALLBACK(src, .proc/beginLaunch, SO, podID), podID == POD_BLUESPACE ? 15 : 30)//standard pods take 3 seconds to come in, bluespace pods take 1.5 + var/delayTime = 0 + switch(podID) + if(POD_STANDARD) + delayTime = 30 + if(POD_BLUESPACE) + delayTime = 15 + if(POD_CENTCOM) + delayTime = 1 -/obj/effect/DPtarget/proc/beginLaunch(datum/supply_order/SO, var/podID) + addtimer(CALLBACK(src, .proc/beginLaunch, SO, podID), delayTime)//standard pods take 3 seconds to come in, bluespace pods take 1.5 + +/obj/effect/DPtarget/proc/beginLaunch(var/SO, var/podID) fallingPod = new /obj/effect/temp_visual/DPfall(drop_location(), podID) animate(fallingPod, pixel_z = 0, time = 3, easing = LINEAR_EASING)//make and animate a falling pod addtimer(CALLBACK(src, .proc/endLaunch, SO, podID), 3, TIMER_CLIENT_TIME)//fall 0.3seconds -/obj/effect/DPtarget/proc/endLaunch(datum/supply_order/SO, var/podID) - if (podID == POD_BLUESPACE) +/obj/effect/DPtarget/proc/endLaunch(var/SO, var/podID) + if (podID == POD_STANDARD) + new /obj/structure/closet/supplypod(drop_location(), SO)//pod is created + explosion(src,0,0,2, flame_range = 3) //less advanced equipment than bluespace pod, so larger explosion when landing + else if (podID == POD_BLUESPACE) new /obj/structure/closet/supplypod/bluespacepod(drop_location(), SO)//pod is created explosion(src,0,0,2, flame_range = 1) //explosion and camshake (shoutout to @cyberboss) else - new /obj/structure/closet/supplypod(drop_location(), SO)//pod is created - explosion(src,0,0,2, flame_range = 3) //less advanced equipment than bluespace pod, so larger explosion when landing + new /obj/structure/closet/supplypod/bluespacepod/centcompod(drop_location(), SO) + explosion(src,0,0,2, flame_range = 1) qdel(src) /obj/effect/DPtarget/Destroy() @@ -120,4 +145,4 @@ icon = 'icons/obj/module.dmi' icon_state = "cargodisk" item_state = "card-id" - w_class = WEIGHT_CLASS_SMALL + w_class = WEIGHT_CLASS_SMALL \ No newline at end of file diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index be0b9d04bb..fb5111e88e 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1277,7 +1277,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if(!check_rights(R_ADMIN)) return - var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD) + var/list/punishment_list = list(ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_SUPPLYPOD) var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list @@ -1305,6 +1305,22 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits var/turf/startT = spaceDebrisStartLoc(startside, T.z) var/turf/endT = spaceDebrisFinishLoc(startside, T.z) new /obj/effect/immovablerod(startT, endT,target) + if(ADMIN_PUNISHMENT_SUPPLYPOD) + ///////load the supply pod up with something! + var/target_path = input(usr,"Enter typepath of an atom you'd like to send with the pod (type \"empty\" to send an empty pod):" ,"Typepath","/obj/item/reagent_containers/food/snacks/grown/harebell") as null|text + if (isnull(target_path)) + return + if (target_path == "empty")//if you type "abort", spawn an empty pod + new /obj/effect/DPtarget(get_turf(target), null, POD_CENTCOM) + return + var/delivery = text2path(target_path) + if(!ispath(delivery)) + delivery = pick_closest_path(target_path) + if(!delivery) + delivery = /obj/item/reagent_containers/food/snacks/grown/harebell + alert("That path is not allowed.") + //send the pod + new /obj/effect/DPtarget(get_turf(target), delivery, POD_CENTCOM) var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]." message_admins(msg) diff --git a/icons/obj/2x2.dmi b/icons/obj/2x2.dmi index 246afe51e6ffeb35d0955b059ba2ad3624d257d3..a72a86f3d8393062ac7df381140bc157ec5cd6b5 100644 GIT binary patch literal 24355 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

    q>S?*r$i~X(l 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 Xmmt9`)V2(&-b1>Yh8kt+Hevq*a3oad literal 18601 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 Date: Mon, 4 Jun 2018 01:47:45 -0400 Subject: [PATCH 117/205] New directional beach sprites and corners for the 2018 Summer Ball (#38262) * Adds beach corners, interior corners, and other sides in addition to the normal down direction. * SOMEONE LIED TO ME * Update misc_plating.dm * don't copy paste at 4am * okay there we go --- .../simulated/floor/plating/misc_plating.dm | 3 +++ icons/misc/beach.dmi | Bin 11979 -> 57256 bytes 2 files changed, 3 insertions(+) diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index b21e361639..a04bd818ad 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -119,6 +119,9 @@ icon_state = "water" baseturfs = /turf/open/floor/plating/beach/water +/turf/open/floor/plating/beach/coastline_t/sandwater_inner + icon_state = "sandwater_inner" + baseturfs = /turf/open/floor/plating/beach/coastline_t/sandwater_inner /turf/open/floor/plating/ironsand name = "iron sand" diff --git a/icons/misc/beach.dmi b/icons/misc/beach.dmi index c78c61658e2249013389531220e283185b0365b2..a538bdbe44fee9d2a31b20d00b58d87e21b3e3fb 100644 GIT binary patch literal 57256 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

    ?z=~L*I-u>(8bZWw1d6Rz*$oZwviU@Jq zgHlq!^5);h=#~WrV!W5tuTmcibjiF7<9}v~ZCCD2)=`NpcqmPm5ifni?$-U`=cM-a zL!;hA<@*hQK>*^?xApXsP22RG#~yle4HxO6gqrm@c+&RSjMS~EYI+6)Iw%CjLI{p+ z{FIy_q~rUOpO-8XV-jA3eSS*Ce=`A~W}Pk#ucGSX``P4p zNSGLXZVz4InjK#?(&u~ky^$KkT}1r6UiYR4(c~Zkx%}vQTVU3PcLi<7 zxdZ{_%>ieN1ybfp+84jpM;_Bgi$x4wNk^aeT<4o7_$Hei&sH52Q81#}L<7O^c)F%e zzJ@>g^(&{nR*J(#c-*cD|5LO(KQOEBvOd_anwl%!Epo!13y*a>Alr9ny9$r4I$WK> zc!osC=mgabh49z^2K&Z^^)2ebr?BR)F2xVCS2R}aFG%)eXlHi8HfJ`+m)L~WLLRGR z^`+U%M#TPS^)0@%y@;zMo7~DrcbGKXmgXN*E&r?hxeZ%X8$4%Gyh3;~h)$D6B;5fi z>M-jq6?0yt8g&t|rjkaScFGB;l9S!!){?a_Y_R)Rxyx}DQNX$KYSrjnbLsB~C|0rn zFpNCLwd1Ay7DLZSU^Ttw7}v4+4Y=rq)l=e8AFTA2??iGsH#t;(?5@6;*Cm|x@C)qFfuX5c92gpH- zxE0wY@niFABzuPMOwo6d-Xx10omQB@I;65)^WJ6oH4w)tI{i`xlE?+CIeYoK?>Fq< zyizBi`@1BeC#r%;-V4I}XNmh%jW&^3g_vvUo=b*Ox7@AG1>F;50!XBB-*K9}&}Qr||# zW+e09=++l{l!IBqF*tfSh)}JKjB9KaVV?@x?1blkZ?rIA)siEU|D!#*KLKBQ0Ip`+ z+LT=uS2~7g!py&6kWbc05a42e_K(&T`QCEb1##EcPv_?aQs5KXH?y9h&h#aZ@1w}` zV*nXgCtD5Yq^tkv%*_0IDNDkguMdkiOV{k zX;i>1ru|^^I}o&eAv*7!Ks>>V6pHMG&x2K*te(pG&OANl;1Q>Z5~%qUKN3W6P&SMt6OBo_D

    yNB51e$I#T*ar9@borqD)$JoIjSFc*_ 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 literal 11979 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 Date: Mon, 4 Jun 2018 07:55:20 -0500 Subject: [PATCH 119/205] Automatic changelog generation for PR #7007 [ci skip] --- html/changelogs/AutoChangeLog-pr-7007.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7007.yml diff --git a/html/changelogs/AutoChangeLog-pr-7007.yml b/html/changelogs/AutoChangeLog-pr-7007.yml new file mode 100644 index 0000000000..9dcc0d988f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7007.yml @@ -0,0 +1,4 @@ +author: "MrDoomBringer" +delete-after: True +changes: + - admin: "Central Command can now smite misbehaving crewmembers with supply pods (filled with whatever their hearts desire!)" From 495f0e07498c6abcb1dc1da7d2fe572bb04bac9f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 4 Jun 2018 07:55:39 -0500 Subject: [PATCH 120/205] Automatic changelog generation for PR #7008 [ci skip] --- html/changelogs/AutoChangeLog-pr-7008.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7008.yml diff --git a/html/changelogs/AutoChangeLog-pr-7008.yml b/html/changelogs/AutoChangeLog-pr-7008.yml new file mode 100644 index 0000000000..87b0ecdac1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7008.yml @@ -0,0 +1,4 @@ +author: "Beachsprites" +delete-after: True +changes: + - imageadd: "added directional beach sprites" From d3c7dd3802fecdebf13766da93b9032c110ff003 Mon Sep 17 00:00:00 2001 From: 1fbff5f83b23d39d38b1dfcb4cac8d9b <0a02d0db@opayq.com> Date: Tue, 5 Jun 2018 07:47:32 +0200 Subject: [PATCH 121/205] Fix recycling the same assembly multiple times (#38275) --- code/modules/integrated_electronics/core/printer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm index 61edd75ed1..2cab5ad3b9 100644 --- a/code/modules/integrated_electronics/core/printer.dm +++ b/code/modules/integrated_electronics/core/printer.dm @@ -87,7 +87,7 @@ return to_chat(user, "You begin recycling [EA]'s components...") playsound(src, 'sound/items/electronic_assembly_emptying.ogg', 50, TRUE) - if(!do_after(user, 30, target = src)) //short channel so you don't accidentally start emptying out a complex assembly + if(!do_after(user, 30, target = src) || recycling) //short channel so you don't accidentally start emptying out a complex assembly return recycling = TRUE var/datum/component/material_container/mats = GetComponent(/datum/component/material_container) From 1778c97eeb811d3aafc980ff40655d921ec4f6c5 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Mon, 4 Jun 2018 22:55:16 +0200 Subject: [PATCH 123/205] Adds missing minerals to /everything closet (#38267) * adds bs/ayy minerals to everything closet * plastic+wood --- .../objects/structures/crates_lockers/closets/syndicate.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 3edbde93b7..f2d32b773e 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -106,7 +106,11 @@ /obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/mineral/titanium, /obj/item/stack/sheet/mineral/plastitanium, - /obj/item/stack/rods + /obj/item/stack/rods, + /obj/item/stack/sheet/bluespace_crystal, + /obj/item/stack/sheet/mineral/abductor, + /obj/item/stack/sheet/plastic, + /obj/item/stack/sheet/mineral/wood ) for(var/i = 0, i<2, i++) From 70e1f9d27d211b6ed5e2ac19d8a68149f6218568 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 12:11:37 -0500 Subject: [PATCH 125/205] Automatic changelog generation for PR #6995 [ci skip] --- html/changelogs/AutoChangeLog-pr-6995.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6995.yml diff --git a/html/changelogs/AutoChangeLog-pr-6995.yml b/html/changelogs/AutoChangeLog-pr-6995.yml new file mode 100644 index 0000000000..0d3751d794 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6995.yml @@ -0,0 +1,5 @@ +author: "Denton" +delete-after: True +changes: + - tweak: "Pubbystation: Added a dual-port vent pump to the toxins burn chamber." + - code_imp: "Removed most airlock_controller/incinerator related varedits and replaced them with defines/subtypes." From 1042fa8ff1a32eec6dcd8781112b7e6173468d01 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 5 Jun 2018 18:15:51 +0000 Subject: [PATCH 126/205] Adds @CitadelBot wheelofsalt command (#7005) * adds the wheel of salt chat command to tgs3 * fuck i missed a couple things --- modular_citadel/code/modules/admin/chat_commands.dm | 10 ++++++++++ tgstation.dme | 1 + 2 files changed, 11 insertions(+) create mode 100644 modular_citadel/code/modules/admin/chat_commands.dm diff --git a/modular_citadel/code/modules/admin/chat_commands.dm b/modular_citadel/code/modules/admin/chat_commands.dm new file mode 100644 index 0000000000..9cd25d328c --- /dev/null +++ b/modular_citadel/code/modules/admin/chat_commands.dm @@ -0,0 +1,10 @@ +/datum/tgs_chat_command/wheelofsalt + name = "wheelofsalt" + help_text = "What are Citadel Station 13 players salting about today? Spin the wheel and find out!" + +/datum/tgs_chat_command/wheelofsalt/Run(datum/tgs_chat_user/sender, params) + var/saltresult = "The wheel of salt [pick("clatters","vibrates","clanks","groans","moans","squeaks","emits a[pick(" god-forsaken"," lewd"," creepy"," generic","n orgasmic")] [pick("airhorn","bike horn","trumpet","clown","latex","vore","dog")] noise")] as it spins violently... And it seems the salt of the day is the " + var/saltprimarysubject = "[pick("combat","medical","grab","furry","wall","orgasm","cat","ERP","lizard","dog","latex","vision cone","atmospherics","table","chem","vore","dogborg","Skylar Lineman","Mekhi Anderson","Peppermint","rework","cum","dick","cockvore")]" + var/saltsecondarysubject = "[pick("rework","changes","r34","ban","removal","addition","leak","proposal","fanart","introduction","tabling","ERP")]" + saltresult += "[saltprimarysubject] [saltsecondarysubject]" + return "[saltresult]!" diff --git a/tgstation.dme b/tgstation.dme index e0a84f22a5..5b830ad0af 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2732,6 +2732,7 @@ #include "modular_citadel\code\game\objects\structures\crates_lockers\closets\wardrobe.dm" #include "modular_citadel\code\game\objects\structures\crates_lockers\closets\secure\citadel_lockers.dm" #include "modular_citadel\code\modules\admin\admin.dm" +#include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" #include "modular_citadel\code\modules\admin\topic.dm" From 8a971eaa0625aee318f46622ec8bd3ddf5dbe759 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:15:53 -0500 Subject: [PATCH 127/205] Automatic changelog generation for PR #7005 [ci skip] --- html/changelogs/AutoChangeLog-pr-7005.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7005.yml diff --git a/html/changelogs/AutoChangeLog-pr-7005.yml b/html/changelogs/AutoChangeLog-pr-7005.yml new file mode 100644 index 0000000000..ca71f91693 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7005.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Adds the wheelofsalt command to TGS3. Spin the wheel of salt to find out what the Citadel Station 13 players are salting about today!" From 4076078210ad15a0b472f7a4b86a4b57cca353e6 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 5 Jun 2018 18:16:17 +0000 Subject: [PATCH 128/205] Adds table slamming as a right click interaction for tables (#7006) * Adds table slamming as a right click interaction for tables * and the DME, too. fuck. * fixes compiling errors --- .../code/game/objects/structures/tables_racks.dm | 10 ++++++++++ tgstation.dme | 1 + 2 files changed, 11 insertions(+) create mode 100644 modular_citadel/code/game/objects/structures/tables_racks.dm diff --git a/modular_citadel/code/game/objects/structures/tables_racks.dm b/modular_citadel/code/game/objects/structures/tables_racks.dm new file mode 100644 index 0000000000..f7300e1d3f --- /dev/null +++ b/modular_citadel/code/game/objects/structures/tables_racks.dm @@ -0,0 +1,10 @@ +/obj/structure/table/alt_attack_hand(mob/user) + if(user && Adjacent(user) && !user.incapacitated()) + if(istype(user) && user.a_intent == INTENT_HARM) + user.visible_message("[user] slams [p_their()] palms down on [src].", "You slam your palms down on [src].") + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) + else + user.visible_message("[user] slaps [p_their()] hands on [src].", "You slap your hands on [src].") + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + user.do_attack_animation(src) + return TRUE diff --git a/tgstation.dme b/tgstation.dme index 5b830ad0af..b895f951bb 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2726,6 +2726,7 @@ #include "modular_citadel\code\game\objects\items\melee\eutactic_blades.dm" #include "modular_citadel\code\game\objects\items\melee\transforming.dm" #include "modular_citadel\code\game\objects\items\storage\firstaid.dm" +#include "modular_citadel\code\game\objects\structures\tables_racks.dm" #include "modular_citadel\code\game\objects\structures\beds_chairs\chair.dm" #include "modular_citadel\code\game\objects\structures\beds_chairs\sofa.dm" #include "modular_citadel\code\game\objects\structures\crates_lockers\closets\fitness.dm" From 36357a4274ea2c54a285103f88aec6446698d5b7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:16:19 -0500 Subject: [PATCH 129/205] Automatic changelog generation for PR #7006 [ci skip] --- html/changelogs/AutoChangeLog-pr-7006.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7006.yml diff --git a/html/changelogs/AutoChangeLog-pr-7006.yml b/html/changelogs/AutoChangeLog-pr-7006.yml new file mode 100644 index 0000000000..afe3a639db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7006.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "You can now slam or slap your hands onto tables by right clicking them in combat mode." From 0b362e017b549e344cb4a8aa06fe26a681e68945 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:16:55 -0500 Subject: [PATCH 130/205] [MIRROR] Lavaland Clock Cult Ruin (#7011) * Lavaland Clock Cult Ruin (#38263) * Dead Ratvar * tgm map * Lavaland Clock Cult Ruin --- .../lavaland_surface_dead_ratvar.dmm | 990 ++++++++++++++++++ code/datums/ruins/lavaland.dm | 8 + .../ruins/lavalandruin_code/surface.dm | 19 +- icons/obj/lavaland/dead_ratvar.dmi | Bin 0 -> 70277 bytes 4 files changed, 1016 insertions(+), 1 deletion(-) create mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm create mode 100644 icons/obj/lavaland/dead_ratvar.dmi diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm new file mode 100644 index 0000000000..d6bb476f32 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm @@ -0,0 +1,990 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"c" = ( +/obj/item/clockwork/alloy_shards/small, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"d" = ( +/obj/structure/destructible/clockwork/wall_gear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"e" = ( +/obj/item/stack/tile/brass, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"f" = ( +/turf/closed/mineral/volcanic, +/area/lavaland/surface/outdoors/unexplored) +"g" = ( +/obj/item/clockwork/alloy_shards/medium/gear_bit, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"h" = ( +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"i" = ( +/obj/structure/grille/ratvar/broken, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"j" = ( +/turf/closed/wall/clockwork, +/area/lavaland/surface/outdoors/unexplored) +"k" = ( +/obj/item/clockwork/alloy_shards/small, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"l" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"m" = ( +/obj/item/clockwork/alloy_shards/medium, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"n" = ( +/obj/item/clockwork/component/belligerent_eye/blind_eye, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"o" = ( +/obj/item/clockwork/alloy_shards/large, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"p" = ( +/obj/item/clockwork/alloy_shards/medium, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"q" = ( +/obj/structure/lattice/catwalk/clockwork, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"r" = ( +/obj/structure/lattice/clockwork, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"s" = ( +/obj/item/clockwork/alloy_shards/large, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"t" = ( +/obj/item/stack/tile/brass, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"u" = ( +/obj/structure/grille/ratvar, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"v" = ( +/obj/item/clockwork/alloy_shards/medium, +/obj/structure/lattice/clockwork, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"w" = ( +/obj/structure/grille/ratvar/broken, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"x" = ( +/obj/structure/destructible/clockwork/wall_gear, +/obj/item/stack/tile/brass, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"y" = ( +/obj/item/clockwork/component/geis_capacitor/fallen_armor, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"z" = ( +/obj/structure/destructible/clockwork/wall_gear, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"A" = ( +/obj/item/clockwork/alloy_shards/clockgolem_remains, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"B" = ( +/obj/item/clockwork/weapon/ratvarian_spear, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"C" = ( +/obj/item/clockwork/alloy_shards/medium/gear_bit, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"D" = ( +/obj/structure/grille/ratvar, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"E" = ( +/obj/item/clockwork/alloy_shards/clockgolem_remains, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) +"F" = ( +/obj/structure/dead_ratvar, +/turf/open/floor/clockwork{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/lavaland/surface/outdoors/unexplored) +"G" = ( +/obj/item/stack/tile/brass/fifty, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/unexplored) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +s +h +b +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +o +b +a +h +b +r +c +j +x +b +b +g +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +f +b +l +b +v +b +p +w +j +j +c +l +b +b +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +f +l +l +r +b +b +l +j +j +j +p +l +b +h +c +r +a +a +"} +(5,1,1) = {" +a +a +a +a +a +b +l +l +p +h +c +l +l +l +j +l +b +l +l +D +h +r +a +a +"} +(6,1,1) = {" +a +a +a +h +c +h +m +l +l +c +l +l +l +l +w +l +l +l +m +c +h +f +a +a +"} +(7,1,1) = {" +a +a +b +b +b +l +l +l +l +h +b +l +l +l +l +l +l +l +l +c +f +f +b +a +"} +(8,1,1) = {" +a +h +h +g +c +b +l +l +l +l +n +h +r +l +l +b +l +l +l +l +f +b +a +a +"} +(9,1,1) = {" +a +b +c +b +b +l +l +l +l +t +h +b +h +w +p +b +g +l +l +b +b +b +b +a +"} +(10,1,1) = {" +b +h +l +l +l +l +l +l +b +b +p +r +F +b +h +A +b +l +l +l +m +l +l +a +"} +(11,1,1) = {" +c +i +j +j +l +l +l +l +l +b +h +k +h +h +h +r +l +l +l +l +l +l +b +a +"} +(12,1,1) = {" +d +j +j +j +h +l +l +b +l +q +r +h +h +h +c +q +l +b +l +l +b +h +o +a +"} +(13,1,1) = {" +e +k +b +l +l +l +b +p +s +r +h +h +h +h +h +h +h +l +l +l +l +b +b +a +"} +(14,1,1) = {" +b +b +b +m +l +l +l +b +h +h +k +h +h +h +h +h +c +b +l +l +b +b +h +b +"} +(15,1,1) = {" +b +b +b +l +l +l +l +h +h +h +h +h +h +h +k +B +h +l +l +l +l +b +b +a +"} +(16,1,1) = {" +f +l +l +l +l +l +l +q +b +h +h +h +h +h +h +s +b +l +l +l +l +f +f +a +"} +(17,1,1) = {" +b +b +b +l +l +l +b +l +q +r +h +h +h +h +h +b +s +r +l +r +l +l +b +a +"} +(18,1,1) = {" +b +h +l +l +l +b +b +h +b +h +h +h +h +h +r +k +b +C +r +h +b +b +m +b +"} +(19,1,1) = {" +b +b +l +l +l +l +h +b +h +h +h +h +h +h +h +r +j +h +c +h +r +h +b +b +"} +(20,1,1) = {" +b +l +l +l +l +b +b +p +h +c +h +k +h +h +o +b +l +l +l +b +E +r +G +o +"} +(21,1,1) = {" +g +b +l +l +l +l +l +r +h +r +h +h +h +h +y +l +l +l +l +l +l +j +j +r +"} +(22,1,1) = {" +c +c +b +l +l +b +h +h +t +b +h +h +h +h +h +m +b +l +l +l +h +j +j +j +"} +(23,1,1) = {" +b +h +m +n +b +h +l +o +j +u +r +p +h +r +h +b +l +l +l +b +b +w +r +b +"} +(24,1,1) = {" +a +a +b +b +l +l +l +j +j +q +p +h +m +e +z +j +j +l +l +c +l +l +b +a +"} +(25,1,1) = {" +a +a +a +l +l +l +l +j +l +l +b +h +r +x +h +l +l +l +l +l +l +a +a +a +"} +(26,1,1) = {" +a +a +a +c +b +l +l +l +l +l +l +g +q +b +h +l +l +l +c +m +b +a +a +a +"} +(27,1,1) = {" +a +a +a +b +h +b +l +l +l +l +l +l +l +l +l +l +l +l +l +b +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +c +b +l +b +l +l +l +l +l +l +l +l +b +l +f +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +b +b +f +c +b +l +c +l +l +l +l +c +o +l +b +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +g +c +b +l +l +b +m +l +b +l +f +b +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +b +l +b +a +b +l +c +f +f +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +a +a +a +a +a +a +a +a +a +"} diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 8817a1ff96..af299aaee9 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -115,6 +115,14 @@ // Generates nothing but atmos runtimes and salt cost = 0 +/datum/map_template/ruin/lavaland/ratvar + name = "Dead God" + id = "ratvar" + description = "Ratvars final resting place." + suffix = "lavaland_surface_dead_ratvar.dmm" + cost = 0 + allow_duplicates = FALSE + /datum/map_template/ruin/lavaland/hierophant name = "Hierophant's Arena" id = "hierophant" diff --git a/code/modules/ruins/lavalandruin_code/surface.dm b/code/modules/ruins/lavalandruin_code/surface.dm index b2312ded87..72896c08a3 100644 --- a/code/modules/ruins/lavalandruin_code/surface.dm +++ b/code/modules/ruins/lavalandruin_code/surface.dm @@ -2,4 +2,21 @@ /obj/item/paper/fluff/stations/lavaland/surface/henderson_report name = "Important Notice - Mrs. Henderson" - info = "Nothing of interest to report." \ No newline at end of file + info = "Nothing of interest to report." + +//ratvar + +/obj/structure/dead_ratvar + name = "hulking wreck" + desc = "The remains of a monstrous war machine." + icon = 'icons/obj/lavaland/dead_ratvar.dmi' + icon_state = "dead_ratvar" + flags_1 = ON_BORDER_1 + appearance_flags = 0 + layer = FLY_LAYER + anchored = TRUE + density = TRUE + bound_width = 416 + bound_height = 64 + pixel_y = -10 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/icons/obj/lavaland/dead_ratvar.dmi b/icons/obj/lavaland/dead_ratvar.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5e6e9087bd0936f0db8901a26fca2edc540e21fd GIT binary patch literal 70277 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 Date: Tue, 5 Jun 2018 20:16:16 +0200 Subject: [PATCH 131/205] Stop swarmers from attacking field gens/turret covers (#38283) --- code/modules/antagonists/swarmer/swarmer.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 8557405801..d4d86cc087 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -373,6 +373,10 @@ to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") return FALSE +/obj/machinery/porta_turret_cover/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") + return FALSE + /mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisperseTarget(src) return TRUE @@ -405,6 +409,10 @@ to_chat(S, "This object does not contain enough materials to work with.") return FALSE +/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.") + return FALSE + ////END CTRL CLICK FOR SWARMERS//// /mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) From 74aeecca6db22e3b6bcc319e3aeb02ba011f5cca Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:17:47 -0500 Subject: [PATCH 133/205] [MIRROR] Fix the Lightning Bolt spell (#7013) * Fix the Lightning Bolt spell (#38253) * Fix the Lightning Bolt spell --- code/modules/spells/spell_types/aimed.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 6c860fda9b..35f9a8f50a 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -29,7 +29,7 @@ remove_ranged_ability(msg) on_deactivation(user) else - msg = "[active_msg]Left-click to shoot it at a target!" + msg = "[active_msg] Left-click to shoot it at a target!" current_amount = projectile_amount add_ranged_ability(user, msg, TRUE) on_activation(user) @@ -101,7 +101,7 @@ base_icon_state = "lightning" sound = 'sound/magic/lightningbolt.ogg' active = FALSE - projectile_var_overrides = list("tesla_range" = 15, "tesla_power" = 20000, "tesla_boom" = FALSE) + projectile_var_overrides = list("tesla_range" = 15, "tesla_power" = 20000, "tesla_flags" = TESLA_MOB_DAMAGE) active_msg = "You energize your hand with arcane lightning!" deactive_msg = "You let the energy flow out of your hands back into yourself..." projectile_type = /obj/item/projectile/magic/aoe/lightning From fbe49fece0035ca462c8dcb8f22104fd5ad5a731 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:17:49 -0500 Subject: [PATCH 134/205] Automatic changelog generation for PR #7013 [ci skip] --- html/changelogs/AutoChangeLog-pr-7013.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7013.yml diff --git a/html/changelogs/AutoChangeLog-pr-7013.yml b/html/changelogs/AutoChangeLog-pr-7013.yml new file mode 100644 index 0000000000..51fda8cec2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7013.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "The Lightning Bolt spell now works again." From eb2368be0373e41494bd0657275012b9fdcd40e6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:18:27 -0500 Subject: [PATCH 135/205] [MIRROR] Fix inconsistent energy gun suicide (#7012) * Fix inconsistent energy gun suicide (#38252) * Fix inconsistent energy gun suicide --- code/modules/projectiles/guns/energy.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 7a3f002cbf..2a352932fa 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -166,8 +166,8 @@ /obj/item/gun/energy/ui_action_click() toggle_gunlight() -/obj/item/gun/energy/suicide_act(mob/user) - if (can_shoot() && can_trigger_gun(user)) +/obj/item/gun/energy/suicide_act(mob/living/user) + if (istype(user) && can_shoot() && can_trigger_gun(user) && user.get_bodypart(BODY_ZONE_HEAD)) user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") sleep(25) if(user.is_holding(src)) @@ -181,7 +181,7 @@ user.visible_message("[user] panics and starts choking to death!") return(OXYLOSS) else - user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] is pretending to melt [user.p_their()] face off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(src, "gun_dry_fire", 30, 1) return (OXYLOSS) From 6a6407881c184a2da273d1ab28b4d1355c4fdb72 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:18:30 -0500 Subject: [PATCH 136/205] Automatic changelog generation for PR #7012 [ci skip] --- html/changelogs/AutoChangeLog-pr-7012.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7012.yml diff --git a/html/changelogs/AutoChangeLog-pr-7012.yml b/html/changelogs/AutoChangeLog-pr-7012.yml new file mode 100644 index 0000000000..b4ff596298 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7012.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - spellcheck: "Faceless persons no longer \"melt their face off\" in energy gun suicides." From de73153ccb2c70ce6f4cda87e036b2241abd5218 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 13:19:33 -0500 Subject: [PATCH 137/205] [MIRROR] Fixes uplink refunds (#7014) * Fixes uplink refunds (#38272) * Fixes uplink refunds * Whoops * Sure * Fixes uplink refunds --- code/modules/uplink/uplink.dm | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index e269e0bf49..deacb6d401 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -74,25 +74,17 @@ GLOBAL_LIST_EMPTY(uplinks) return //no hitting everyone/everything just to try to slot tcs in! if(istype(I, /obj/item/stack/telecrystal)) LoadTC(user, I) - for(var/item in subtypesof(/datum/uplink_item)) - var/datum/uplink_item/UI = item - var/path = null - if(initial(UI.refund_path)) - path = initial(UI.refund_path) - else - path = initial(UI.item) - var/cost = 0 - if(initial(UI.refund_amount)) - cost = initial(UI.refund_amount) - else - cost = initial(UI.cost) - var/refundable = initial(UI.refundable) - if(I.type == path && refundable && I.check_uplink_validity()) - telecrystals += cost - purchase_log.total_spent -= cost - to_chat(user, "[I] refunded.") - qdel(I) - return + for(var/category in uplink_items) + for(var/item in uplink_items[category]) + var/datum/uplink_item/UI = uplink_items[category][item] + var/path = UI.refund_path || UI.item + var/cost = UI.refund_amount || UI.cost + if(I.type == path && UI.refundable && I.check_uplink_validity()) + telecrystals += cost + purchase_log.total_spent -= cost + to_chat(user, "[I] refunded.") + qdel(I) + return /datum/component/uplink/proc/interact(mob/user) if(locked) From 2fb5bb10b5dff1017408c4a232c5c226e8b6e184 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Tue, 5 Jun 2018 20:27:18 +0200 Subject: [PATCH 138/205] Arcade reward: snack rigs (#38268) * chew you havisfaction a singlelicious satisfact to snack that up? * random snack spawn and sponsor name * static list/initialize --- code/game/machinery/computer/arcade.dm | 4 ++- code/game/objects/items/storage/belt.dm | 47 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9dad813677..3ce64c9030 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -51,7 +51,9 @@ /obj/item/hot_potato/harmless/toy = 1, /obj/item/card/emagfake = 1, /obj/item/clothing/shoes/wheelys = 2, - /obj/item/clothing/shoes/kindleKicks = 2) + /obj/item/clothing/shoes/kindleKicks = 2, + /obj/item/storage/belt/military/snack = 2 + ) light_color = LIGHT_COLOR_GREEN diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 1c4ad03b01..249eb67c05 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -326,6 +326,53 @@ GET_COMPONENT(STR, /datum/component/storage) STR.max_w_class = WEIGHT_CLASS_SMALL +/obj/item/storage/belt/military/snack + name = "tactical snack rig" + +/obj/item/storage/belt/military/snack/Initialize() + . = ..() + var/sponsor = pick("DonkCo", "Waffle Co.", "Roffle Co.", "Gorlax Marauders", "Tiger Cooperative") + desc = "A set of snack-tical webbing worn by athletes of the [sponsor] VR sports division." + +/obj/item/storage/belt/military/snack/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 6 + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.can_hold = typecacheof(list( + /obj/item/reagent_containers/food/snacks, + /obj/item/reagent_containers/food/drinks + )) + + var/amount = 5 + var/rig_snacks + while(contents.len <= amount) + rig_snacks = pick(list( + /obj/item/reagent_containers/food/snacks/candy, + /obj/item/reagent_containers/food/drinks/dry_ramen, + /obj/item/reagent_containers/food/snacks/chips, + /obj/item/reagent_containers/food/snacks/sosjerky, + /obj/item/reagent_containers/food/snacks/syndicake, + /obj/item/reagent_containers/food/snacks/spacetwinkie, + /obj/item/reagent_containers/food/snacks/cheesiehonkers, + /obj/item/reagent_containers/food/snacks/nachos, + /obj/item/reagent_containers/food/snacks/cheesynachos, + /obj/item/reagent_containers/food/snacks/cubannachos, + /obj/item/reagent_containers/food/snacks/nugget, + /obj/item/reagent_containers/food/snacks/pastatomato, + /obj/item/reagent_containers/food/snacks/rofflewaffles, + /obj/item/reagent_containers/food/snacks/donkpocket, + /obj/item/reagent_containers/food/drinks/soda_cans/cola, + /obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind, + /obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb, + /obj/item/reagent_containers/food/drinks/soda_cans/starkist, + /obj/item/reagent_containers/food/drinks/soda_cans/space_up, + /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game, + /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime, + /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola + )) + new rig_snacks(src) + /obj/item/storage/belt/military/abductor name = "agent belt" desc = "A belt used by abductor agents." From 9fd7bfb3479ce69bbd6621560389aa70cdd2d09e Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Tue, 5 Jun 2018 20:29:15 +0200 Subject: [PATCH 140/205] Blacklist ion trails from chasms (#38284) --- code/datums/components/chasm.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 1f3a846c61..88a92ce8ec 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -18,7 +18,9 @@ /obj/effect/landmark, /obj/effect/temp_visual, /obj/effect/light_emitter/tendril, - /obj/effect/collapse)) + /obj/effect/collapse, + /obj/effect/particle_effect/ion_trails + )) /datum/component/chasm/Initialize(turf/target) RegisterSignal(list(COMSIG_MOVABLE_CROSSED, COMSIG_ATOM_ENTERED), .proc/Entered) From b2bc6dc213fb7a9a215657984d569ef8c0b2eef4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 15:52:06 -0500 Subject: [PATCH 142/205] Automatic changelog generation for PR #7016 [ci skip] --- html/changelogs/AutoChangeLog-pr-7016.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7016.yml diff --git a/html/changelogs/AutoChangeLog-pr-7016.yml b/html/changelogs/AutoChangeLog-pr-7016.yml new file mode 100644 index 0000000000..f8daa8581f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7016.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - rscadd: "Arcades have been stocked with preloaded tactical snack rigs." From 2b020926399d80946b8f6b43897978a13c526611 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 5 Jun 2018 17:03:55 -0400 Subject: [PATCH 143/205] Update preferences.dm --- code/modules/client/preferences.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 044becba9c..5c6c0a8229 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1380,11 +1380,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(pickedui) UI_style = pickedui if("pda_style") -<<<<<<< HEAD - var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference") as null|anything in list(MONO, SHARE, ORBITRON, VT) -======= var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference", pda_style) as null|anything in GLOB.pda_styles ->>>>>>> 513a5f1... Fixes pda style loading (#38238) if(pickedPDAStyle) pda_style = pickedPDAStyle if("pda_color") From 93d43c1d503838ea4e016c16284db1da8796ab89 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 16:04:18 -0500 Subject: [PATCH 144/205] Automatic changelog generation for PR #7015 [ci skip] --- html/changelogs/AutoChangeLog-pr-7015.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7015.yml diff --git a/html/changelogs/AutoChangeLog-pr-7015.yml b/html/changelogs/AutoChangeLog-pr-7015.yml new file mode 100644 index 0000000000..e15283155d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7015.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - bugfix: "Swarmers can no longer attack field generators and turret covers." From 3489ed23c61f58c1b11b8c989eed18d1665c4c0a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 16:23:56 -0500 Subject: [PATCH 145/205] Automatic changelog generation for PR #6983 [ci skip] --- html/changelogs/AutoChangeLog-pr-6983.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6983.yml diff --git a/html/changelogs/AutoChangeLog-pr-6983.yml b/html/changelogs/AutoChangeLog-pr-6983.yml new file mode 100644 index 0000000000..b74d9635b3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6983.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "PDA style now gets loaded correctly." From cff10c62d0d1114bb13555d980dcbb3222900e10 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 5 Jun 2018 17:24:15 -0400 Subject: [PATCH 146/205] Update cloning.dm --- code/game/machinery/computer/cloning.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 6e9e468be2..8cbe9a68ec 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -276,15 +276,10 @@ if(href_list["task"]) switch(href_list["task"]) if("autoprocess") -<<<<<<< HEAD - autoprocess = 1 - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) -======= if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) autoprocess = TRUE START_PROCESSING(SSmachines, src) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) ->>>>>>> ce2d790... Fix autoprocessing cloners (#38264) if("stopautoprocess") autoprocess = 0 playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) From 83ac5852dd48eb625fc7e6ee2a330f1c7e77dc32 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Wed, 6 Jun 2018 01:59:46 +0300 Subject: [PATCH 147/205] Turn /datum.isprocessing into a datum flag (#38193) --- code/__DEFINES/MC.dm | 4 ++-- code/__DEFINES/flags.dm | 1 + code/_globalvars/bitfields.dm | 3 ++- code/controllers/subsystem/machines.dm | 2 +- code/controllers/subsystem/processing/processing.dm | 1 - code/game/objects/structures/beds_chairs/chair.dm | 2 +- .../clockcult/clock_structures/trap_triggers/repeater.dm | 2 +- code/modules/projectiles/projectile.dm | 2 +- 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index cbcf2c1dd9..97ce6ef6fd 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -19,8 +19,8 @@ #define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} -#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = TRUE;Processor.processing += Datum} -#define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = FALSE;Processor.processing -= Datum +#define START_PROCESSING(Processor, Datum) if (!(Datum.datum_flags & DF_ISPROCESSING)) {Datum.datum_flags |= DF_ISPROCESSING;Processor.processing += Datum} +#define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum //SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 61249cb60a..f566492ec3 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -9,6 +9,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 // for /datum/var/datum_flags #define DF_USE_TAG (1<<0) #define DF_VAR_EDITED (1<<1) +#define DF_ISPROCESSING (1<<2) //FLAGS BITMASK diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 6113e11eef..5ef8dc6d1b 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -35,7 +35,8 @@ GLOBAL_LIST_INIT(bitfields, list( ), "datum_flags" = list( "DF_USE_TAG" = DF_USE_TAG, - "DF_VAR_EDITED" = DF_VAR_EDITED + "DF_VAR_EDITED" = DF_VAR_EDITED, + "DF_ISPROCESSING" = DF_ISPROCESSING, ), "item_flags" = list( "BEING_REMOVED" = BEING_REMOVED, diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index eab61d4ef9..6d5d64fe6c 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -45,7 +45,7 @@ SUBSYSTEM_DEF(machines) else processing -= thing if (!QDELETED(thing)) - thing.isprocessing = FALSE + thing.datum_flags &= ~DF_ISPROCESSING if (MC_TICK_CHECK) return diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index f6d45ebff2..ef2a0f72e6 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -27,7 +27,6 @@ SUBSYSTEM_DEF(processing) if (MC_TICK_CHECK) return -/datum/var/isprocessing = FALSE /datum/proc/process() set waitfor = 0 STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 93b8635dc5..498416f73f 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -385,7 +385,7 @@ turns = 0 if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) return - if(!isprocessing) + if(!(datum_flags & DF_ISPROCESSING)) user.visible_message("[user] spins [src] around, and Ratvarian technology keeps it spinning FOREVER.", \ "Automated spinny chairs. The pinnacle of Ratvarian technology.") START_PROCESSING(SSfastprocess, src) diff --git a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm index 41292f818d..f5ed91ac15 100644 --- a/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm +++ b/code/modules/antagonists/clockcult/clock_structures/trap_triggers/repeater.dm @@ -12,7 +12,7 @@ return if(!is_servant_of_ratvar(user)) return - if(!isprocessing) + if(!(datum_flags & DF_ISPROCESSING)) START_PROCESSING(SSprocessing, src) to_chat(user, "You activate [src].") icon_state = "[icon_state]_on" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b0dc498bfa..4ee1363853 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -356,7 +356,7 @@ fired = TRUE if(hitscan) process_hitscan() - if(!isprocessing) + if(!(datum_flags & DF_ISPROCESSING)) START_PROCESSING(SSprojectiles, src) pixel_move(1) //move it now! From 71f684e5d8f4c6638221f14af70a93233c864e6e Mon Sep 17 00:00:00 2001 From: MrDoomBringer Date: Tue, 5 Jun 2018 19:01:48 -0400 Subject: [PATCH 149/205] Admin Supplypod tweaks (Behaves like fireballs, also stuns targets) (#38290) * Arianya * whups caps --- .../crates_lockers/closets/secure/supplypod.dm | 15 ++++++++------- code/modules/admin/verbs/randomverbs.dm | 9 +++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm b/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm index c51f13bb12..995f858fb0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/supplypod.dm @@ -104,16 +104,14 @@ light_range = 2 var/obj/effect/temp_visual/fallingPod -/obj/effect/DPtarget/Initialize(mapload, var/SO, var/podID) +/obj/effect/DPtarget/Initialize(mapload, var/SO, var/podID, var/target) . = ..() - var/delayTime = 0 + var/delayTime = 30//default time is 30 seconds switch(podID) - if(POD_STANDARD) - delayTime = 30 if(POD_BLUESPACE) delayTime = 15 if(POD_CENTCOM) - delayTime = 1 + delayTime = 5//speedy delivery addtimer(CALLBACK(src, .proc/beginLaunch, SO, podID), delayTime)//standard pods take 3 seconds to come in, bluespace pods take 1.5 @@ -130,8 +128,11 @@ new /obj/structure/closet/supplypod/bluespacepod(drop_location(), SO)//pod is created explosion(src,0,0,2, flame_range = 1) //explosion and camshake (shoutout to @cyberboss) else - new /obj/structure/closet/supplypod/bluespacepod/centcompod(drop_location(), SO) - explosion(src,0,0,2, flame_range = 1) + new /obj/structure/closet/supplypod/bluespacepod/centcompod(drop_location(), SO)//CentCom supplypods dont create explosions; instead they directly deal 40 fire damage to people on the turf + var/turf/T = get_turf(src) + T.hotspot_expose(700, 50, 1)//same as fireball + for(var/mob/living/M in T.contents) + M.adjustFireLoss(40) qdel(src) /obj/effect/DPtarget/Destroy() diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index fb5111e88e..07c19e2b43 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1310,17 +1310,18 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits var/target_path = input(usr,"Enter typepath of an atom you'd like to send with the pod (type \"empty\" to send an empty pod):" ,"Typepath","/obj/item/reagent_containers/food/snacks/grown/harebell") as null|text if (isnull(target_path)) return - if (target_path == "empty")//if you type "abort", spawn an empty pod + if (target_path == "empty")//if you type "empty", spawn an empty pod new /obj/effect/DPtarget(get_turf(target), null, POD_CENTCOM) return var/delivery = text2path(target_path) if(!ispath(delivery)) delivery = pick_closest_path(target_path) if(!delivery) - delivery = /obj/item/reagent_containers/food/snacks/grown/harebell - alert("That path is not allowed.") + alert("ERROR: Incorrect / improper path given.") + return //send the pod - new /obj/effect/DPtarget(get_turf(target), delivery, POD_CENTCOM) + target.Stun(10)//takes 0.53 seconds for CentCom pod to land + new /obj/effect/DPtarget(get_turf(target), delivery, POD_CENTCOM, target) var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]." message_admins(msg) From ebe0695af3dbb415c496f7e7f7109db709388f22 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 18:36:24 -0500 Subject: [PATCH 151/205] Automatic changelog generation for PR #7020 [ci skip] --- html/changelogs/AutoChangeLog-pr-7020.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7020.yml diff --git a/html/changelogs/AutoChangeLog-pr-7020.yml b/html/changelogs/AutoChangeLog-pr-7020.yml new file mode 100644 index 0000000000..33f65b25df --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7020.yml @@ -0,0 +1,4 @@ +author: "MrDoomBringer" +delete-after: True +changes: + - admin: "CentCom Supplypods now stun their target before landing, and won't damage the station as much" From da008a2d83954a77cea35b3b7fa52581c0c24891 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 18:36:39 -0500 Subject: [PATCH 152/205] Automatic changelog generation for PR #7019 [ci skip] --- html/changelogs/AutoChangeLog-pr-7019.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7019.yml diff --git a/html/changelogs/AutoChangeLog-pr-7019.yml b/html/changelogs/AutoChangeLog-pr-7019.yml new file mode 100644 index 0000000000..5cf456ab6c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7019.yml @@ -0,0 +1,4 @@ +author: "Naksu" +delete-after: True +changes: + - code_imp: "moved /datum.isprocessing into datum flags" From 129971c6ba3d1a718fd4b10879120491728530f4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 18:37:22 -0500 Subject: [PATCH 153/205] Automatic changelog generation for PR #6979 [ci skip] --- html/changelogs/AutoChangeLog-pr-6979.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6979.yml diff --git a/html/changelogs/AutoChangeLog-pr-6979.yml b/html/changelogs/AutoChangeLog-pr-6979.yml new file mode 100644 index 0000000000..83cc369bbf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6979.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - refactor: "The base machinery type is now anchored by default." From 93488e81da35887666796c04171da6aeabfab385 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 18:37:40 -0500 Subject: [PATCH 154/205] Automatic changelog generation for PR #6971 [ci skip] --- html/changelogs/AutoChangeLog-pr-6971.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6971.yml diff --git a/html/changelogs/AutoChangeLog-pr-6971.yml b/html/changelogs/AutoChangeLog-pr-6971.yml new file mode 100644 index 0000000000..cfcfc7c801 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6971.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Pubby's auxiliary mining base now works again." From 7893cb360e028585c0f125b7b063bb6e34e32e0a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 5 Jun 2018 18:38:57 -0500 Subject: [PATCH 155/205] Automatic changelog generation for PR #6960 [ci skip] --- html/changelogs/AutoChangeLog-pr-6960.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6960.yml diff --git a/html/changelogs/AutoChangeLog-pr-6960.yml b/html/changelogs/AutoChangeLog-pr-6960.yml new file mode 100644 index 0000000000..6ccfa63bff --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6960.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - config: "The limit of monkey's spawned via monkey cubes is now configurable" From 0d6cec9d8cbea2d3bbfbe803f4850f384c59bae8 Mon Sep 17 00:00:00 2001 From: iksyp <33264221+iskyp@users.noreply.github.com> Date: Tue, 5 Jun 2018 20:34:50 -0700 Subject: [PATCH 156/205] Readds hunger slowdown --- code/modules/mob/living/carbon/human/species.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 2b5ed79d7b..6cb1997459 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1259,7 +1259,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(flight) . += ((health_deficiency-39) / 75) // CIT CHANGE - adds -39 to health deficiency penalty to make the transition to low health movement a little less jarring else +<<<<<<< HEAD . += ((health_deficiency-39) / 25) // CIT CHANGE - ditto +======= + . += (health_deficiency / 25) + if(CONFIG_GET(flag/disable_human_mood)) + var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80 + if((hungry >= 70) && !flight) //Being hungry will still allow you to use a flightsuit/wings. + . += hungry / 50 +>>>>>>> c06c3b7... Readds Hunger Slowdown (#38294) GET_COMPONENT_FROM(mood, /datum/component/mood, H) if(mood && !flight) //How can depression slow you down if you can just fly away from your problems? From fb4c1e8e2821cadea12036b802ba02e76803ce37 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Wed, 6 Jun 2018 01:12:55 -0500 Subject: [PATCH 157/205] Increases head jobs restricted from antag RNG (#6868) * restricts traitor and ling jobs * Update changeling.dm * Update traitor.dm --- code/game/gamemodes/changeling/changeling.dm | 2 +- code/game/gamemodes/traitor/traitor.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 93d77209e0..1ebfe78c5d 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -11,7 +11,7 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th antag_flag = ROLE_CHANGELING false_report_weight = 10 restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist required_players = 15 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 80ce90722b..95d1aaaa1d 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -11,7 +11,7 @@ antag_flag = ROLE_TRAITOR false_report_weight = 20 //Reports of traitors are pretty common. restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist required_players = 0 required_enemies = 1 recommended_enemies = 4 From 286de1b966d5feeccce69ca7f0c3d0429d6805df Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 6 Jun 2018 01:12:57 -0500 Subject: [PATCH 158/205] Automatic changelog generation for PR #6868 [ci skip] --- html/changelogs/AutoChangeLog-pr-6868.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6868.yml diff --git a/html/changelogs/AutoChangeLog-pr-6868.yml b/html/changelogs/AutoChangeLog-pr-6868.yml new file mode 100644 index 0000000000..c6e55230aa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6868.yml @@ -0,0 +1,4 @@ +author: "Jay" +delete-after: True +changes: + - tweak: "Bans CMO, RD, CE, and HoP from antag/ling" From a298f20fa51dc8e826a25b34f6e5d3eb7fa9db63 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 6 Jun 2018 01:14:48 -0500 Subject: [PATCH 159/205] [MIRROR] [s] Fixes syndicate sentience exploit (#7021) * Fixes syndicate sentience exploit (#38299) * [s] Fixes syndicate sentience exploit --- code/modules/uplink/uplink_items.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index a2f85e9222..89197a7f07 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1158,6 +1158,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A potion recovered at great risk by undercover syndicate operatives and then subsequently modified with syndicate technology. Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." cost = 4 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE /datum/uplink_item/device_tools/telecrystal name = "Raw Telecrystal" From 32b91ef798d227201992cc273bf59984629e460a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 6 Jun 2018 01:14:50 -0500 Subject: [PATCH 160/205] Automatic changelog generation for PR #7021 [ci skip] --- html/changelogs/AutoChangeLog-pr-7021.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7021.yml diff --git a/html/changelogs/AutoChangeLog-pr-7021.yml b/html/changelogs/AutoChangeLog-pr-7021.yml new file mode 100644 index 0000000000..db52a1d046 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7021.yml @@ -0,0 +1,4 @@ +author: "Dax Dupont" +delete-after: True +changes: + - bugfix: "Fixes a sentience related exploit by blacklisting it in restricted uplinks." From e3f9229e086f49f4205f1c6d6a7f01139a1c1a74 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Wed, 6 Jun 2018 09:35:33 +0200 Subject: [PATCH 161/205] Fixes Pubby maint boozeomat (#38300) --- _maps/map_files/PubbyStation/PubbyStation.dmm | 5 +---- code/modules/vending/boozeomat.dm | 12 ++++++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index ee6ee533f4..ea03478492 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -46986,10 +46986,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cBk" = ( -/obj/machinery/vending/boozeomat{ - products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, /obj/item/reagent_containers/food/drinks/bottle/limejuice = 1, /obj/item/reagent_containers/food/drinks/bottle/cream = 1, /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/reagent_containers/food/drinks/ice = 3, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6, /obj/item/reagent_containers/food/drinks/flask = 1); - req_access_txt = "0" - }, +/obj/machinery/vending/boozeomat/maint, /turf/closed/wall, /area/maintenance/department/crew_quarters/dorms) "cBl" = ( diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index 2738e18b19..f5f7bf1d9d 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -38,6 +38,18 @@ req_access_txt = "25" refill_canister = /obj/item/vending_refill/boozeomat +/obj/machinery/vending/boozeomat/maint + products = list(/obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 1, + /obj/item/reagent_containers/food/drinks/bottle/limejuice = 1, + /obj/item/reagent_containers/food/drinks/bottle/cream = 1, + /obj/item/reagent_containers/food/drinks/soda_cans/tonic = 1, + /obj/item/reagent_containers/food/drinks/drinkingglass = 10, + /obj/item/reagent_containers/food/drinks/ice = 3, + /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass = 6, + /obj/item/reagent_containers/food/drinks/flask = 1) + req_access_txt = "0" + /obj/item/vending_refill/boozeomat machine_name = "Booze-O-Mat" icon_state = "refill_booze" From de68aa95719c94dde67867419140a354602ff72f Mon Sep 17 00:00:00 2001 From: oranges Date: Wed, 6 Jun 2018 21:09:59 +1200 Subject: [PATCH 163/205] Individual Logs now follow the client around automatically (#37790) The logging is now stored in the persistent client/player_details datum, that will survive an entire round The existing mob log is retained and a new admin verb is added to access it. It will only show logs for the mob in question, across all players who possibly spent time in that mob A new log type is added that tracks the mobs the player changes across into and the times they occured, to better help admins manage complex situations, this also appears in the mob log as a record of the players who entered/exited control of the mob --- code/__DEFINES/logging.dm | 5 +- code/_globalvars/logging.dm | 2 - code/modules/admin/admin.dm | 6 ++- code/modules/admin/topic.dm | 2 +- .../modules/admin/verbs/individual_logging.dm | 46 +++++++++++++------ code/modules/client/player_details.dm | 3 +- code/modules/mob/dead/observer/observer.dm | 1 - code/modules/mob/login.dm | 5 +- code/modules/mob/logout.dm | 3 +- code/modules/mob/mob.dm | 1 + code/modules/mob/mob_helpers.dm | 6 +++ code/modules/projectiles/projectile/magic.dm | 1 - 12 files changed, 55 insertions(+), 26 deletions(-) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 6d7cf12789..197c315f78 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -20,4 +20,7 @@ #define INDIVIDUAL_SAY_LOG "Say log" #define INDIVIDUAL_EMOTE_LOG "Emote log" #define INDIVIDUAL_OOC_LOG "OOC log" -#define INDIVIDUAL_SHOW_ALL_LOG "All logs" \ No newline at end of file +#define INDIVIDUAL_OWNERSHIP_LOG "Ownership log" +#define INDIVIDUAL_SHOW_ALL_LOG "All logs" +#define LOGSRC_CLIENT "Client" +#define LOGSRC_MOB "Mob" diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 545ffbcbef..e00e4775ac 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -41,6 +41,4 @@ GLOBAL_PROTECT(OOClog) GLOBAL_LIST_EMPTY(adminlog) GLOBAL_PROTECT(adminlog) -GLOBAL_LIST_EMPTY(individual_log_list) // Logs each mob individual logs, a global so it doesn't get lost on cloning/changing mobs - GLOBAL_LIST_EMPTY(active_turfs_startlist) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d67bbfd6c5..7958e8e943 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -63,7 +63,11 @@ body += "PM - " body += "SM - " body += "FLW - " - body += "LOGS\]
    " + //Default to client logs if available + var/source = LOGSRC_MOB + if(M.client) + source = LOGSRC_CLIENT + body += "LOGS\]
    " body += "Mob type = [M.type]

    " diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index b4d92b1fbe..0eacdd5c5e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1905,7 +1905,7 @@ to_chat(usr, "This can only be used on instances of type /mob.") return - show_individual_logging_panel(M, href_list["log_type"]) + show_individual_logging_panel(M, href_list["log_src"], href_list["log_type"]) else if(href_list["languagemenu"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/individual_logging.dm b/code/modules/admin/verbs/individual_logging.dm index 50b00da9a6..df151cfef9 100644 --- a/code/modules/admin/verbs/individual_logging.dm +++ b/code/modules/admin/verbs/individual_logging.dm @@ -1,32 +1,52 @@ -/proc/show_individual_logging_panel(mob/M, type = INDIVIDUAL_ATTACK_LOG) +/proc/show_individual_logging_panel(mob/M, source = LOGSRC_CLIENT, type = INDIVIDUAL_ATTACK_LOG) if(!M || !ismob(M)) return - var/dat = "

    Attack log | " - dat += "Say log | " - dat += "Emote log | " - dat += "OOC log | " - dat += "Show all | " - dat += "Refresh
    " + + //Add client links + var/dat = "" + if(M.client) + dat += "

    Client

    " + dat += "
    Attack log | " + dat += "Say log | " + dat += "Emote log | " + dat += "OOC log | " + dat += "Show all | " + dat += "Refresh
    " + else + dat += "

    No client attached to mob

    " + + dat += "
    " + dat += "

    Mob

    " + //Add the links for the mob specific log + dat += "
    Attack log | " + dat += "Say log | " + dat += "Emote log | " + dat += "OOC log | " + dat += "Show all | " + dat += "Refresh
    " dat += "
    " + var/log_source = M.logging; + if(source == LOGSRC_CLIENT && M.client) //if client doesn't exist just fall back to the mob log + log_source = M.client.player_details.logging //should exist, if it doesn't that's a bug, don't check for it not existing if(type == INDIVIDUAL_SHOW_ALL_LOG) - dat += "
    Displaying all logs of [key_name(M)]


    " - for(var/log_type in M.logging) + dat += "
    Displaying all [source] logs of [key_name(M)]


    " + for(var/log_type in log_source) dat += "
    [log_type]

    " - var/list/reversed = M.logging[log_type] + var/list/reversed = log_source[log_type] if(islist(reversed)) reversed = reverseRange(reversed.Copy()) for(var/entry in reversed) dat += "[entry]: [reversed[entry]]
    " dat += "
    " else - dat += "
    [type] of [key_name(M)]

    " - var/list/reversed = M.logging[type] + dat += "
    [source] [type] of [key_name(M)]

    " + var/list/reversed = log_source[type] if(reversed) reversed = reverseRange(reversed.Copy()) for(var/entry in reversed) dat += "[entry]: [reversed[entry]]
    " - usr << browse(dat, "window=invidual_logging_[M];size=600x480") + usr << browse(dat, "window=invidual_logging_[key_name(M)];size=600x480") diff --git a/code/modules/client/player_details.dm b/code/modules/client/player_details.dm index a842607235..ecc113b89c 100644 --- a/code/modules/client/player_details.dm +++ b/code/modules/client/player_details.dm @@ -1,2 +1,3 @@ /datum/player_details - var/list/player_actions = list() \ No newline at end of file + var/list/player_actions = list() + var/list/logging = list(INDIVIDUAL_ATTACK_LOG, INDIVIDUAL_SAY_LOG, INDIVIDUAL_EMOTE_LOG, INDIVIDUAL_OOC_LOG) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e11a4fc886..5715a1fe87 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -79,7 +79,6 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/mob/body = loc if(ismob(body)) T = get_turf(body) //Where is the body located? - logging = body.logging //preserve our logs by copying them to our ghost gender = body.gender if(body.mind && body.mind.name) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 6dd8b73a4b..80af604d99 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -48,7 +48,4 @@ for(var/datum/action/A in client.player_details.player_actions) A.Grant(src) - if(!GLOB.individual_log_list[ckey]) - GLOB.individual_log_list[ckey] = logging - else - logging = GLOB.individual_log_list[ckey] + log_message("Client [key_name(src)] has taken ownership of mob [src]", INDIVIDUAL_OWNERSHIP_LOG) diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index aadb7e6d58..fbd29e86a5 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -1,4 +1,5 @@ /mob/Logout() + log_message("[key_name(src)] is no longer owning mob [src]", INDIVIDUAL_OWNERSHIP_LOG) SStgui.on_logout(src) unset_machine() GLOB.player_list -= src @@ -8,4 +9,4 @@ if(loc) loc.on_log(FALSE) - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c9ec43c387..97823c9c71 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -785,6 +785,7 @@ //This will update a mob's name, real_name, mind.name, GLOB.data_core records, pda, id and traitor text //Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn /mob/proc/fully_replace_character_name(oldname,newname) + log_message("[src] name changed from [oldname] to [newname]", INDIVIDUAL_OWNERSHIP_LOG) if(!newname) return 0 real_name = newname diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 8ef39f3b06..95d882cdbd 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -477,12 +477,18 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(!LAZYLEN(message) || !message_type) return + if(client) + if(!islist(client.player_details.logging[message_type])) + client.player_details.logging[message_type] = list() + if(!islist(logging[message_type])) logging[message_type] = list() var/list/timestamped_message = list("[LAZYLEN(logging[message_type]) + 1]\[[time_stamp()]\] [key_name(src)]" = message) logging[message_type] += timestamped_message + if(client) + client.player_details.logging[message_type] += timestamped_message /mob/proc/can_hear() . = TRUE diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index cf06f55e79..94d4d49ded 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -231,7 +231,6 @@ if(!new_mob) return new_mob.grant_language(/datum/language/common) - new_mob.logging = M.logging // Some forms can still wear some items for(var/obj/item/W in contents) From 717e635d28a1913cefc468285c0fbecfe4e056ab Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 6 Jun 2018 21:24:17 +0200 Subject: [PATCH 165/205] Fixes some holocall stuff (#38209) * Fixes some holocall stuff * Yep --- code/datums/holocall.dm | 19 +++++++++++++------ code/game/machinery/hologram.dm | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 12070f6fe2..ef4edbb6cf 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -60,14 +60,19 @@ user.remote_control = null if(!QDELETED(eye)) - qdel(eye) - eye = null + eye.RemoveImages() + QDEL_NULL(eye) + + if(connected_holopad && !QDELETED(hologram)) + hologram = null + connected_holopad.clear_holo(user) user = null - if(hologram) + //Hologram survived holopad destro + if(!QDELETED(hologram)) hologram.HC = null - hologram = null + QDEL_NULL(hologram) for(var/I in dialed_holopads) var/obj/machinery/holopad/H = I @@ -90,9 +95,10 @@ /datum/holocall/proc/Disconnect(obj/machinery/holopad/H) testing("Holocall disconnect") if(H == connected_holopad) - calling_holopad.say("[usr] disconnected.") + var/area/A = get_area(connected_holopad) + calling_holopad.say("[A] holopad disconnected.") else if(H == calling_holopad && connected_holopad) - connected_holopad.say("[usr] disconnected.") + connected_holopad.say("[user] disconnected.") ConnectionFailure(H, TRUE) @@ -154,6 +160,7 @@ eye.setLoc(H.loc) hangup = new(eye, src) + hangup.Grant(user) //Checks the validity of a holocall and qdels itself if it's not. Returns TRUE if valid, FALSE otherwise /datum/holocall/proc/Check() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 887335f16a..e5aef868fc 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -666,7 +666,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/effect/overlay/holo_pad_hologram/Destroy() Impersonation = null - if(HC) + if(!QDELETED(HC)) HC.Disconnect(HC.calling_holopad) return ..() From 26754811983afa6d32985dceb094d5db3b6567ff Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 6 Jun 2018 21:24:57 +0200 Subject: [PATCH 167/205] Fixes infrared emmiters partially. --- code/modules/assembly/infrared.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 4a6c9d2db3..5f24f10b4b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -33,6 +33,7 @@ /obj/item/assembly/infra/Destroy() STOP_PROCESSING(SSobj, src) + QDEL_NULL(listener) QDEL_LIST(beams) . = ..() @@ -166,7 +167,13 @@ listener = newloc.AddComponent(/datum/component/redirect, COMSIG_ATOM_EXITED, CALLBACK(src, .proc/check_exit)) /obj/item/assembly/infra/proc/check_exit(atom/movable/offender) +<<<<<<< HEAD if(offender && ((offender.flags_1 & ABSTRACT_1) || offender == src)) +======= + if(QDELETED(src)) + return + if(offender == src || istype(offender,/obj/effect/beam/i_beam)) +>>>>>>> 641a7d1... Fixes infrared emmiters partially. (#38301) return return refreshBeam() From afadb178d22438751f5e978ae082fbe2afebc7d1 Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Thu, 7 Jun 2018 00:48:13 +0200 Subject: [PATCH 168/205] Adds missing races to mob spawn list (#38314) * adds moths to mob species list * adds missing species --- code/modules/mob/living/carbon/human/human.dm | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 944e5774ad..9536102eda 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -916,6 +916,9 @@ /mob/living/carbon/human/species/corporate race = /datum/species/corporate +/mob/living/carbon/human/species/dullahan + race = /datum/species/dullahan + /mob/living/carbon/human/species/fly race = /datum/species/fly @@ -979,18 +982,36 @@ /mob/living/carbon/human/species/golem/plastic race = /datum/species/golem/plastic +/mob/living/carbon/human/species/golem/clockwork + race = /datum/species/golem/clockwork + +/mob/living/carbon/human/species/golem/clockwork/no_scrap + race = /datum/species/golem/clockwork/no_scrap + /mob/living/carbon/human/species/jelly race = /datum/species/jelly /mob/living/carbon/human/species/jelly/slime race = /datum/species/jelly/slime +/mob/living/carbon/human/species/jelly/stargazer + race = /datum/species/jelly/stargazer + +/mob/living/carbon/human/species/jelly/luminescent + race = /datum/species/jelly/luminescent + /mob/living/carbon/human/species/lizard race = /datum/species/lizard /mob/living/carbon/human/species/lizard/ashwalker race = /datum/species/lizard/ashwalker +/mob/living/carbon/human/species/moth + race = /datum/species/moth + +/mob/living/carbon/human/species/mush + race = /datum/species/mush + /mob/living/carbon/human/species/plasma race = /datum/species/plasmaman @@ -1000,6 +1021,9 @@ /mob/living/carbon/human/species/shadow race = /datum/species/shadow +/mob/living/carbon/human/species/shadow/nightmare + race = /datum/species/shadow/nightmare + /mob/living/carbon/human/species/skeleton race = /datum/species/skeleton @@ -1009,6 +1033,9 @@ /mob/living/carbon/human/species/synth/military race = /datum/species/synth/military +/mob/living/carbon/human/species/vampire + race = /datum/species/vampire + /mob/living/carbon/human/species/zombie race = /datum/species/zombie From 1fbf5af3606d8c2713df39db13f5b32916dc7068 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 6 Jun 2018 23:34:48 -0500 Subject: [PATCH 170/205] Automatic changelog generation for PR #7024 [ci skip] --- html/changelogs/AutoChangeLog-pr-7024.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7024.yml diff --git a/html/changelogs/AutoChangeLog-pr-7024.yml b/html/changelogs/AutoChangeLog-pr-7024.yml new file mode 100644 index 0000000000..133c0feb43 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7024.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - bugfix: "The Pubbystation maint bar Booze-O-Mat now shows its contents correctly." From c93213ff257623d07bafa5a92a0cd294cdf90b5c Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 7 Jun 2018 00:35:26 -0400 Subject: [PATCH 171/205] Update species.dm --- code/modules/mob/living/carbon/human/species.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 6cb1997459..9d32cab4a8 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1259,15 +1259,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(flight) . += ((health_deficiency-39) / 75) // CIT CHANGE - adds -39 to health deficiency penalty to make the transition to low health movement a little less jarring else -<<<<<<< HEAD . += ((health_deficiency-39) / 25) // CIT CHANGE - ditto -======= - . += (health_deficiency / 25) if(CONFIG_GET(flag/disable_human_mood)) var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80 if((hungry >= 70) && !flight) //Being hungry will still allow you to use a flightsuit/wings. . += hungry / 50 ->>>>>>> c06c3b7... Readds Hunger Slowdown (#38294) GET_COMPONENT_FROM(mood, /datum/component/mood, H) if(mood && !flight) //How can depression slow you down if you can just fly away from your problems? From 7c5217746fed0b19cb733e202f94aab1de80d377 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 7 Jun 2018 09:39:18 -0400 Subject: [PATCH 172/205] Merge pull request #38309 from kevinz000/patch-517 Vehiclecode is now far more responsive when their movespeed delays are changed after they move. --- code/datums/components/riding.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm index 4a720b6550..2ff322fd72 100644 --- a/code/datums/components/riding.dm +++ b/code/datums/components/riding.dm @@ -1,5 +1,5 @@ /datum/component/riding - var/next_vehicle_move = 0 //used for move delays + var/last_vehicle_move = 0 //used for move delays var/vehicle_move_delay = 2 //tick delay between movements, lower = faster, higher = slower var/keytype @@ -146,9 +146,9 @@ Unbuckle(user) return - if(world.time < next_vehicle_move) + if(world.time < last_vehicle_move + vehicle_move_delay) return - next_vehicle_move = world.time + vehicle_move_delay + last_vehicle_move = world.time if(keycheck(user)) var/turf/next = get_step(AM, direction) From 16d5991dd6c9d0201d3e013137ac47048a0d5f08 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 7 Jun 2018 09:40:30 -0400 Subject: [PATCH 174/205] Merge pull request #38308 from Cruix/multicamera_floor_plane Moved picture-in-picture objects down to the floor plane --- code/_onclick/hud/picture_in_picture.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index ce5f2c9884..aea87827a6 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -1,7 +1,7 @@ /obj/screen/movable/pic_in_pic name = "Picture-in-picture" screen_loc = "CENTER" - plane = GAME_PLANE + plane = FLOOR_PLANE var/atom/center var/width = 0 var/height = 0 From 674621a4ac7a7af68bede9fb3537a4e3f8f37505 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 7 Jun 2018 09:51:38 -0400 Subject: [PATCH 176/205] Merge pull request #38288 from Jalleo/Removes_Admin_detect Removes a defect concerning a simple tool in the admin toolset --- code/game/objects/items/devices/multitool.dm | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 063676ea62..a059c06284 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -142,20 +142,6 @@ detect_state = PROXIMITY_NEAR break -/obj/item/multitool/ai_detect/admin - desc = "Used for pulsing wires to test which to cut. Not recommended by doctors. Has a strange tag that says 'Grief in Safety'." //What else should I say for a meme item? - track_delay = 5 - -/obj/item/multitool/ai_detect/admin/multitool_detect() - var/turf/our_turf = get_turf(src) - for(var/mob/J in urange(rangewarning,our_turf)) - if(GLOB.admin_datums[J.ckey]) - detect_state = PROXIMITY_NEAR - var/turf/detect_turf = get_turf(J) - if(get_dist(our_turf, detect_turf) < rangealert) - detect_state = PROXIMITY_ON_SCREEN - break - /obj/item/multitool/cyborg name = "multitool" desc = "Optimised and stripped-down version of a regular multitool." From 458fb9f83d510549ddc0098b14cb34a1a29d584a Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Thu, 7 Jun 2018 15:07:05 -0700 Subject: [PATCH 178/205] Remove mobs from idle NPC pool on Destroy (#38333) * Remove mobs from idle NPC pool on Destroy * Combine simple_animal Destroy procs --- .../mob/living/simple_animal/simple_animal.dm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 61e7153434..dc917f4210 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -108,6 +108,15 @@ /mob/living/simple_animal/Destroy() GLOB.simple_animals[AIStatus] -= src + + if(nest) + nest.spawned_mobs -= src + nest = null + + var/turf/T = get_turf(src) + if (T && AIStatus == AI_Z_OFF) + SSidlenpcpool.idle_mobs_by_zlevel[T.z] -= src + return ..() /mob/living/simple_animal/updatehealth() @@ -424,16 +433,6 @@ if(changed) animate(src, transform = ntransform, time = 2, easing = EASE_IN|EASE_OUT) - - -/mob/living/simple_animal/Destroy() - if(nest) - nest.spawned_mobs -= src - nest = null - GLOB.simple_animals -= src - return ..() - - /mob/living/simple_animal/proc/sentience_act() //Called when a simple animal gains sentience via gold slime potion toggle_ai(AI_OFF) // To prevent any weirdness. From fa2cbe7fdcbb8fb62731e9a6f858dab1669122a1 Mon Sep 17 00:00:00 2001 From: Cw3040 Date: Thu, 7 Jun 2018 20:43:22 -0400 Subject: [PATCH 180/205] BoxStation Changes -Maintbar -Added Cryosleepers -Added KinkMate in Locker Room --- _maps/map_files/BoxStation/BoxStation.dmm | 831 +++++++++++++--------- 1 file changed, 482 insertions(+), 349 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index bd68296861..d0992de6c7 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -33,13 +33,6 @@ }, /turf/open/floor/plasteel/bar, /area/crew_quarters/bar) -"aad" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) "aae" = ( /obj/effect/landmark/carpspawn, /turf/open/space, @@ -11096,21 +11089,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "aCd" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm1"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, +/obj/machinery/cryopod, /turf/open/floor/carpet, /area/crew_quarters/dorms) "aCe" = ( @@ -11730,7 +11709,7 @@ "aDK" = ( /obj/machinery/door/airlock{ id_tag = "Dorm1"; - name = "Dorm 1" + name = "Cryogenics" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -16696,10 +16675,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQX" = ( -/obj/machinery/firealarm{ - dir = 2; - pixel_y = 24 - }, +/obj/machinery/vending/kink, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQY" = ( @@ -21100,10 +21076,6 @@ }, /turf/closed/wall, /area/quartermaster/warehouse) -"bcU" = ( -/obj/item/stack/tile/plasteel, -/turf/open/space, -/area/space/nearstation) "bcV" = ( /obj/machinery/airalarm{ dir = 8; @@ -21494,10 +21466,6 @@ /obj/structure/closet/crate/medical, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) -"bdV" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/airless, -/area/space/nearstation) "bdW" = ( /obj/item/clothing/gloves/color/rainbow, /obj/item/clothing/head/soft/rainbow, @@ -34912,10 +34880,6 @@ }, /turf/open/floor/plasteel, /area/science/misc_lab) -"bJP" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/plasteel/bar, -/area/maintenance/port/aft) "bJQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -37457,34 +37421,8 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) -"bPR" = ( -/obj/effect/decal/cleanable/robot_debris/old, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bPS" = ( -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bPT" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/port/aft) "bPU" = ( -/obj/item/shard, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maint Bar Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPW" = ( -/obj/effect/decal/cleanable/oil, +/obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, /area/maintenance/port/aft) "bPX" = ( @@ -37898,27 +37836,6 @@ /obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plasteel/white, /area/science/circuit) -"bRc" = ( -/obj/structure/table/wood, -/obj/item/soap/nanotrasen, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/port/aft) -"bRe" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bRf" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/port/aft) "bRg" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -38386,18 +38303,6 @@ icon_state = "platingdmg3" }, /area/maintenance/starboard/aft) -"bSn" = ( -/obj/machinery/space_heater, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bSo" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bSp" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/port/aft) "bSq" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen, @@ -38421,11 +38326,12 @@ /turf/open/floor/plasteel, /area/tcommsat/computer) "bSu" = ( -/obj/item/stack/cable_coil{ - amount = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "bSv" = ( /obj/machinery/camera{ c_tag = "Construction Area"; @@ -38876,54 +38782,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"bTs" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/port/aft) -"bTt" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/port/aft) -"bTu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"bTv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTw" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTy" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "bTz" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -40474,6 +40332,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/circuit) +"bXu" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/wood, +/area/maintenance/bar) "bXv" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -41569,11 +41432,9 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "car" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall, -/area/maintenance/port/aft) +/area/maintenance/bar) "cas" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -42097,16 +41958,13 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cbw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plating, /area/maintenance/port/aft) "cbx" = ( @@ -45097,10 +44955,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"cjn" = ( -/obj/item/weldingtool, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cjo" = ( /obj/structure/closet/toolcloset, /turf/open/floor/plasteel, @@ -51054,10 +50908,6 @@ /obj/item/clothing/under/burial, /turf/open/floor/plasteel/grimy, /area/chapel/office) -"cCa" = ( -/obj/item/clothing/head/hardhat, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cCb" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -52888,6 +52738,13 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"cQh" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/carpet, +/area/maintenance/fore/secondary) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -53304,6 +53161,13 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"dir" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -53314,12 +53178,33 @@ }, /turf/closed/wall, /area/science/circuit) +"dxy" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) +"dMc" = ( +/obj/item/restraints/legcuffs, +/obj/item/restraints/handcuffs/fake, +/obj/structure/bed/dogbed, +/turf/open/floor/plating, +/area/maintenance/bar) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel/white, /area/science/circuit) +"dOb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "eaI" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ @@ -53327,6 +53212,21 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"ekq" = ( +/obj/structure/reagent_dispensers/keg/aphro/strong, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/bar) +"elP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) +"exQ" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/syndicate, +/turf/open/floor/wood, +/area/maintenance/bar) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -53341,6 +53241,12 @@ }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) +"eMI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "eRz" = ( /obj/structure/lattice, /obj/structure/grille, @@ -53392,6 +53298,11 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) +"fVx" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) "gbq" = ( /obj/structure/cable{ icon_state = "4-8" @@ -53407,6 +53318,10 @@ "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) +"gpI" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/maintenance/bar) "gsz" = ( /obj/machinery/camera{ c_tag = "Fitness Room South"; @@ -53467,6 +53382,20 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"hhg" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"hrK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/bar) +"hPN" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, +/area/maintenance/bar) "hRa" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -53479,6 +53408,15 @@ /obj/item/stock_parts/cell/super, /turf/open/floor/plasteel/white, /area/science/circuit) +"iek" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) +"igN" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/wood, +/area/maintenance/bar) "ijc" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, @@ -53510,6 +53448,20 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) +"iPG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"iRq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/bar) +"iZC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/bar) "jbf" = ( /obj/structure/cable{ icon_state = "0-2" @@ -53522,6 +53474,15 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) +"jbX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -53551,6 +53512,12 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) +"jCg" = ( +/obj/machinery/computer/cryopod{ + step_y = 31 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "jCq" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -53609,6 +53576,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"kfy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) "khb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 @@ -53652,10 +53625,19 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) +"kLN" = ( +/turf/open/floor/wood, +/area/maintenance/bar) "kOw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/science/mixing) +"kOA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "kPd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -53682,6 +53664,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"lnu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/wood, +/area/maintenance/bar) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -53692,14 +53679,28 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"lMz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/bar) "lQG" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/science/circuit) +"lUN" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "mjr" = ( /obj/machinery/vending/wardrobe/bar_wardrobe, /turf/open/floor/wood, /area/crew_quarters/bar) +"mrv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/bar) "mBv" = ( /obj/structure/cable{ icon_state = "1-2" @@ -53723,6 +53724,16 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"mUU" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) +"nga" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "noK" = ( /obj/structure/girder, /turf/open/floor/plasteel/dark, @@ -53742,6 +53753,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) +"nzS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/games, +/turf/open/floor/wood, +/area/maintenance/bar) "nGt" = ( /obj/structure/cable{ icon_state = "1-2" @@ -53765,6 +53781,24 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"ojF" = ( +/turf/closed/wall, +/area/maintenance/bar) +"osd" = ( +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/obj/item/assembly/signaler, +/turf/open/floor/plating, +/area/maintenance/bar) +"oui" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"oxF" = ( +/obj/effect/spawner/lootdrop/costume, +/obj/item/electropack/shockcollar, +/turf/open/floor/plating, +/area/maintenance/bar) "oDF" = ( /obj/machinery/light, /turf/open/floor/plating, @@ -53782,6 +53816,10 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) +"pmB" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plating, +/area/maintenance/bar) "pHl" = ( /obj/structure/table, /obj/item/storage/box/beakers{ @@ -53821,6 +53859,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) +"pSl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/wood, +/area/maintenance/bar) +"qcu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) "qeQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -53860,6 +53908,16 @@ }, /turf/open/floor/plating, /area/construction) +"rWn" = ( +/obj/structure/table/wood, +/obj/item/weaponcrafting/receiver, +/turf/open/floor/wood, +/area/maintenance/bar) +"rYr" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) "saK" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -53872,6 +53930,10 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) +"saV" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/maintenance/bar) "slk" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -53890,6 +53952,14 @@ /obj/item/shovel/spade, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) +"sDt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"sKd" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "sLv" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -53905,6 +53975,9 @@ /obj/machinery/door/airlock/maintenance/abandoned, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"sPt" = ( +/turf/open/floor/carpet, +/area/maintenance/fore/secondary) "sSW" = ( /obj/structure/chair/office/light, /turf/open/floor/plasteel/white, @@ -53938,6 +54011,12 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"tsS" = ( +/obj/machinery/door/airlock/wood{ + name = "Maintenance Bar" + }, +/turf/open/floor/wood, +/area/maintenance/bar) "tMl" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/showroomfloor, @@ -54023,6 +54102,10 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) +"vfL" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/port/aft) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -54047,6 +54130,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) +"vPp" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -54054,6 +54141,15 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) +"vWe" = ( +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/anesthetic, +/turf/open/floor/plating, +/area/maintenance/bar) +"wiz" = ( +/obj/item/weaponcrafting/stock, +/turf/open/floor/wood, +/area/maintenance/bar) "wkN" = ( /turf/closed/wall, /area/science/circuit) @@ -54100,11 +54196,28 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"wME" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/bar) +"wOC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) +"wZJ" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54125,6 +54238,16 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) +"xjx" = ( +/obj/machinery/cryopod, +/turf/open/floor/carpet, +/area/maintenance/fore/secondary) +"xuS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -54136,12 +54259,22 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"xZw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) "ycu" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plasteel, /area/science/circuit) +"yeD" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/maintenance/bar) (1,1,1) = {" aaa @@ -72804,8 +72937,8 @@ aaa aaf aaf aaf -aaa -aaa +gXs +gXs aag aaa bVx @@ -73060,11 +73193,11 @@ aaa aaa aaa aaa -bCq -bCq -bCq -bLv -bCq +aaa +aaa +aaa +vPp +aaa aoV cbj aoV @@ -73317,11 +73450,11 @@ aaa aaa aaa aaa -bCq -bJP -bCq -bSn -bCq +aaa +aaa +aaa +vPp +aaa bCq cbj bLv @@ -73574,11 +73707,11 @@ aaa aaa aaa aaa -bCq -bPS -aad -bPS -bPS +aaa +aaa +aaa +vPp +aaa bCq cbk bLv @@ -73793,7 +73926,7 @@ aLJ aLE aOl aPA -aQW +aQN aQW aTD aQW @@ -73831,11 +73964,11 @@ aaa aaa aaa aaa -bLv -bPR -bRc -bSo -bTs +aaa +aaa +aaa +vPp +aaa bCq bVy bLv @@ -74088,11 +74221,11 @@ aaa aaa aaa aaa -bCq -bPS -bRf -bSo -bTu +aaa +aaa +aaa +vPp +aaa bCq bVB bHE @@ -74345,11 +74478,11 @@ aaa aaa aaa aaa -bLv -bPT -bRe -bSo -bTt +aaa +aaa +aaa +vPp +aaa bCq bVA bWw @@ -74603,10 +74736,10 @@ aaa aaa aaa bCq -bPV bCq bCq -bTw +bCq +bCq bCq bVD bWy @@ -74862,8 +74995,8 @@ aoV bCq bPU bHE -bSp -bTv +bPU +bPU bCq bVC bWx @@ -75117,10 +75250,10 @@ bGi aoV aoV bCq -bPW +bCq +vfL bCq bCq -bTy bCq bVF bWA @@ -75376,8 +75509,8 @@ aoV bCq bHE bHE -bSq -bTx +bHE +bHE bCq bVE bWz @@ -75640,14 +75773,14 @@ bCq bCq bCq bYy -bCq -bCq -bLv -bCq -bCq -bCq -bCq -bLv +ojF +ojF +mrv +ojF +ojF +ojF +ojF +ojF bUs bLv aaa @@ -75897,14 +76030,14 @@ bVG bHE bHE bHE -bLv -aaf -aoV -aoV -aoV -aoV -aoV -bLv +tsS +rYr +kLN +kLN +fVx +iek +iek +ojF bUs bLv aaa @@ -76150,18 +76283,18 @@ bHE bHE bCq bHE -bLv -bLv -bLv -bLv -bLv -aoV -aoV -aoV -aoV -aoV -aaf -bLv +ojF +ojF +ojF +ojF +ojF +kLN +oui +kLN +iek +exQ +bXu +ojF bUs bLv aaf @@ -76407,18 +76540,18 @@ bHE bHE cTF bHE -bLv -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aoV -aoV -bLv +ojF +pmB +oxF +dMc +ojF +kLN +kLN +kLN +iek +yeD +dxy +ojF bUs bLv aaa @@ -76664,18 +76797,18 @@ bHE bSs bCq bHE -bLv -aoV -aoV -aoV -bcU -aaf -aaH -cCa -aoV -aoV -aoV -bLv +ojF +ekq +osd +vWe +ojF +iek +iek +oui +kOA +iek +iek +ojF bUs bLv aaa @@ -76921,18 +77054,18 @@ bRh bLu bCq bHE -bLv -aaf -aaf -aoV -aoV -aaH -bdV -aaH -aaf -aaf -aaf -bLv +ojF +ojF +mUU +ojF +ojF +sKd +sKd +iek +xuS +kLN +kLN +ojF bUs bLv aaf @@ -77178,19 +77311,19 @@ bCq bCq bCq bHE -bLv -aoV -aoV -aoV -aoV -cjn +ojF +hPN +kLN +oui +igN +kLN bSu -aaH -aoV -aoV -aoV -bLv -bUs +elP +jbX +qcu +lMz +iZC +wOC bLv aaa cjJ @@ -77435,19 +77568,19 @@ bLv aaa bLv bHE -bLv -aoV -aoV -aoV -aoV -aoV -aaH -aaf -aoV -aoV -aoV -bLv -bUs +ojF +rWn +iPG +sDt +pSl +kfy +dOb +xZw +nga +sDt +nzS +hrK +bUz bLv aaa cjJ @@ -77692,19 +77825,19 @@ bLv aaf bLv bUt -bLv -aaf -aaf -aoV -aoV -aoV -aaH -aoV -aoV -aaf -aaf -bLv -bUs +ojF +lnu +eMI +rYr +gpI +kLN +sKd +iek +kLN +fVx +saV +wME +bUz bLv aaf cjJ @@ -77949,19 +78082,19 @@ bCq aaa bLv bUs -bLv -aoV -aoV -aoV -aoV -aoV -aaf -aoV -aoV -aoV -aoV -bCq -bUs +ojF +wiz +oui +kLN +lUN +kLN +kLN +kLN +kLN +kLN +wZJ +wME +bUz bCq aaa aaf @@ -78206,19 +78339,19 @@ aaa aaa bTB bUv -bES -bES -bES -bES -bGp -bGp -bGp -bGp -bES -bES -bES +iRq +iRq +iRq +iRq +iRq +iRq +iRq +iRq +iRq +iRq +iRq car -bUs +bUz bCq bCq bCq @@ -84065,7 +84198,7 @@ arf arf arf arf -anF +aoa ahn aJn aJn @@ -84319,10 +84452,10 @@ arf aqa atf arf -aqa -atf -arf -anF +dir +dir +dir +cQh ahn aaa aJn @@ -84576,10 +84709,10 @@ arf apY ath arf -apY -ate -arf -anF +jCg +ath +hhg +sPt ahn aaa aJn @@ -84835,8 +84968,8 @@ ath arf aCd ath -arf -anF +aCd +xjx ahn aJw aJw @@ -85093,7 +85226,7 @@ arf asd aDK arf -aoa +ahn ahn aJv aKG From b833a88204991969f4fadc2c216d51af2716e218 Mon Sep 17 00:00:00 2001 From: Cw3040 Date: Thu, 7 Jun 2018 20:44:02 -0400 Subject: [PATCH 181/205] MetaStation Changes Added Cryosleepers and KinkMates --- _maps/map_files/MetaStation/MetaStation.dmm | 130 +++++++++----------- 1 file changed, 56 insertions(+), 74 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 71f23231b9..a3d43f4113 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -902,6 +902,7 @@ dir = 8; pixel_x = 24 }, +/obj/machinery/cryopod, /turf/open/floor/plasteel/floorgrime, /area/security/prison) "acy" = ( @@ -3638,25 +3639,6 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) -"ahU" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/table, -/obj/item/stock_parts/manipulator, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"ahV" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "ahW" = ( /obj/structure/window/reinforced{ dir = 1 @@ -4073,22 +4055,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"aiP" = ( -/obj/structure/table, -/obj/item/folder, -/turf/open/floor/plating, -/area/maintenance/fore) -"aiQ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "aiR" = ( /obj/structure/table, /obj/item/clothing/under/sl_suit{ @@ -4492,7 +4458,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, /area/crew_quarters/fitness/recreation) "ajS" = ( /obj/structure/table, @@ -5137,10 +5105,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"alf" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness/recreation) "alg" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -5844,10 +5808,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"amv" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/fitness/recreation) "amw" = ( /obj/structure/window/reinforced, /obj/machinery/door/window/eastright{ @@ -7795,9 +7755,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "aqR" = ( -/obj/structure/chair{ - dir = 8 - }, +/obj/machinery/vending/kink, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -21761,7 +21719,7 @@ /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) "aUR" = ( -/obj/structure/closet/wardrobe/green, +/obj/machinery/vending/kink, /turf/open/floor/plasteel/vault, /area/crew_quarters/locker) "aUS" = ( @@ -25567,7 +25525,7 @@ }, /area/security/checkpoint/engineering) "bcO" = ( -/obj/structure/easel, +/obj/machinery/vending/kink, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -58038,10 +57996,7 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "cto" = ( -/obj/machinery/vending/assist, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, +/obj/machinery/vending/kink, /turf/open/floor/plating, /area/maintenance/port/aft) "ctq" = ( @@ -73591,19 +73546,12 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "dhp" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 }, -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "dhq" = ( /obj/structure/table/reinforced, @@ -76193,6 +76141,10 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"jiR" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall, +/area/security/prison) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76487,6 +76439,13 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"ocn" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) "ocT" = ( /obj/machinery/light{ dir = 1 @@ -76756,6 +76715,13 @@ /obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plasteel/white, /area/science/circuit) +"tnQ" = ( +/obj/machinery/computer/cryopod{ + step_y = 9; + tag = "0" + }, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) "tsx" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76771,6 +76737,13 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"txv" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/fitness/recreation) "tDM" = ( /obj/machinery/door/airlock/engineering/glass/critical{ heat_proof = 1; @@ -76788,6 +76761,15 @@ }, /turf/open/floor/plasteel/dark, /area/medical/morgue) +"tTL" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -101766,7 +101748,7 @@ aax aax aax aax -abe +jiR abe abe abe @@ -111540,8 +111522,8 @@ acQ afs agr acP -ahU -aiP +acP +acP acP acP acP @@ -111797,12 +111779,12 @@ acP acP ags acP -acP -acP -acP -alf -amv -acP +txv +ocn +ocn +ocn +ocn +tnQ aoS acP arB @@ -112053,9 +112035,9 @@ aaa acQ aft agt +tTL +ahf ahf -ahV -aiQ dhp alg alg @@ -112314,7 +112296,7 @@ ahg ahg ahg ajR -ahg +ahl ahg anG aoU From 45ec368d766ad3aa30d376059d8687c48690ac7d Mon Sep 17 00:00:00 2001 From: Cw3040 Date: Thu, 7 Jun 2018 20:53:15 -0400 Subject: [PATCH 182/205] Pubby Changes -Added Cryogenics -Kinkmates, of course. -Keg in maint bar --- _maps/map_files/PubbyStation/PubbyStation.dmm | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index ea03478492..01ceb61132 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -7813,6 +7813,11 @@ dir = 4; pixel_x = 28 }, +/obj/machinery/computer/cryopod{ + tag = "0"; + step_y = 31 + }, +/obj/machinery/cryopod, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "avm" = ( @@ -10447,7 +10452,7 @@ /turf/open/floor/plasteel/arrival, /area/crew_quarters/fitness/recreation) "aBV" = ( -/obj/structure/closet/wardrobe/green, +/obj/machinery/vending/kink, /turf/open/floor/plasteel/arrival, /area/crew_quarters/fitness/recreation) "aBW" = ( @@ -11037,6 +11042,7 @@ /turf/open/floor/plasteel/white/side, /area/crew_quarters/dorms) "aDk" = ( +/obj/machinery/cryopod, /turf/open/floor/plasteel/white/corner{ icon_state = "whitecorner"; dir = 8 @@ -48334,6 +48340,11 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) +"fVZ" = ( +/obj/structure/lattice, +/obj/structure/reagent_dispensers/keg/aphro/strong, +/turf/open/space, +/area/space/nearstation) "fWv" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/plasteel/dark, @@ -52444,7 +52455,7 @@ /turf/open/floor/plating, /area/engine/engineering) "sbk" = ( -/obj/structure/girder, +/obj/machinery/vending/kink, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "sbY" = ( @@ -53835,6 +53846,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) +"wBX" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) "wDm" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -88674,7 +88689,7 @@ aaa aaa aaa aby -abI +fVZ abO abX acg @@ -91537,7 +91552,7 @@ cBo alQ alb cBw -alb +wBX aiS aiS aiS From 7e89cb37a6686c5e9d8a53ef5712848c2e9dd0ec Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Thu, 7 Jun 2018 17:53:42 -0700 Subject: [PATCH 183/205] Fixes Lisa's description (#38320) --- code/modules/mob/living/simple_animal/friendly/dog.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 90532829df..51698d1ddb 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -558,7 +558,7 @@ name = "Lisa" real_name = "Lisa" gender = FEMALE - desc = "It's a corgi with a cute pink bow." + desc = "She's tearing you apart." gold_core_spawnable = NO_SPAWN unique_pet = TRUE icon_state = "lisa" From cf8436cf6d6793d0cd68f3b19b7b9365c71fe1d0 Mon Sep 17 00:00:00 2001 From: Kraseo Date: Fri, 8 Jun 2018 03:00:17 +0200 Subject: [PATCH 185/205] a slippery slope into h*ck (#38303) --- code/modules/clothing/under/miscellaneous.dm | 32 +++++++++++++++++++ icons/mob/uniform.dmi | Bin 234446 -> 235174 bytes icons/obj/clothing/uniforms.dmi | Bin 62772 -> 64078 bytes 3 files changed, 32 insertions(+) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 8c85f414e6..0832104195 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -732,3 +732,35 @@ fitted = NO_FEMALE_UNIFORM can_adjust = FALSE resistance_flags = NONE + +/obj/item/clothing/under/swimsuit + name = "black swimsuit" + desc = "Perfect for the beach episode." + icon_state = "swim_black" + item_state = "bl_suit" + item_color = "swim_black" + can_adjust = FALSE + +/obj/item/clothing/under/swimsuit/blue + name = "blue swimsuit" + icon_state = "swim_blue" + item_state = "b_suit" + item_color = "swim_blue" + +/obj/item/clothing/under/swimsuit/green + name = "green swimsuit" + icon_state = "swim_green" + item_state = "g_suit" + item_color = "swim_green" + +/obj/item/clothing/under/swimsuit/purple + name = "purple swimsuit" + icon_state = "swim_purple" + item_state = "p_suit" + item_color = "swim_purple" + +/obj/item/clothing/under/swimsuit/red + name = "red swimsuit" + icon_state = "swim_red" + item_state = "r_suit" + item_color = "swim_red" \ No newline at end of file diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 23541a8e4016dbcf7b6d8c29e22839ab1a56fe14..c83a82b1bd8bc476104317f16aea50bd6589db11 100644 GIT binary patch literal 235174 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

    oQw=oRAL<2i* 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�w1Y{Z;x;e=FG1dv({t2kMajeRUu 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

    tIn-s1OL_ibnl!F99%)g4`RU6zmu04^4 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¥Rxx&adgjtjoC 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 diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index c6f679807656b23cd2d206b27af8ec2da4544717..38d97e0440b41a7bde43b7e5564fb7eeb46a0324 100644 GIT binary patch literal 64078 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«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 U#eVkYHVF88Bda1)DrFq_A2KlUS^xk5 literal 62772 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
  • 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

    =GsaG#%z%dr$2-xY|FT>*b(aWGae!vX+i?1ve$ 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 Date: Thu, 7 Jun 2018 18:06:27 -0700 Subject: [PATCH 187/205] Fix pAI suicide while in holoform deleting the card (#38279) --- code/game/objects/items/devices/paicard.dm | 10 +++------- code/modules/mob/living/silicon/pai/death.dm | 2 -- code/modules/mob/living/silicon/pai/pai.dm | 5 +++++ code/modules/mob/living/silicon/pai/pai_shell.dm | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index bc24e4bf83..737f71a978 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -22,7 +22,8 @@ /obj/item/paicard/Destroy() //Will stop people throwing friend pAIs into the singularity so they can respawn SSpai.pai_card_list -= src - QDEL_NULL(pai) + if (!QDELETED(pai)) + QDEL_NULL(pai) return ..() /obj/item/paicard/attack_self(mob/user) @@ -90,7 +91,7 @@ to_chat(pai, "Byte by byte you lose your sense of self.") to_chat(pai, "Your mental faculties leave you.") to_chat(pai, "oblivion... ") - removePersonality() + qdel(pai) if(href_list["wires"]) var/wire = text2num(href_list["wires"]) if(pai.radio) @@ -122,11 +123,6 @@ playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) audible_message("\The [src] plays a cheerful startup noise!") -/obj/item/paicard/proc/removePersonality() - QDEL_NULL(pai) - cut_overlays() - add_overlay("pai-off") - /obj/item/paicard/proc/setEmotion(emotion) if(pai) src.cut_overlays() diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index a75089ed68..f558ff3907 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -3,8 +3,6 @@ return stat = DEAD canmove = 0 - card.removePersonality() - card.forceMove(loc) update_sight() clear_fullscreens() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 29ae671d03..0135fca88e 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -90,6 +90,11 @@ return FALSE /mob/living/silicon/pai/Destroy() + if (loc != card) + card.forceMove(drop_location()) + card.pai = null + card.cut_overlays() + card.add_overlay("pai-off") GLOB.pai_list -= src return ..() diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index ce2605e2cf..41bd62ea16 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -57,7 +57,7 @@ if(client) client.perspective = EYE_PERSPECTIVE client.eye = card - var/turf/T = get_turf(src) + var/turf/T = drop_location() card.forceMove(T) forceMove(card) canmove = FALSE From d5e30012610267c9623609b34061e39bac533ab2 Mon Sep 17 00:00:00 2001 From: Cw3040 Date: Thu, 7 Jun 2018 21:14:21 -0400 Subject: [PATCH 189/205] Changes This should fix Travis's issue. --- _maps/map_files/BoxStation/BoxStation.dmm | 798 +++++++++--------- _maps/map_files/MetaStation/MetaStation.dmm | 81 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 32 +- 3 files changed, 446 insertions(+), 465 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index d0992de6c7..1290ddf469 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -40332,11 +40332,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/science/circuit) -"bXu" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/lootdrop/gambling, -/turf/open/floor/wood, -/area/maintenance/bar) "bXv" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -52738,13 +52733,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cQh" = ( -/obj/machinery/cryopod{ - dir = 4; - tag = "0" - }, -/turf/open/floor/carpet, -/area/maintenance/fore/secondary) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -53161,50 +53149,35 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dir" = ( -/obj/machinery/cryopod{ - dir = 4; - tag = "0" +"dkC" = ( +/obj/machinery/door/airlock/wood{ + name = "Maintenance Bar" }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/wood, +/area/maintenance/bar) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"dqT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port/aft) "dvO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall, /area/science/circuit) -"dxy" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/lootdrop/gambling, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) -"dMc" = ( -/obj/item/restraints/legcuffs, -/obj/item/restraints/handcuffs/fake, -/obj/structure/bed/dogbed, -/turf/open/floor/plating, -/area/maintenance/bar) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel/white, /area/science/circuit) -"dOb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) "eaI" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ @@ -53212,21 +53185,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"ekq" = ( -/obj/structure/reagent_dispensers/keg/aphro/strong, -/obj/item/reagent_containers/glass/beaker, -/turf/open/floor/plating, -/area/maintenance/bar) -"elP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/bar) -"exQ" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck/syndicate, -/turf/open/floor/wood, -/area/maintenance/bar) "eyM" = ( /obj/machinery/mineral/ore_redemption{ input_dir = 2; @@ -53235,16 +53193,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"ezO" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "eHI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) -"eMI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, +"eKN" = ( +/obj/machinery/vending/clothing, /turf/open/floor/wood, /area/maintenance/bar) "eRz" = ( @@ -53262,6 +53222,12 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"eYI" = ( +/obj/item/restraints/legcuffs, +/obj/item/restraints/handcuffs/fake, +/obj/structure/bed/dogbed, +/turf/open/floor/plating, +/area/maintenance/bar) "fcG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -53298,10 +53264,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) -"fVx" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, +"fWI" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, /area/maintenance/bar) "gbq" = ( /obj/structure/cable{ @@ -53318,10 +53284,6 @@ "gjl" = ( /turf/closed/wall, /area/quartermaster/warehouse) -"gpI" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/wood, -/area/maintenance/bar) "gsz" = ( /obj/machinery/camera{ c_tag = "Fitness Room South"; @@ -53338,6 +53300,9 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"gxS" = ( +/turf/open/floor/wood, +/area/maintenance/bar) "gLH" = ( /obj/machinery/door/airlock/external{ name = "External Access"; @@ -53348,6 +53313,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"gRV" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/maintenance/bar) "gWd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -53382,20 +53351,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"hhg" = ( -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"hrK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/bar) -"hPN" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/shaker, -/turf/open/floor/wood, -/area/maintenance/bar) "hRa" = ( /obj/structure/table/reinforced, /obj/machinery/light{ @@ -53408,13 +53363,10 @@ /obj/item/stock_parts/cell/super, /turf/open/floor/plasteel/white, /area/science/circuit) -"iek" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/bar) -"igN" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, +"idZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/wood, /area/maintenance/bar) "ijc" = ( @@ -53431,6 +53383,11 @@ /obj/item/pen, /turf/open/floor/plasteel/white, /area/science/circuit) +"iEy" = ( +/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, +/obj/item/assembly/signaler, +/turf/open/floor/plating, +/area/maintenance/bar) "iEJ" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One" @@ -53440,6 +53397,10 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) +"iGw" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) "iNn" = ( /obj/machinery/camera{ c_tag = "Kitchen Cold Room" @@ -53448,20 +53409,6 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) -"iPG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"iRq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/bar) -"iZC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/bar) "jbf" = ( /obj/structure/cable{ icon_state = "0-2" @@ -53474,15 +53421,6 @@ }, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"jbX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/bar) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -53508,16 +53446,14 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"jtl" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "jAD" = ( /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) -"jCg" = ( -/obj/machinery/computer/cryopod{ - step_y = 31 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) "jCq" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -53576,11 +53512,11 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"kfy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" +"kds" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/turf/open/floor/wood, /area/maintenance/bar) "khb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -53611,6 +53547,11 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) +"knR" = ( +/obj/structure/table/wood, +/obj/item/weaponcrafting/receiver, +/turf/open/floor/wood, +/area/maintenance/bar) "kob" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -53625,19 +53566,10 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) -"kLN" = ( -/turf/open/floor/wood, -/area/maintenance/bar) "kOw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/science/mixing) -"kOA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "kPd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -53664,11 +53596,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) -"lnu" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/wood, -/area/maintenance/bar) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -53679,27 +53606,17 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"lMz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/maintenance/bar) "lQG" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/science/circuit) -"lUN" = ( -/obj/structure/mineral_door/wood, -/turf/open/floor/wood, -/area/maintenance/bar) "mjr" = ( /obj/machinery/vending/wardrobe/bar_wardrobe, /turf/open/floor/wood, /area/crew_quarters/bar) -"mrv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +"mtJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, /area/maintenance/bar) "mBv" = ( /obj/structure/cable{ @@ -53724,20 +53641,15 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"mUU" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/bar) -"nga" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "noK" = ( /obj/structure/girder, /turf/open/floor/plasteel/dark, /area/engine/engineering) +"nwX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/games, +/turf/open/floor/wood, +/area/maintenance/bar) "nxv" = ( /obj/machinery/power/apc{ name = "Construction Area APC"; @@ -53753,10 +53665,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/engine/engineering) -"nzS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/vending/games, -/turf/open/floor/wood, +"nEe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, /area/maintenance/bar) "nGt" = ( /obj/structure/cable{ @@ -53769,6 +53682,15 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"nKB" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/wood, +/area/maintenance/bar) +"nRn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) "nRG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -53781,23 +53703,24 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"ojF" = ( -/turf/closed/wall, -/area/maintenance/bar) -"osd" = ( -/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears, -/obj/item/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) -"oui" = ( +"ooS" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/gambling, /turf/open/floor/wood{ - icon_state = "wood-broken7" + icon_state = "wood-broken" }, /area/maintenance/bar) -"oxF" = ( -/obj/effect/spawner/lootdrop/costume, -/obj/item/electropack/shockcollar, -/turf/open/floor/plating, +"oqQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/wood, +/area/maintenance/bar) +"ouu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/wood, /area/maintenance/bar) "oDF" = ( /obj/machinery/light, @@ -53809,6 +53732,12 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"oPA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) "oUh" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -53816,9 +53745,9 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) -"pmB" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating, +"pDq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, /area/maintenance/bar) "pHl" = ( /obj/structure/table, @@ -53859,15 +53788,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/science/misc_lab) -"pSl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, +"qbA" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/syndicate, /turf/open/floor/wood, /area/maintenance/bar) -"qcu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, +"qdB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, /area/maintenance/bar) "qeQ" = ( /obj/effect/turf_decal/stripes/line{ @@ -53875,6 +53805,11 @@ }, /turf/open/floor/plasteel, /area/science/circuit) +"qit" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) "qpv" = ( /obj/machinery/light{ dir = 4 @@ -53887,37 +53822,58 @@ /obj/structure/grille/broken, /turf/open/space/basic, /area/space/nearstation) +"qBv" = ( +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/anesthetic, +/turf/open/floor/plating, +/area/maintenance/bar) +"qBQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) +"qKd" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"qSC" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/maintenance/bar) "rcD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, /area/science/circuit) +"ref" = ( +/turf/closed/wall, +/area/maintenance/bar) "rfW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/floorgrime, /area/maintenance/disposal/incinerator) +"rgN" = ( +/obj/structure/reagent_dispensers/keg/aphro/strong, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/bar) "rmX" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/beer, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"rrl" = ( +/obj/effect/spawner/lootdrop/costume, +/obj/item/electropack/shockcollar, +/turf/open/floor/plating, +/area/maintenance/bar) "rKP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plating, /area/construction) -"rWn" = ( -/obj/structure/table/wood, -/obj/item/weaponcrafting/receiver, -/turf/open/floor/wood, -/area/maintenance/bar) -"rYr" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) "saK" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -53930,10 +53886,16 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel/white, /area/science/circuit) -"saV" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, -/area/maintenance/bar) +"shL" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"sjc" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) "slk" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -53946,20 +53908,21 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) +"stg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/bar) "sxs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, /obj/item/shovel/spade, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"sDt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/maintenance/bar) -"sKd" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) "sLv" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance, @@ -53975,9 +53938,6 @@ /obj/machinery/door/airlock/maintenance/abandoned, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"sPt" = ( -/turf/open/floor/carpet, -/area/maintenance/fore/secondary) "sSW" = ( /obj/structure/chair/office/light, /turf/open/floor/plasteel/white, @@ -54005,22 +53965,36 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/hallway/secondary/service) +"tmK" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"tqe" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/wood, +/area/maintenance/bar) "trb" = ( /obj/machinery/light{ dir = 4 }, /turf/open/floor/plasteel, /area/security/courtroom) -"tsS" = ( -/obj/machinery/door/airlock/wood{ - name = "Maintenance Bar" +"tEz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/turf/open/floor/wood, /area/maintenance/bar) "tMl" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) +"tOc" = ( +/obj/item/weaponcrafting/stock, +/turf/open/floor/wood, +/area/maintenance/bar) "tOq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -54060,6 +54034,15 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"uAK" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"uBG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/bar) "uNu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54102,10 +54085,12 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) -"vfL" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/port/aft) +"vhC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/bar) "vxh" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -54130,10 +54115,22 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, /area/science/circuit) -"vPp" = ( -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space/nearstation) +"vJu" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/maintenance/bar) +"vJW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"vNv" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) "vPE" = ( /obj/machinery/light{ dir = 4 @@ -54141,13 +54138,8 @@ /obj/machinery/libraryscanner, /turf/open/floor/plasteel/white, /area/science/circuit) -"vWe" = ( -/obj/item/clothing/mask/breath/medical, -/obj/item/tank/internals/anesthetic, -/turf/open/floor/plating, -/area/maintenance/bar) -"wiz" = ( -/obj/item/weaponcrafting/stock, +"vSH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/maintenance/bar) "wkN" = ( @@ -54184,6 +54176,10 @@ /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/white, /area/science/circuit) +"wzn" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/bar) "wBd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -54196,28 +54192,27 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"wME" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/bar) -"wOC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +"wPS" = ( +/obj/machinery/vending/kink, /turf/open/floor/plating, -/area/maintenance/port/aft) +/area/maintenance/bar) +"wSH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) "wUY" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/hydrofloor, /area/hallway/secondary/service) -"wZJ" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) +"xfy" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall, +/area/crew_quarters/dorms) "xhV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54238,16 +54233,6 @@ }, /turf/open/floor/plating, /area/hallway/secondary/service) -"xjx" = ( -/obj/machinery/cryopod, -/turf/open/floor/carpet, -/area/maintenance/fore/secondary) -"xuS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) "xEu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -54259,10 +54244,9 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"xZw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, +"xPY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/maintenance/bar) "ycu" = ( /obj/structure/cable{ @@ -54270,9 +54254,9 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"yeD" = ( -/obj/structure/table/wood/poker, -/obj/item/storage/pill_bottle/dice, +"ygH" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/cleaner, /turf/open/floor/wood, /area/maintenance/bar) @@ -73196,7 +73180,7 @@ aaa aaa aaa aaa -vPp +jtl aaa aoV cbj @@ -73453,7 +73437,7 @@ aaa aaa aaa aaa -vPp +jtl aaa bCq cbj @@ -73710,7 +73694,7 @@ aaa aaa aaa aaa -vPp +jtl aaa bCq cbk @@ -73967,7 +73951,7 @@ aaa aaa aaa aaa -vPp +jtl aaa bCq bVy @@ -74224,7 +74208,7 @@ aaa aaa aaa aaa -vPp +jtl aaa bCq bVB @@ -74481,7 +74465,7 @@ aaa aaa aaa aaa -vPp +jtl aaa bCq bVA @@ -75251,7 +75235,7 @@ aoV aoV bCq bCq -vfL +uAK bCq bCq bCq @@ -75773,14 +75757,14 @@ bCq bCq bCq bYy -ojF -ojF -mrv -ojF -ojF -ojF -ojF -ojF +ref +ref +xPY +ref +ref +ref +ref +ref bUs bLv aaa @@ -76030,14 +76014,14 @@ bVG bHE bHE bHE -tsS -rYr -kLN -kLN -fVx -iek -iek -ojF +dkC +tmK +gxS +gxS +qit +iGw +iGw +ref bUs bLv aaa @@ -76283,18 +76267,18 @@ bHE bHE bCq bHE -ojF -ojF -ojF -ojF -ojF -kLN -oui -kLN -iek -exQ -bXu -ojF +ref +ref +ref +ref +ref +gxS +vNv +gxS +iGw +qbA +tqe +ref bUs bLv aaf @@ -76540,18 +76524,18 @@ bHE bHE cTF bHE -ojF -pmB -oxF -dMc -ojF -kLN -kLN -kLN -iek -yeD -dxy -ojF +ref +wPS +rrl +eYI +ref +gxS +gxS +gxS +iGw +vJu +ooS +ref bUs bLv aaa @@ -76797,18 +76781,18 @@ bHE bSs bCq bHE -ojF -ekq -osd -vWe -ojF -iek -iek -oui -kOA -iek -iek -ojF +ref +rgN +iEy +qBv +ref +iGw +iGw +vNv +ouu +iGw +iGw +ref bUs bLv aaa @@ -77054,18 +77038,18 @@ bRh bLu bCq bHE -ojF -ojF -mUU -ojF -ojF -sKd -sKd -iek -xuS -kLN -kLN -ojF +ref +ref +wzn +ref +ref +qKd +qKd +iGw +kds +gxS +gxS +ref bUs bLv aaf @@ -77311,19 +77295,19 @@ bCq bCq bCq bHE -ojF -hPN -kLN -oui -igN -kLN +ref +fWI +gxS +vNv +nKB +gxS bSu -elP -jbX -qcu -lMz -iZC -wOC +uBG +stg +vSH +tEz +pDq +dqT bLv aaa cjJ @@ -77568,18 +77552,18 @@ bLv aaa bLv bHE -ojF -rWn -iPG -sDt -pSl -kfy -dOb -xZw -nga -sDt -nzS -hrK +ref +knR +vJW +nRn +oqQ +qdB +wSH +qBQ +oPA +nRn +nwX +nEe bUz bLv aaa @@ -77825,18 +77809,18 @@ bLv aaf bLv bUt -ojF -lnu -eMI -rYr -gpI -kLN -sKd -iek -kLN -fVx -saV -wME +ref +ygH +idZ +tmK +qSC +gxS +qKd +iGw +gxS +qit +eKN +vhC bUz bLv aaf @@ -78082,18 +78066,18 @@ bCq aaa bLv bUs -ojF -wiz -oui -kLN -lUN -kLN -kLN -kLN -kLN -kLN -wZJ -wME +ref +tOc +vNv +gxS +ezO +gxS +gxS +gxS +gxS +gxS +gRV +vhC bUz bCq aaa @@ -78339,17 +78323,17 @@ aaa aaa bTB bUv -iRq -iRq -iRq -iRq -iRq -iRq -iRq -iRq -iRq -iRq -iRq +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ +mtJ car bUz bCq @@ -84199,7 +84183,7 @@ arf arf arf aoa -ahn +arf aJn aJn aJq @@ -84452,11 +84436,11 @@ arf aqa atf arf -dir -dir -dir -cQh -ahn +sjc +sjc +sjc +sjc +arf aaa aJn aJq @@ -84708,12 +84692,12 @@ ath arf apY ath -arf -jCg +xfy +shL ath -hhg -sPt -ahn +shL +shL +arf aaa aJn aLY @@ -84969,8 +84953,8 @@ arf aCd ath aCd -xjx -ahn +aCd +arf aJw aJw aMh @@ -85226,8 +85210,8 @@ arf asd aDK arf -ahn -ahn +arf +arf aJv aKG aMg diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index a3d43f4113..912cc6743b 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -70675,6 +70675,13 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, /area/science/xenobiology) +"cUd" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/fitness/recreation) "cUH" = ( /obj/structure/table/optable, /turf/open/floor/plasteel/white, @@ -75923,6 +75930,10 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"dWa" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall, +/area/security/prison) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -76091,6 +76102,13 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"hdw" = ( +/obj/machinery/cryopod{ + dir = 4; + tag = "0" + }, +/turf/open/floor/plasteel/vault, +/area/crew_quarters/fitness/recreation) "hfJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76141,10 +76159,6 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"jiR" = ( -/obj/machinery/computer/cryopod, -/turf/closed/wall, -/area/security/prison) "jwW" = ( /turf/closed/wall/mineral/plastitanium, /area/crew_quarters/fitness/recreation) @@ -76359,6 +76373,15 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"mSt" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/fitness/recreation) "nnK" = ( /obj/item/stack/sheet/glass/fifty, /obj/item/paper_bin, @@ -76439,13 +76462,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"ocn" = ( -/obj/machinery/cryopod{ - dir = 4; - tag = "0" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness/recreation) "ocT" = ( /obj/machinery/light{ dir = 1 @@ -76626,6 +76642,10 @@ }, /turf/open/floor/wood, /area/library) +"rzf" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -76715,13 +76735,6 @@ /obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plasteel/white, /area/science/circuit) -"tnQ" = ( -/obj/machinery/computer/cryopod{ - step_y = 9; - tag = "0" - }, -/turf/closed/wall, -/area/crew_quarters/fitness/recreation) "tsx" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -76737,13 +76750,6 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) -"txv" = ( -/obj/machinery/cryopod{ - dir = 4; - tag = "0" - }, -/turf/open/floor/plasteel/vault, -/area/crew_quarters/fitness/recreation) "tDM" = ( /obj/machinery/door/airlock/engineering/glass/critical{ heat_proof = 1; @@ -76761,15 +76767,6 @@ }, /turf/open/floor/plasteel/dark, /area/medical/morgue) -"tTL" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness/recreation) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -101748,7 +101745,7 @@ aax aax aax aax -jiR +dWa abe abe abe @@ -111779,12 +111776,12 @@ acP acP ags acP -txv -ocn -ocn -ocn -ocn -tnQ +hdw +cUd +cUd +cUd +cUd +rzf aoS acP arB @@ -112035,7 +112032,7 @@ aaa acQ aft agt -tTL +mSt ahf ahf dhp diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 01ceb61132..e0de739f99 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -7813,10 +7813,6 @@ dir = 4; pixel_x = 28 }, -/obj/machinery/computer/cryopod{ - tag = "0"; - step_y = 31 - }, /obj/machinery/cryopod, /turf/open/floor/plasteel, /area/crew_quarters/dorms) @@ -48340,11 +48336,6 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) -"fVZ" = ( -/obj/structure/lattice, -/obj/structure/reagent_dispensers/keg/aphro/strong, -/turf/open/space, -/area/space/nearstation) "fWv" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/plasteel/dark, @@ -49444,6 +49435,10 @@ }, /turf/closed/wall/r_wall, /area/engine/engineering) +"jqN" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) "jrG" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -52331,6 +52326,11 @@ "rHA" = ( /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"rHP" = ( +/obj/structure/lattice, +/obj/structure/reagent_dispensers/keg/aphro/strong, +/turf/open/space, +/area/space/nearstation) "rJg" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/machinery/light/small{ @@ -53846,10 +53846,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) -"wBX" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/department/crew_quarters/dorms) "wDm" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -54424,6 +54420,10 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) +"yap" = ( +/obj/machinery/computer/cryopod, +/turf/closed/wall, +/area/crew_quarters/dorms) "ybX" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -88689,7 +88689,7 @@ aaa aaa aaa aby -fVZ +rHP abO abX acg @@ -91552,7 +91552,7 @@ cBo alQ alb cBw -wBX +jqN aiS aiS aiS @@ -94649,7 +94649,7 @@ aaa aaa apX apX -apX +yap avl fIu dbi From 16c05b0d9293c57961a5e9c67a2e6af90a48a90f Mon Sep 17 00:00:00 2001 From: 81Denton <32391752+81Denton@users.noreply.github.com> Date: Fri, 8 Jun 2018 03:32:03 +0200 Subject: [PATCH 190/205] adds warning to shuttle purchase menu (#38266) --- code/game/machinery/computer/communications.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 37282c6478..4801b2ce08 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -556,6 +556,9 @@ if(STATE_PURCHASE) dat += "Budget: [SSshuttle.points] Credits.
    " + dat += "
    " + dat += "Caution: Purchasing dangerous shuttles may lead to mutiny and/or death.
    " + dat += "
    " for(var/shuttle_id in SSmapping.shuttle_templates) var/datum/map_template/shuttle/S = SSmapping.shuttle_templates[shuttle_id] if(S.can_be_bought && S.credit_cost < INFINITY) From f962a02ef731ed547a0dac3066731c6e04e514f7 Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Thu, 7 Jun 2018 18:33:22 -0700 Subject: [PATCH 192/205] Fix meson goggles and lantern wisps conflicting (#38211) --- .../mining/lavaland/necropolis_chests.dm | 19 ++++++++++++------- code/modules/mob/mob.dm | 8 ++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 953eb1d02c..1405551c84 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -266,26 +266,29 @@ /obj/item/wisp_lantern/attack_self(mob/user) if(!wisp) to_chat(user, "The wisp has gone missing!") + icon_state = "lantern" return + if(wisp.loc == src) to_chat(user, "You release the wisp. It begins to bob around your head.") - user.sight |= SEE_MOBS icon_state = "lantern" wisp.orbit(user, 20) + user.update_sight() SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Freed") else to_chat(user, "You return the wisp to the lantern.") + var/mob/target if(wisp.orbiting) - var/atom/A = wisp.orbiting.orbiting - if(isliving(A)) - var/mob/living/M = A - M.sight &= ~SEE_MOBS - to_chat(M, "Your vision returns to normal.") - + target = wisp.orbiting.orbiting wisp.stop_orbit() wisp.forceMove(src) + + if (istype(target)) + target.update_sight() + to_chat(target, "Your vision returns to normal.") + icon_state = "lantern-blue" SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned") @@ -308,6 +311,8 @@ icon_state = "orb" light_range = 7 layer = ABOVE_ALL_MOB_LAYER + var/sight_flags = SEE_MOBS + var/lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE //Red/Blue Cubes /obj/item/warp_cube diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 97823c9c71..931eb68f13 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -842,6 +842,14 @@ return /mob/proc/update_sight() + for(var/O in orbiters) + var/datum/orbit/orbit = O + var/obj/effect/wisp/wisp = orbit.orbiter + if (istype(wisp)) + sight |= wisp.sight_flags + if(!isnull(wisp.lighting_alpha)) + lighting_alpha = min(lighting_alpha, wisp.lighting_alpha) + sync_lighting_plane_alpha() /mob/proc/sync_lighting_plane_alpha() From 9124dac65f1d3b73841d412bdbb1678b70382a56 Mon Sep 17 00:00:00 2001 From: CitrusGender <31262308+CitrusGender@users.noreply.github.com> Date: Fri, 8 Jun 2018 00:15:25 -0400 Subject: [PATCH 194/205] Adds indestructible sandstone wall (#38350) * adds sandstone * OKAY FINE KOR JEEZ * I am very angry right now * you don't seem to understand * Update closed.dm --- code/game/turfs/closed.dm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 657bf89a34..db1dba66cf 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -36,6 +36,14 @@ icon = 'icons/turf/shuttleold.dmi' icon_state = "block" +/turf/closed/indestructible/sandstone + name = "sandstone wall" + desc = "A wall with sandstone plating. Rough." + icon = 'icons/turf/walls/sandstone_wall.dmi' + icon_state = "sandstone" + baseturfs = /turf/closed/indestructible/sandstone + smooth = SMOOTH_TRUE + /turf/closed/indestructible/oldshuttle/corner icon_state = "corner" @@ -152,4 +160,4 @@ name = "wall" desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." icon = 'icons/turf/walls/hierophant_wall.dmi' - icon_state = "wall" \ No newline at end of file + icon_state = "wall" From 6994e6010106f3f4c7d1e88c3af7c170df6d3811 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:27:09 -0500 Subject: [PATCH 196/205] Automatic changelog generation for PR #7042 [ci skip] --- html/changelogs/AutoChangeLog-pr-7042.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7042.yml diff --git a/html/changelogs/AutoChangeLog-pr-7042.yml b/html/changelogs/AutoChangeLog-pr-7042.yml new file mode 100644 index 0000000000..2a5553f3e2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7042.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - imageadd: "sandstone wall sprite for indestructible object" From cc915f0686a48a7a706dc8ba185e9e1faa8b16cb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:27:46 -0500 Subject: [PATCH 197/205] Automatic changelog generation for PR #7041 [ci skip] --- html/changelogs/AutoChangeLog-pr-7041.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7041.yml diff --git a/html/changelogs/AutoChangeLog-pr-7041.yml b/html/changelogs/AutoChangeLog-pr-7041.yml new file mode 100644 index 0000000000..c6f54eb459 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7041.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "The thermal sight benefits of lantern wisps no longer disappear if you change glasses." From 48e4f9f8ebe21e4548422b86ffb980fd8b22a714 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:29:01 -0500 Subject: [PATCH 198/205] Automatic changelog generation for PR #7040 [ci skip] --- html/changelogs/AutoChangeLog-pr-7040.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7040.yml diff --git a/html/changelogs/AutoChangeLog-pr-7040.yml b/html/changelogs/AutoChangeLog-pr-7040.yml new file mode 100644 index 0000000000..0da19e008e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7040.yml @@ -0,0 +1,4 @@ +author: "Denton" +delete-after: True +changes: + - tweak: "Added a warning to the shuttle purchase menu." From 806751f4fb42cfd09863934f5e8acdd515ff17bf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:29:32 -0500 Subject: [PATCH 199/205] Automatic changelog generation for PR #7039 [ci skip] --- html/changelogs/AutoChangeLog-pr-7039.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7039.yml diff --git a/html/changelogs/AutoChangeLog-pr-7039.yml b/html/changelogs/AutoChangeLog-pr-7039.yml new file mode 100644 index 0000000000..4c5fce38d2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7039.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "A pAI dying while in holoform no longer deletes the card, instead merely emptying it." From 09936bb59acbf0504ded74958d0c3d1acbfd133b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:32:20 -0500 Subject: [PATCH 200/205] Automatic changelog generation for PR #7030 [ci skip] --- html/changelogs/AutoChangeLog-pr-7030.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7030.yml diff --git a/html/changelogs/AutoChangeLog-pr-7030.yml b/html/changelogs/AutoChangeLog-pr-7030.yml new file mode 100644 index 0000000000..5f89cc6abb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7030.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "Vehicle speed changes now happen immediately instead of on the next movement cycle" From 5858b790d78615d097a0e17a75d21755732d45e4 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 9 Jun 2018 00:34:01 -0400 Subject: [PATCH 201/205] Update cloning.dm --- code/game/machinery/computer/cloning.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 8cbe9a68ec..4846610671 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,3 +1,5 @@ +#define AUTOCLONING_MINIMAL_LEVEL 3 + /obj/machinery/computer/cloning name = "cloning console" desc = "Used to clone people and manage DNA." @@ -79,6 +81,10 @@ src.scanner = findscanner() if(findfirstcloner && !LAZYLEN(pods)) findcloner() + if(!autoprocess) + STOP_PROCESSING(SSmachines, src) + else + START_PROCESSING(SSmachines, src) /obj/machinery/computer/cloning/proc/findscanner() var/obj/machinery/dna_scannernew/scannerf = null @@ -151,7 +157,7 @@ var/dat = "" dat += "
    Refresh" - if(scanner && HasEfficientPod() && scanner.scan_level > 2) + if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) if(!autoprocess) dat += "Autoprocess" else @@ -281,7 +287,8 @@ START_PROCESSING(SSmachines, src) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) if("stopautoprocess") - autoprocess = 0 + autoprocess = FALSE + STOP_PROCESSING(SSmachines, src) playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) From 0e3d5a75121a7690a8002b0749fcf381eda4b48f Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 9 Jun 2018 00:35:13 -0400 Subject: [PATCH 202/205] Update infrared.dm --- code/modules/assembly/infrared.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 5f24f10b4b..fe6e94605b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -167,13 +167,9 @@ listener = newloc.AddComponent(/datum/component/redirect, COMSIG_ATOM_EXITED, CALLBACK(src, .proc/check_exit)) /obj/item/assembly/infra/proc/check_exit(atom/movable/offender) -<<<<<<< HEAD - if(offender && ((offender.flags_1 & ABSTRACT_1) || offender == src)) -======= if(QDELETED(src)) return if(offender == src || istype(offender,/obj/effect/beam/i_beam)) ->>>>>>> 641a7d1... Fixes infrared emmiters partially. (#38301) return return refreshBeam() From 427211227bd47bc5e6246bf314883dc65d337f83 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:43:22 -0500 Subject: [PATCH 203/205] Automatic changelog generation for PR #7031 [ci skip] --- html/changelogs/AutoChangeLog-pr-7031.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7031.yml diff --git a/html/changelogs/AutoChangeLog-pr-7031.yml b/html/changelogs/AutoChangeLog-pr-7031.yml new file mode 100644 index 0000000000..cb65231c9e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7031.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Picture-in-picture objects now are no longer overlapped by other certain objects" From 5963d0224f248cec7a801c47e2a731b79beb85df Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jun 2018 23:45:10 -0500 Subject: [PATCH 204/205] Automatic changelog generation for PR #7022 [ci skip] --- html/changelogs/AutoChangeLog-pr-7022.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7022.yml diff --git a/html/changelogs/AutoChangeLog-pr-7022.yml b/html/changelogs/AutoChangeLog-pr-7022.yml new file mode 100644 index 0000000000..7c9f43d2de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7022.yml @@ -0,0 +1,5 @@ +author: "iksyp" +delete-after: True +changes: + - bugfix: "Ever since the great emotion purge of 2558, people were able to work at top efficiency, even while starving to death. This is no longer the case, Nanotrasen Scientists say." + - admin: "Hunger slowdown only applies if mood is disabled in the config." From 8dc3d5f70a295d48426f37ed0613b34f308b89cd Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 9 Jun 2018 00:47:48 -0400 Subject: [PATCH 205/205] Update suicide.dm --- code/modules/client/verbs/suicide.dm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 9cce4e7660..06e555bb32 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -199,23 +199,10 @@ death(0) /mob/living/proc/suicide_log() -<<<<<<< HEAD - var/turf/T = get_turf(src) - - log_game("[key_name(src)] committed suicide at [get_area(src)][COORD(T)] as [src.type].") - message_admins("[key_name(src)] committed suicide at [get_area(src)] as [src.type].") - -/mob/living/carbon/human/suicide_log() - var/turf/T = get_turf(src) - - log_game("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) committed suicide at [get_area(src)][COORD(T)].") - message_admins("[key_name(src)] (job: [job ? "[job]" : "None"]) committed suicide at [get_area(src)].") -======= log_game("[key_name(src)] committed suicide at [AREACOORD(src)] as [src.type].") /mob/living/carbon/human/suicide_log() log_game("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) committed suicide at [AREACOORD(src)].") ->>>>>>> c41d6ac... Standardizes and cleans up some admin messages & logging (#38128) /mob/living/proc/canSuicide() if(stat == CONSCIOUS)

  • | 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