From ab39ece501e9c6ac29b09d1aa159b2a81af4a058 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 May 2017 23:53:24 -0500 Subject: [PATCH 001/215] No more erros --- code/_globalvars/sensitive.dm | 2 +- config/dbconfig.txt | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/code/_globalvars/sensitive.dm b/code/_globalvars/sensitive.dm index 786287f96f..7001040063 100644 --- a/code/_globalvars/sensitive.dm +++ b/code/_globalvars/sensitive.dm @@ -13,4 +13,4 @@ GLOBAL_REAL_VAR(sqlport) = "3306" GLOBAL_REAL_VAR(sqlfdbkdb) = "test" GLOBAL_REAL_VAR(sqlfdbklogin) = "root" GLOBAL_REAL_VAR(sqlfdbkpass) = "" -GLOBAL_REAL_VAR(sqlfdbktableprefix) = "erro_" \ No newline at end of file +GLOBAL_REAL_VAR(sqlfdbktableprefix) = "" diff --git a/config/dbconfig.txt b/config/dbconfig.txt index cc28dc483d..ed7da25137 100644 --- a/config/dbconfig.txt +++ b/config/dbconfig.txt @@ -16,10 +16,8 @@ PORT 3306 FEEDBACK_DATABASE feedback ## Prefix to be added to the name of every table, older databases will require this be set to erro_ -## if left out defaults to erro_ for legacy reasons, if you want no table prefix, give a blank prefix rather then comment out ## Note, this does not change the table names in the database, you will have to do that yourself. ##IE: -## FEEDBACK_TABLEPREFIX erro_ ## FEEDBACK_TABLEPREFIX ## FEEDBACK_TABLEPREFIX SS13_ ## @@ -30,4 +28,4 @@ FEEDBACK_TABLEPREFIX FEEDBACK_LOGIN username ## Password used to access the database. -FEEDBACK_PASSWORD password \ No newline at end of file +FEEDBACK_PASSWORD password From c3d2dbe00acd2a34961005e362c3c33196258ac1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 May 2017 09:27:00 -0500 Subject: [PATCH 002/215] Gang War: Replaces sniper rifle with weaker version, nonlethal ammo, tweaks bling value --- code/game/gamemodes/gang/gang_datum.dm | 2 +- code/game/gamemodes/gang/gang_items.dm | 27 ++++++++++++------- code/game/gamemodes/gang/gang_items.dm.rej | 17 ++++++++++++ .../projectiles/ammunition/ammo_casings.dm | 9 ++++++- .../boxes_magazines/external_mag.dm | 13 ++++++++- .../guns/ballistic/automatic.dm.rej | 13 +++++++++ .../modules/projectiles/projectile/bullets.dm | 23 ++++++++++++++++ .../projectiles/projectile/bullets.dm.rej | 10 +++++++ 8 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 code/game/gamemodes/gang/gang_items.dm.rej create mode 100644 code/modules/projectiles/guns/ballistic/automatic.dm.rej create mode 100644 code/modules/projectiles/projectile/bullets.dm.rej diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm index 0ff9ef4f2d..f7d30b96a0 100644 --- a/code/game/gamemodes/gang/gang_datum.dm +++ b/code/game/gamemodes/gang/gang_datum.dm @@ -76,7 +76,7 @@ /datum/gang_item/clothing/hands, /datum/gang_item/clothing/belt, - /datum/gang_item/weapon/shuriken, + /datum/gang_item/weapon/shuriken, /datum/gang_item/weapon/switchblade, /datum/gang_item/weapon/improvised, /datum/gang_item/weapon/ammo/improvised_ammo, diff --git a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm index aec9b040cd..075b42640b 100644 --- a/code/game/gamemodes/gang/gang_items.dm +++ b/code/game/gamemodes/gang/gang_items.dm @@ -111,7 +111,7 @@ /datum/gang_item/clothing/hat name = "Pimp Hat" id = "hat" - cost = 18 + cost = 16 item_path = /obj/item/clothing/head/collectable/petehat/gang /obj/item/clothing/head/collectable/petehat/gang @@ -121,7 +121,7 @@ /datum/gang_item/clothing/mask name = "Golden Death Mask" id = "mask" - cost = 20 + cost = 18 item_path = /obj/item/clothing/mask/gskull /obj/item/clothing/mask/gskull @@ -133,7 +133,7 @@ /datum/gang_item/clothing/shoes name = "Bling Boots" id = "boots" - cost = 25 + cost = 22 item_path = /obj/item/clothing/shoes/gang /obj/item/clothing/shoes/gang @@ -144,14 +144,14 @@ /datum/gang_item/clothing/neck name = "Gold Necklace" id = "necklace" - cost = 10 + cost = 9 item_path = /obj/item/clothing/neck/necklace/dope /datum/gang_item/clothing/hands name = "Decorative Brass Knuckles" id = "hand" - cost = 12 + cost = 11 item_path = /obj/item/clothing/gloves/gang /obj/item/clothing/gloves/gang @@ -163,7 +163,7 @@ /datum/gang_item/clothing/belt name = "Badass Belt" id = "belt" - cost = 15 + cost = 13 item_path = /obj/item/weapon/storage/belt/military/gang /obj/item/weapon/storage/belt/military/gang @@ -215,7 +215,6 @@ name = "Sawn-Off Improvised Shotgun" id = "sawn" cost = 6 - item_path = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/sawn /datum/gang_item/weapon/ammo/improvised_ammo name = "Box of Buckshot" @@ -236,16 +235,24 @@ item_path = /obj/item/ammo_box/magazine/m10mm /datum/gang_item/weapon/sniper - name = ".50cal Sniper Rifle" + name = "Black Market .50cal Sniper Rifle" id = "sniper" cost = 40 item_path = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle /datum/gang_item/weapon/ammo/sniper_ammo - name = "Standard .50cal Sniper Rounds" + name = "Smuggled .50cal Sniper Rounds" id = "sniper_ammo" cost = 15 - item_path = /obj/item/ammo_box/magazine/sniper_rounds + item_path = /obj/item/ammo_box/magazine/sniper_rounds/gang + + +/datum/gang_item/weapon/ammo/sleeper_ammo + name = "Illicit Tranquilizer Cartridges" + id = "sniper_ammo" + cost = 15 + item_path = /obj/item/ammo_box/magazine/sniper_rounds/gang/sleeper + /datum/gang_item/weapon/machinegun name = "Mounted Machine Gun" diff --git a/code/game/gamemodes/gang/gang_items.dm.rej b/code/game/gamemodes/gang/gang_items.dm.rej new file mode 100644 index 0000000000..cdc0d35918 --- /dev/null +++ b/code/game/gamemodes/gang/gang_items.dm.rej @@ -0,0 +1,17 @@ +diff a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm (rejected hunks) +@@ -325,13 +325,13 @@ + user.put_in_hands(O) + if(spawn_msg) + to_chat(user, spawn_msg) +- ++ + /datum/gang_item/equipment/wetwork_boots + name = "Wetwork boots" + id = "wetwork" + cost = 20 + item_path = /obj/item/clothing/shoes/combat/gang +- ++ + /obj/item/clothing/shoes/combat/gang + name = "Wetwork boots" + desc = "A gang's best hitmen are prepared for anything." diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 65b9ef926f..d91859f198 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -117,7 +117,7 @@ desc = "A .50 bullet casing, specialised in sending the target to sleep, instead of hell." caliber = ".50" projectile_type = /obj/item/projectile/bullet/sniper/soporific - icon_state = ".50" + icon_state = "sleeper" /obj/item/ammo_casing/haemorrhage desc = "A .50 bullet casing, specialised in causing massive bloodloss" @@ -131,7 +131,14 @@ projectile_type = /obj/item/projectile/bullet/sniper/penetrator icon_state = ".50" +/obj/item/ammo_casing/point50/gang + desc = "A black market .50 bullet casing." + projectile_type = /obj/item/projectile/bullet/sniper/gang +/obj/item/ammo_casing/point50/gang/sleeper + desc = "Am illegally modified tranquilizer round." + projectile_type = /obj/item/projectile/bullet/sniper/gang/sleeper + icon_state = "sleeper" /// SAW ROUNDS diff --git a/code/modules/projectiles/boxes_magazines/external_mag.dm b/code/modules/projectiles/boxes_magazines/external_mag.dm index c2a7129b4e..6c798efe3e 100644 --- a/code/modules/projectiles/boxes_magazines/external_mag.dm +++ b/code/modules/projectiles/boxes_magazines/external_mag.dm @@ -264,6 +264,17 @@ origin_tech = "combat=6;syndicate=3" max_ammo = 5 +/obj/item/ammo_box/magazine/sniper_rounds/gang + name = "black market sniper rounds (.50)" + icon_state = ".50mag" + origin_tech = "combat=6" + ammo_type = /obj/item/ammo_casing/point50/gang + +/obj/item/ammo_box/magazine/sniper_rounds/gang/sleeper + name = "illegally modified tranquilizer round" + icon_state = "soporific" + origin_tech = "combat=6" + ammo_type = /obj/item/ammo_casing/point50/gang/sleeper //// SAW MAGAZINES @@ -371,4 +382,4 @@ icon_state = "oldrifle-[round(ammo_count(),4)]" /obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" - return \ No newline at end of file + return diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm.rej b/code/modules/projectiles/guns/ballistic/automatic.dm.rej new file mode 100644 index 0000000000..9f4d4f92bd --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/automatic.dm.rej @@ -0,0 +1,13 @@ +diff a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm (rejected hunks) +@@ -375,7 +375,10 @@ + pin = /obj/item/device/firing_pin/implant/pindicate + origin_tech = "combat=7;syndicate=6" + +- ++/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/gang ++ name = "black market sniper rifle" ++ desc = "A long ranged weapon that does significant damage. It is well worn from years of service." ++ mag_type = /obj/item/ammo_box/magazine/sniper_rounds/gang + + // Old Semi-Auto Rifle // + diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 0594c17469..b951960c76 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -279,7 +279,30 @@ target.ex_act(rand(1,2)) return ..() +/obj/item/projectile/bullet/sniper/gang + damage = 55 + stun = 1 + weaken = 1 + dismemberment = 15 + armour_penetration = 25 +/obj/item/projectile/bullet/sniper/gang/sleeper + nodamage = 1 + stun = 0 + weaken = 0 + dismemberment = 0 + breakthings = FALSE + +/obj/item/projectile/bullet/sniper/gang/sleeper/on_hit(atom/target, blocked = 0) + if((blocked != 100) && isliving(target)) + var/mob/living/L = target + L.blur_eyes(8) + if(L.staminaloss >= 40) + L.Sleeping(20) + else + L.adjustStaminaLoss(55) + return 1 + /obj/item/projectile/bullet/sniper/soporific armour_penetration = 0 nodamage = 1 diff --git a/code/modules/projectiles/projectile/bullets.dm.rej b/code/modules/projectiles/projectile/bullets.dm.rej new file mode 100644 index 0000000000..8666f242ca --- /dev/null +++ b/code/modules/projectiles/projectile/bullets.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm (rejected hunks) +@@ -244,7 +244,7 @@ + name = "\improper DNA injector" + icon_state = "syringeproj" + var/obj/item/weapon/dnainjector/injector +- ++ + /obj/item/projectile/bullet/dnainjector/on_hit(atom/target, blocked = 0) + if(iscarbon(target)) + var/mob/living/carbon/M = target From b4cd9de3e4ccae89a648653ff70487c9e955a233 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sat, 27 May 2017 13:39:06 -0700 Subject: [PATCH 003/215] newline errors --- code/game/gamemodes/gang/gang_items.dm.rej | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 code/game/gamemodes/gang/gang_items.dm.rej diff --git a/code/game/gamemodes/gang/gang_items.dm.rej b/code/game/gamemodes/gang/gang_items.dm.rej deleted file mode 100644 index cdc0d35918..0000000000 --- a/code/game/gamemodes/gang/gang_items.dm.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm (rejected hunks) -@@ -325,13 +325,13 @@ - user.put_in_hands(O) - if(spawn_msg) - to_chat(user, spawn_msg) -- -+ - /datum/gang_item/equipment/wetwork_boots - name = "Wetwork boots" - id = "wetwork" - cost = 20 - item_path = /obj/item/clothing/shoes/combat/gang -- -+ - /obj/item/clothing/shoes/combat/gang - name = "Wetwork boots" - desc = "A gang's best hitmen are prepared for anything." From cf9f1e2f7da07cb000ccf4223c41bd31a8934a14 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 May 2017 20:45:35 -0500 Subject: [PATCH 004/215] Fixes world start outfit runtime --- code/modules/awaymissions/corpse.dm.rej | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 code/modules/awaymissions/corpse.dm.rej diff --git a/code/modules/awaymissions/corpse.dm.rej b/code/modules/awaymissions/corpse.dm.rej new file mode 100644 index 0000000000..920234d7c2 --- /dev/null +++ b/code/modules/awaymissions/corpse.dm.rej @@ -0,0 +1,15 @@ +diff a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm (rejected hunks) +@@ -117,12 +117,11 @@ + var/id = -1 + + /obj/effect/mob_spawn/human/Initialize() +- . = ..() + if(ispath(outfit)) + outfit = new outfit() + if(!outfit) + outfit = new /datum/outfit +- ++ return ..() + + /obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H) + if(mob_species) From f6306ea40654fe89fb2eebe833692900fc43d5ba Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 May 2017 20:46:40 -0500 Subject: [PATCH 005/215] Fixes revision stat tracking --- code/game/gamemodes/game_mode.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 700bfe5f3a..555e76da94 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -83,8 +83,8 @@ SSblackbox.set_details("round_start","[time2text(world.realtime)]") if(SSticker && SSticker.mode) SSblackbox.set_details("game_mode","[SSticker.mode]") - if(GLOB.revdata.commit) - SSblackbox.set_details("revision","[GLOB.revdata.commit]") + if(GLOB.revdata.originmastercommit) + SSblackbox.set_details("revision","[GLOB.revdata.originmastercommit]") if(report) addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) generate_station_goals() From 22e666911105695ad1d887f514d64ea2d9bbc4d6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 May 2017 20:47:45 -0500 Subject: [PATCH 006/215] Small outfit refactor --- code/datums/outfit.dm.rej | 10 ++++++++++ code/modules/admin/verbs/debug.dm | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 code/datums/outfit.dm.rej diff --git a/code/datums/outfit.dm.rej b/code/datums/outfit.dm.rej new file mode 100644 index 0000000000..4f78bcbc69 --- /dev/null +++ b/code/datums/outfit.dm.rej @@ -0,0 +1,10 @@ +diff a/code/datums/outfit.dm b/code/datums/outfit.dm (rejected hunks) +@@ -23,6 +23,8 @@ + var/list/backpack_contents = null // In the list(path=count,otherpath=count) format + var/list/implants = null + ++ var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters ++ + /datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + //to be overriden for customization depending on client prefs,species etc + return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9bed5ad238..733f62d492 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -581,7 +581,8 @@ GLOBAL_PROTECT(AdminProcCallCount) var/list/paths = subtypesof(/datum/outfit) - typesof(/datum/outfit/job) for(var/path in paths) var/datum/outfit/O = path //not much to initalize here but whatever - outfits[initial(O.name)] = path + if(initial(O.can_be_admin_equipped)) + outfits[initial(O.name)] = path var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in outfits @@ -596,7 +597,8 @@ GLOBAL_PROTECT(AdminProcCallCount) var/list/job_outfits = list() for(var/path in job_paths) var/datum/outfit/O = path - job_outfits[initial(O.name)] = path + if(initial(O.can_be_admin_equipped)) + job_outfits[initial(O.name)] = path dresscode = input("Select job equipment", "Robust quick dress shop") as null|anything in job_outfits dresscode = job_outfits[dresscode] From c07034f45abd2b7dbb2c47a969de3397f765f77f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 May 2017 20:55:08 -0500 Subject: [PATCH 007/215] The kinetic crusher can now gain bonus effects via trophies gained by killing bosses with it --- code/__DEFINES/status_effects.dm | 1 - code/__DEFINES/status_effects.dm.rej | 13 + code/datums/status_effects/debuffs.dm | 10 - code/datums/status_effects/neutral.dm | 18 ++ .../temporary_visuals/miscellaneous.dm | 4 +- .../mining/equipment/kinetic_crusher.dm | 280 +++++++++++++++--- .../mining/lavaland/necropolis_chests.dm | 58 +++- .../hostile/megafauna/bubblegum.dm | 1 + .../hostile/megafauna/colossus.dm | 10 +- .../simple_animal/hostile/megafauna/dragon.dm | 1 + .../hostile/megafauna/hierophant.dm | 11 + .../hostile/megafauna/megafauna.dm | 12 + icons/obj/lavaland/artefacts.dmi | Bin 12662 -> 17595 bytes tgstation.dme | 1 + 14 files changed, 350 insertions(+), 70 deletions(-) create mode 100644 code/__DEFINES/status_effects.dm.rej create mode 100644 code/datums/status_effects/neutral.dm diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 834097bd44..3b3736b4b5 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -30,7 +30,6 @@ // DEBUFFS // ///////////// -#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark #define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run #define STATUS_EFFECT_MANIAMOTOR /datum/status_effect/maniamotor //disrupts, damages, and confuses the affected as long as they're in range of the motor diff --git a/code/__DEFINES/status_effects.dm.rej b/code/__DEFINES/status_effects.dm.rej new file mode 100644 index 0000000000..b02f09d005 --- /dev/null +++ b/code/__DEFINES/status_effects.dm.rej @@ -0,0 +1,13 @@ +diff a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm (rejected hunks) +@@ -42,3 +41,11 @@ + #define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes + + #define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage ++ ++///////////// ++// NEUTRAL // ++///////////// ++ ++#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark ++ ++#define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 92ee2e6462..f2e1972e23 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1,15 +1,5 @@ //Largely negative status effects go here, even if they have small benificial effects -/datum/status_effect/sigil_mark //allows the affected target to always trigger sigils while mindless - id = "sigil_mark" - duration = -1 - alert_type = null - var/stat_allowed = DEAD //if owner's stat is below this, will remove itself - -/datum/status_effect/sigil_mark/tick() - if(owner.stat < stat_allowed) - qdel(src) - /datum/status_effect/his_wrath //does minor damage over time unless holding His Grace id = "his_wrath" duration = -1 diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm new file mode 100644 index 0000000000..0946408323 --- /dev/null +++ b/code/datums/status_effects/neutral.dm @@ -0,0 +1,18 @@ +//entirely neutral or internal status effects go here + +/datum/status_effect/sigil_mark //allows the affected target to always trigger sigils while mindless + id = "sigil_mark" + duration = -1 + alert_type = null + var/stat_allowed = DEAD //if owner's stat is below this, will remove itself + +/datum/status_effect/sigil_mark/tick() + if(owner.stat < stat_allowed) + qdel(src) + +/datum/status_effect/crusher_damage //tracks the damage dealt to this mob by kinetic crushers + id = "crusher_damage" + duration = -1 + status_type = STATUS_EFFECT_UNIQUE + alert_type = null + var/total_damage = 0 diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index c3cf2a5103..6fd0530935 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -169,7 +169,9 @@ /obj/effect/temp_visual/fire icon = 'icons/effects/fire.dmi' icon_state = "3" - duration = 20 + light_range = 3 + light_color = LIGHT_COLOR_FIRE + duration = 10 /obj/effect/temp_visual/revenant name = "spooky lights" diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 15d6c6afc5..6d8a99c1a2 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -5,9 +5,7 @@ item_state = "mining_hammer1" name = "proto-kinetic crusher" desc = "An early design of the proto-kinetic accelerator, it is little more than an combination of various mining tools cobbled together, forming a high-tech club. \ - While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna.\ - \nMark a mob with the destabilizing force, then hit them in melee to activate it for extra damage. Extra damage if backstabbed in this fashion. \ - This weapon is only particularly effective against large creatures." + While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna." force = 20 //As much as a bone spear, but this is significantly more annoying to carry around due to requiring the use of both hands at all times w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK @@ -21,9 +19,97 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("smashed", "crushed", "cleaved", "chopped", "pulped") sharpness = IS_SHARP + var/list/trophies = list() var/charged = TRUE var/charge_time = 14 +/obj/item/weapon/twohanded/required/mining_hammer/Destroy() + for(var/a in trophies) + qdel(a) + trophies = null + return ..() + +/obj/item/weapon/twohanded/required/mining_hammer/examine(mob/living/user) + ..() + to_chat(user, "Mark a large creature with the destabilizing force, then hit them in melee to do 50 damage.") + to_chat(user, "Does 80 damage if the target is backstabbed, instead of 50.") + for(var/t in trophies) + var/obj/item/crusher_trophy/T = t + to_chat(user, "It has \a [T] attached, which causes [T.effect_desc()].") + +/obj/item/weapon/twohanded/required/mining_hammer/attackby(obj/item/A, mob/living/user) + if(istype(A, /obj/item/weapon/crowbar)) + if(LAZYLEN(trophies)) + to_chat(user, "You remove [src]'s trophies.") + playsound(loc, A.usesound, 100, 1) + for(var/t in trophies) + var/obj/item/crusher_trophy/T = t + T.remove_from(src, user) + else + to_chat(user, "There are no trophies on [src].") + else if(istype(A, /obj/item/crusher_trophy)) + var/obj/item/crusher_trophy/T = A + T.add_to(src, user) + else + return ..() + +/obj/item/weapon/twohanded/required/mining_hammer/attack(mob/living/target, mob/living/carbon/user) + var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/target_health = target.health + ..() + for(var/t in trophies) + if(!QDELETED(target)) + var/obj/item/crusher_trophy/T = t + T.on_melee_hit(target, user) + if(!QDELETED(C) && !QDELETED(target)) + C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did + +/obj/item/weapon/twohanded/required/mining_hammer/afterattack(atom/target, mob/living/user, proximity_flag) + if(!proximity_flag && charged)//Mark a target, or mine a tile. + var/turf/proj_turf = user.loc + if(!isturf(proj_turf)) + return + var/obj/item/projectile/destabilizer/D = new /obj/item/projectile/destabilizer(proj_turf) + for(var/t in trophies) + var/obj/item/crusher_trophy/T = t + T.on_projectile_fire(D, user) + D.preparePixelProjectile(target, get_turf(target), user) + D.firer = user + D.hammer_synced = src + playsound(user, 'sound/weapons/plasma_cutter.ogg', 100, 1) + D.fire() + charged = FALSE + icon_state = "mining_hammer1_uncharged" + addtimer(CALLBACK(src, .proc/Recharge), charge_time) + return + if(proximity_flag && isliving(target)) + var/mob/living/L = target + var/datum/status_effect/crusher_mark/CM = L.has_status_effect(STATUS_EFFECT_CRUSHERMARK) + if(!CM || CM.hammer_synced != src || !L.remove_status_effect(STATUS_EFFECT_CRUSHERMARK)) + return + var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + var/target_health = L.health + for(var/t in trophies) + var/obj/item/crusher_trophy/T = t + T.on_mark_detonation(target, user) + new /obj/effect/temp_visual/kinetic_blast(get_turf(L)) + var/backstab_dir = get_dir(user, L) + var/def_check = L.getarmor(type = "bomb") + if((user.dir & backstab_dir) && (L.dir & backstab_dir)) + L.apply_damage(80, BRUTE, blocked = def_check) + playsound(user, 'sound/weapons/Kenetic_accel.ogg', 100, 1) //Seriously who spelled it wrong + else + L.apply_damage(50, BRUTE, blocked = def_check) + if(!QDELETED(C) && !QDELETED(L)) + C.total_damage += target_health - L.health //we did some damage, but let's not assume how much we did + +/obj/item/weapon/twohanded/required/mining_hammer/proc/Recharge() + if(!charged) + charged = TRUE + icon_state = "mining_hammer1" + playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + +//destablizing force /obj/item/projectile/destabilizer name = "destabilizing force" icon_state = "pulse1" @@ -42,8 +128,13 @@ /obj/item/projectile/destabilizer/on_hit(atom/target, blocked = 0) if(isliving(target)) var/mob/living/L = target + var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK) - CM.hammer_synced = hammer_synced + if(hammer_synced) + CM.hammer_synced = hammer_synced + for(var/t in hammer_synced.trophies) + var/obj/item/crusher_trophy/T = t + T.on_mark_application(target, CM, had_effect) var/target_turf = get_turf(target) if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf @@ -51,36 +142,153 @@ M.gets_drilled(firer) ..() -/obj/item/weapon/twohanded/required/mining_hammer/afterattack(atom/target, mob/user, proximity_flag) - if(!proximity_flag && charged)//Mark a target, or mine a tile. - var/turf/proj_turf = user.loc - if(!isturf(proj_turf)) - return - var/obj/item/projectile/destabilizer/D = new /obj/item/projectile/destabilizer(proj_turf) - D.preparePixelProjectile(target, get_turf(target), user) - D.hammer_synced = src - playsound(user, 'sound/weapons/plasma_cutter.ogg', 100, 1) - D.fire() - charged = FALSE - icon_state = "mining_hammer1_uncharged" - addtimer(CALLBACK(src, .proc/Recharge), charge_time) - return - if(proximity_flag && isliving(target)) - var/mob/living/L = target - var/datum/status_effect/crusher_mark/CM = L.has_status_effect(STATUS_EFFECT_CRUSHERMARK) - if(!CM || CM.hammer_synced != src || !L.remove_status_effect(STATUS_EFFECT_CRUSHERMARK)) - return - new /obj/effect/temp_visual/kinetic_blast(get_turf(L)) - var/backstab_dir = get_dir(user, L) - var/def_check = L.getarmor(type = "bomb") - if((user.dir & backstab_dir) && (L.dir & backstab_dir)) - L.apply_damage(80, BRUTE, blocked = def_check) - playsound(user, 'sound/weapons/Kenetic_accel.ogg', 100, 1) //Seriously who spelled it wrong - else - L.apply_damage(50, BRUTE, blocked = def_check) +//trophies +/obj/item/crusher_trophy + name = "tail spike" + desc = "A strange spike with no usage." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "tail_spike" + var/bonus_value = 10 //if it has a bonus effect, this is how much that effect is + var/denied_type = /obj/item/crusher_trophy -/obj/item/weapon/twohanded/required/mining_hammer/proc/Recharge() - if(!charged) - charged = TRUE - icon_state = "mining_hammer1" - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) +/obj/item/crusher_trophy/examine(mob/living/user) + ..() + to_chat(user, "Causes [effect_desc()] when attached to a kinetic crusher.") + +/obj/item/crusher_trophy/proc/effect_desc() + return "errors" + +/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user) + if(istype(A, /obj/item/weapon/twohanded/required/mining_hammer)) + add_to(A, user) + else + ..() + +/obj/item/crusher_trophy/proc/add_to(obj/item/weapon/twohanded/required/mining_hammer/H, mob/living/user) + for(var/t in H.trophies) + var/obj/item/crusher_trophy/T = t + if(istype(T, denied_type) || istype(src, T.denied_type)) + to_chat(user, "You can't seem to attach [src] to [H]. Maybe remove a few trophies?") + return FALSE + H.trophies += src + forceMove(H) + to_chat(user, "You attach [src] to [H].") + return TRUE + +/obj/item/crusher_trophy/proc/remove_from(obj/item/weapon/twohanded/required/mining_hammer/H, mob/living/user) + forceMove(get_turf(H)) + H.trophies -= src + return TRUE + +/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user +/obj/item/crusher_trophy/proc/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user +/obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before +/obj/item/crusher_trophy/proc/on_mark_detonation(mob/living/target, mob/living/user) //the target and the user + +//ash drake +/obj/item/crusher_trophy/tail_spike + desc = "A spike taken from a ash drake's tail." + denied_type = /obj/item/crusher_trophy/tail_spike + bonus_value = 5 + +/obj/item/crusher_trophy/tail_spike/effect_desc() + return "mark detonation to do [bonus_value] damage to nearby creatures and push them back" + +/obj/item/crusher_trophy/tail_spike/on_mark_detonation(mob/living/target, mob/living/user) + for(var/mob/living/L in oview(2, user)) + if(L.stat == DEAD) + continue + playsound(L, 'sound/magic/Fireball.ogg', 20, 1) + new /obj/effect/temp_visual/fire(L.loc) + addtimer(CALLBACK(src, .proc/pushback, L, user), 1) //no free backstabs, we push AFTER module stuff is done + L.adjustBruteLoss(bonus_value) + +/obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) + if(!target.anchored || ismegafauna(target)) //megafauna will always be pushed + step(target, get_dir(user, target)) + +//bubblegum +/obj/item/crusher_trophy/demon_claws + name = "demon claws" + desc = "A set of blood-drenched claws from a massive demon's hand." + icon_state = "demon_claws" + gender = PLURAL + denied_type = /obj/item/crusher_trophy/demon_claws + bonus_value = 10 + var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) + +/obj/item/crusher_trophy/demon_claws/effect_desc() + return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1]; this effect is increased by 500% during mark detonation" + +/obj/item/crusher_trophy/demon_claws/add_to(obj/item/weapon/twohanded/required/mining_hammer/H, mob/living/user) + . = ..() + if(.) + H.force += bonus_value * 0.2 + H.force_unwielded += bonus_value * 0.2 + H.force_wielded += bonus_value * 0.2 + +/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/weapon/twohanded/required/mining_hammer/H, mob/living/user) + . = ..() + if(.) + H.force -= bonus_value * 0.2 + H.force_unwielded -= bonus_value * 0.2 + H.force_wielded -= bonus_value * 0.2 + +/obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user) + user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order) + +/obj/item/crusher_trophy/demon_claws/on_mark_detonation(mob/living/target, mob/living/user) + target.adjustBruteLoss(bonus_value * 0.8) + user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order) + +//colossus +/obj/item/crusher_trophy/blaster_tubes + name = "blaster tubes" + desc = "The blaster tubes from a colossus's arm." + icon_state = "blaster_tubes" + gender = PLURAL + denied_type = /obj/item/crusher_trophy/blaster_tubes + bonus_value = 15 + var/deadly_shot = FALSE + +/obj/item/crusher_trophy/blaster_tubes/effect_desc() + return "mark detonation to make the next destabilizer shot deal [bonus_value] damage but move slower" + +/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) + if(deadly_shot) + marker.name = "deadly [marker.name]" + marker.icon_state = "chronobolt" + marker.damage = bonus_value + marker.nodamage = FALSE + marker.speed = 2 + deadly_shot = FALSE + +/obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) + deadly_shot = TRUE + addtimer(CALLBACK(src, .proc/reset_deadly_shot), 300, TIMER_OVERRIDE) + +/obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot() + deadly_shot = FALSE + +//hierophant +/obj/item/crusher_trophy/vortex_talisman + name = "vortex talisman" + desc = "A glowing trinket that was originally the Hierophant's beacon." + icon_state = "vortex_talisman" + denied_type = /obj/item/crusher_trophy/vortex_talisman + +/obj/item/crusher_trophy/vortex_talisman/effect_desc() + return "mark detonation to create a barrier you can pass" + +/obj/item/crusher_trophy/vortex_talisman/on_mark_detonation(mob/living/target, mob/living/user) + var/turf/T = get_turf(user) + new /obj/effect/temp_visual/hierophant/wall/crusher(T, user) //a wall only you can pass! + var/turf/otherT = get_step(T, turn(user.dir, 90)) + if(otherT) + new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) + otherT = get_step(T, turn(user.dir, -90)) + if(otherT) + new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) + +/obj/effect/temp_visual/hierophant/wall/crusher + duration = 75 diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 8a3f4ee633..bcf1e872e5 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -488,6 +488,13 @@ if(4) new /obj/item/weapon/dragons_blood(src) +/obj/structure/closet/crate/necropolis/dragon/crusher + name = "firey dragon chest" + +/obj/structure/closet/crate/necropolis/dragon/crusher/PopulateContents() + ..() + new /obj/item/crusher_trophy/tail_spike(src) + /obj/item/weapon/melee/ghost_sword name = "\improper spectral blade" desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly." @@ -700,7 +707,26 @@ icon_state = "lavastaff_warn" duration = 50 -///Bubblegum +//Bubblegum +/obj/structure/closet/crate/necropolis/bubblegum + name = "bubblegum chest" + +/obj/structure/closet/crate/necropolis/bubblegum/PopulateContents() + var/loot = rand(1,3) + switch(loot) + if(1) + new /obj/item/mayhem(src) + if(2) + new /obj/item/blood_contract(src) + if(3) + new /obj/item/weapon/gun/magic/staff/spellblade(src) + +/obj/structure/closet/crate/necropolis/bubblegum/crusher + name = "bloody bubblegum chest" + +/obj/structure/closet/crate/necropolis/bubblegum/crusher/PopulateContents() + ..() + new /obj/item/crusher_trophy/demon_claws(src) /obj/item/mayhem name = "mayhem in a bottle" @@ -716,19 +742,6 @@ playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) qdel(src) -/obj/structure/closet/crate/necropolis/bubblegum - name = "bubblegum chest" - -/obj/structure/closet/crate/necropolis/bubblegum/PopulateContents() - var/loot = rand(1,3) - switch(loot) - if(1) - new /obj/item/mayhem(src) - if(2) - new /obj/item/blood_contract(src) - if(3) - new /obj/item/weapon/gun/magic/staff/spellblade(src) - /obj/item/blood_contract name = "blood contract" icon = 'icons/obj/wizard.dmi' @@ -773,6 +786,23 @@ qdel(src) +//Colossus +/obj/structure/closet/crate/necropolis/colossus + name = "colossus chest" + +/obj/structure/closet/crate/necropolis/colossus/PopulateContents() + var/list/choices = subtypesof(/obj/machinery/anomalous_crystal) + var/random_crystal = pick(choices) + new random_crystal(src) + new /obj/item/organ/vocal_cords/colossus(src) + +/obj/structure/closet/crate/necropolis/colossus/crusher + name = "angelic colossus chest" + +/obj/structure/closet/crate/necropolis/colossus/crusher/PopulateContents() + ..() + new /obj/item/crusher_trophy/blaster_tubes(src) + //Hierophant /obj/item/weapon/hierophant_club name = "hierophant club" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 2645ebcef7..6a7bff2ed2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -44,6 +44,7 @@ Difficulty: Hard ranged = 1 pixel_x = -32 del_on_death = 1 + crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher) loot = list(/obj/structure/closet/crate/necropolis/bubblegum) blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME var/charging = FALSE 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 fd42582317..e77702ac19 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -46,7 +46,8 @@ Difficulty: Very Hard del_on_death = 1 medal_type = MEDAL_PREFIX score_type = COLOSSUS_SCORE - loot = list(/obj/effect/spawner/lootdrop/anomalous_crystal, /obj/item/organ/vocal_cords/colossus) + crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) + loot = list(/obj/structure/closet/crate/necropolis/colossus) butcher_results = list(/obj/item/weapon/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) deathmessage = "disintegrates, leaving a glowing core in its wake." death_sound = 'sound/magic/demon_dies.ogg' @@ -444,13 +445,6 @@ Difficulty: Very Hard /obj/machinery/anomalous_crystal/ex_act() ActivationReaction(null, ACTIVATE_BOMB) -/obj/effect/spawner/lootdrop/anomalous_crystal - name = "anomalous crystal spawner" - -/obj/effect/spawner/lootdrop/anomalous_crystal/Initialize() - loot = subtypesof(/obj/machinery/anomalous_crystal) - . = ..() - /obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing observer_desc = "This crystal strips and equips its targets as clowns." possible_methods = list(ACTIVATE_MOB_BUMP, ACTIVATE_SPEECH) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 1c1fc8fb9e..d8b6f9039a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -51,6 +51,7 @@ Difficulty: Medium move_to_delay = 10 ranged = 1 pixel_x = -16 + crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/weapon/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) var/swooping = NONE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index fad0ab17df..6d44df978e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -78,6 +78,9 @@ Difficulty: Hard internal = new/obj/item/device/gps/internal/hierophant(src) spawned_beacon = new(loc) +/mob/living/simple_animal/hostile/megafauna/hierophant/spawn_crusher_loot() + new /obj/item/crusher_trophy/vortex_talisman(get_turf(spawned_beacon)) + /mob/living/simple_animal/hostile/megafauna/hierophant/Life() . = ..() if(. && spawned_beacon && !QDELETED(spawned_beacon) && !client) @@ -461,6 +464,12 @@ Difficulty: Hard return ..() /obj/effect/temp_visual/hierophant/wall/CanPass(atom/movable/mover, turf/target, height = 0) + if(mover == caster.pulledby) + return TRUE + if(istype(mover, /obj/item/projectile)) + var/obj/item/projectile/P = mover + if(P.firer == caster) + return TRUE if(mover == caster) return TRUE return FALSE @@ -589,6 +598,8 @@ Difficulty: Hard do_damage(get_turf(src)) /obj/effect/temp_visual/hierophant/blast/proc/do_damage(turf/T) + if(!damage) + return for(var/mob/living/L in T.contents - hit_things) //find and damage mobs... hit_things += L if((friendly_fire_check && caster && caster.faction_check_mob(L)) || L.stat == DEAD) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 9b8e037d61..ec72989474 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -34,6 +34,7 @@ /obj/structure/barricade, /obj/machinery/field, /obj/machinery/power/emitter) + var/list/crusher_loot var/medal_type = MEDAL_PREFIX var/score_type = BOSS_SCORE var/elimination = 0 @@ -44,6 +45,10 @@ layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise mouse_opacity = 2 // Easier to click on in melee, they're giant targets anyway +/mob/living/simple_animal/hostile/megafauna/Initialize(mapload) + . = ..() + apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + /mob/living/simple_animal/hostile/megafauna/Destroy() QDEL_NULL(internal) . = ..() @@ -52,12 +57,19 @@ if(health > 0) return else + var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + if(C && crusher_loot) + if(C.total_damage >= maxHealth * 0.60) //if you do at least 60% of its health with the crusher, you'll get the item + spawn_crusher_loot() if(!admin_spawned) SSblackbox.set_details("megafauna_kills","[initial(name)]") if(!elimination) //used so the achievment only occurs for the last legion to die. grant_achievement(medal_type,score_type) ..() +/mob/living/simple_animal/hostile/megafauna/proc/spawn_crusher_loot() + loot = crusher_loot + /mob/living/simple_animal/hostile/megafauna/gib() if(health > 0) return diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi index d19bc538563341f897cc62ab60e18d01950575a7..41c1ba56cd3dfc6f328323578ad8973ddfc7c3d9 100644 GIT binary patch literal 17595 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 Date: Sat, 27 May 2017 20:56:20 -0500 Subject: [PATCH 008/215] Custom emotes no longer replace the pronouns --- code/datums/emotes.dm | 9 +++++++++ code/datums/emotes.dm.rej | 10 ++++++++++ code/modules/mob/living/emote.dm | 3 +++ 3 files changed, 22 insertions(+) create mode 100644 code/datums/emotes.dm.rej diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 9f2753dfee..47f3ccbe4f 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -61,6 +61,15 @@ user.visible_message(msg) log_emote("[key_name(user)] : [msg]") +/datum/emote/proc/replace_pronoun(mob/user, message) + if(findtext(message, "their")) + message = replacetext(message, "their", user.p_their()) + if(findtext(message, "them")) + message = replacetext(message, "them", user.p_them()) + if(findtext(message, "%s")) + message = replacetext(message, "%s", user.p_s()) + return message + /datum/emote/proc/select_message_type(mob/user) . = message if(!muzzle_ignore && user.is_muzzled() && emote_type == EMOTE_AUDIBLE) diff --git a/code/datums/emotes.dm.rej b/code/datums/emotes.dm.rej new file mode 100644 index 0000000000..b0f0f50adc --- /dev/null +++ b/code/datums/emotes.dm.rej @@ -0,0 +1,10 @@ +diff a/code/datums/emotes.dm b/code/datums/emotes.dm (rejected hunks) +@@ -35,6 +35,8 @@ + if(params && message_param) + msg = select_param(user, params) + ++ msg = replace_pronoun(user, msg) ++ + var/mob/living/L = user + for(var/obj/item/weapon/implant/I in L.implants) + I.trigger(key, L) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index cacd433fec..a0aa88779b 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -420,6 +420,9 @@ message = null emote_type = EMOTE_VISIBLE +/datum/emote/living/custom/replace_pronoun(mob/user, message) + return message + /datum/emote/living/help key = "help" From 243148f27ca84205a80402c64d270c27476043ad Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 28 May 2017 16:39:14 -0500 Subject: [PATCH 009/215] [Centcom] Nanotrasen Private Security 2.0 --- _maps/map_files/generic/Centcomm.dmm | 25 ++++++++- code/game/objects/items/cardboard_cutouts.dm | 7 ++- code/modules/awaymissions/corpse.dm | 18 +++++-- code/modules/awaymissions/corpse.dm.rej | 10 ++++ .../hostile/retaliate/spaceman.dm | 48 ++++++++++++++++++ icons/obj/cardboard_cutout.dmi | Bin 13278 -> 16180 bytes 6 files changed, 101 insertions(+), 7 deletions(-) create mode 100644 code/modules/awaymissions/corpse.dm.rej diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index ba62ea2357..8e39228925 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -14897,6 +14897,27 @@ }, /turf/open/floor/mineral/titanium, /area/shuttle/escape) +"Mg" = ( +/obj/item/cardboard_cutout{ + desc = "They seem to be ignoring you... Typical."; + dir = 1; + icon_state = "cutout_ntsec"; + name = "Private Security Officer" + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 1 + }, +/area/centcom/evac) +"Mh" = ( +/obj/item/cardboard_cutout{ + desc = "They seem to be ignoring you... Typical."; + icon_state = "cutout_ntsec"; + name = "Private Security Officer" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/centcom/evac) (1,1,1) = {" aa @@ -65195,7 +65216,7 @@ sv wW xt xQ -xZ +Mg yC yC yU @@ -65454,7 +65475,7 @@ xp xR xZ yC -yC +Mh yV qk aa diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 352a4fb9a7..287b34ec82 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -12,7 +12,7 @@ "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", - "Laughter Demon") + "Laughter Demon", "Private Security Officer") var/pushed_over = FALSE //If the cutout is pushed over and has to be righted var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version @@ -168,6 +168,11 @@ desc = "A cardboard cutout of a laughter demon." icon = 'icons/mob/mob.dmi' icon_state = "bowmon" + if("Private Security Officer") + name = "Private Security Officer" + desc = "A cardboard cutout of a private security officer." + icon = 'icons/mob/mob.dmi' + icon_state = "cutout_ntsec" return 1 /obj/item/cardboard_cutout/setDir(newdir) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 6100b296ed..e8f4b07c44 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -388,7 +388,7 @@ glasses = /obj/item/clothing/glasses/sunglasses has_id = 1 id_job = "Bridge Officer" - id_access_list = list(GLOB.access_cent_captain) + id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) /obj/effect/mob_spawn/human/commander name = "Commander" @@ -403,7 +403,7 @@ pocket1 = /obj/item/weapon/lighter has_id = 1 id_job = "Commander" - id_access_list = list(GLOB.access_cent_captain) + id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) /obj/effect/mob_spawn/human/nanotrasensoldier name = "Nanotrasen Private Security Officer" @@ -415,8 +415,8 @@ helmet = /obj/item/clothing/head/helmet/swat/nanotrasen back = /obj/item/weapon/storage/backpack/security has_id = 1 - id_job = "Private Security Force" - id_access_list = list(GLOB.access_cent_specops) + id_job = "Private Security Officer" + id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) /obj/effect/mob_spawn/human/commander/alive death = FALSE @@ -427,6 +427,16 @@ icon_state = "sleeper" flavour_text = "You are a Nanotrasen Commander!" +/obj/effect/mob_spawn/human/nanotrasensoldier/alive + death = FALSE + roundstart = FALSE + mob_name = "Private Security Officer" + name = "sleeper" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + faction = "nanotrasenprivate" + flavour_text = "You are a Nanotrasen Private Security Officer!" + /////////////////Spooky Undead////////////////////// /obj/effect/mob_spawn/human/skeleton diff --git a/code/modules/awaymissions/corpse.dm.rej b/code/modules/awaymissions/corpse.dm.rej new file mode 100644 index 0000000000..92f93e1c1c --- /dev/null +++ b/code/modules/awaymissions/corpse.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm (rejected hunks) +@@ -372,7 +372,7 @@ + /obj/effect/mob_spawn/human/nanotrasensoldier + name = "Nanotrasen Private Security Officer" + id_job = "Private Security Force" +- id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) ++ id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage, GLOB.access_security) + outfit = /datum/outfit/nanotrasensoldiercorpse + + /datum/outfit/nanotrasensoldiercorpse diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index 563c5a3d03..7dd53541dd 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -23,3 +23,51 @@ environment_smash = ENVIRONMENT_SMASH_NONE del_on_death = 0 +/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace + name = "Nanotrasen Private Security Officer" + desc = "An officer part of Nanotrasen's private security force." + icon = 'icons/mob/simple_human.dmi' + icon_state = "nanotrasen" + icon_living = "nanotrasen" + icon_dead = null + icon_gib = "syndicate_gib" + turns_per_move = 5 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "hits" + speed = 0 + stat_attack = 1 + robust_searching = 1 + vision_range = 3 + maxHealth = 100 + health = 100 + harm_intent_damage = 5 + melee_damage_lower = 10 + melee_damage_upper = 15 + attacktext = "punches" + attack_sound = 'sound/weapons/punch1.ogg' + faction = list("nanotrasenprivate") + a_intent = INTENT_HARM + loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 15 + status_flags = CANPUSH + search_objects = 1 + +/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace/Aggro() + ..() + summon_backup(15) + say("411 in progress, requesting backup!") + +/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace/ranged + icon_state = "nanotrasenrangedsmg" + icon_living = "nanotrasenrangedsmg" + vision_range = 9 + rapid = 1 + ranged = 1 + retreat_distance = 3 + minimum_distance = 5 + casingtype = /obj/item/ammo_casing/c46x30mm + projectilesound = 'sound/weapons/Gunshot_smg.ogg' + loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550, + /obj/effect/mob_spawn/human/corpse/nanotrasensoldier) \ No newline at end of file diff --git a/icons/obj/cardboard_cutout.dmi b/icons/obj/cardboard_cutout.dmi index a329c00555e72face7d36e229a528ff1f6706390..fb41575a8dadd80b18cc3192a681233473ac4987 100644 GIT binary patch literal 16180 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 f_0 Date: Mon, 29 May 2017 01:17:13 -0500 Subject: [PATCH 010/215] Splits mining_mobs.dm into separate files --- .../game/objects/effects/spawners/lootdrop.dm | 2 +- .../objects/items/weapons/storage/belt.dm.rej | 10 + code/modules/cargo/exports/organs.dm | 6 +- code/modules/clothing/suits/cloaks.dm | 2 +- .../recipes/tablecraft/recipes_misc.dm | 2 +- code/modules/mining/equipment/goliath_hide.dm | 39 + .../mining/equipment/regenerative_core.dm | 128 ++ code/modules/mining/equipment/vendor_items.dm | 19 - .../hostile/megafauna/bubblegum.dm | 11 +- .../simple_animal/hostile/mining_mobs.dm | 1143 ----------------- .../hostile/mining_mobs/basilisk.dm | 80 ++ .../hostile/mining_mobs/goldgrub.dm | 79 ++ .../hostile/mining_mobs/goliath.dm | 130 ++ .../hostile/mining_mobs/gutlunch.dm | 113 ++ .../hostile/mining_mobs/hivelord.dm | 216 ++++ .../hostile/mining_mobs/mining_mobs.dm | 59 + .../hostile/mining_mobs/necropolis_tendril.dm | 101 ++ .../simple_animal/hostile/wumborian_fugu.dm | 127 ++ code/modules/paperwork/contract.dm | 2 +- tgstation.dme | 9 +- tgstation.dme.rej | 15 + 21 files changed, 1120 insertions(+), 1173 deletions(-) create mode 100644 code/game/objects/items/weapons/storage/belt.dm.rej create mode 100644 code/modules/mining/equipment/goliath_hide.dm create mode 100644 code/modules/mining/equipment/regenerative_core.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm create mode 100644 tgstation.dme.rej diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 6403faa380..d6a4d33c7c 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -85,7 +85,7 @@ /obj/item/organ/heart/gland/spiderman = 5, /obj/item/organ/heart/gland/ventcrawling = 1, /obj/item/organ/body_egg/alien_embryo = 1, - /obj/item/organ/hivelord_core = 2) + /obj/item/organ/regenerative_core = 2) lootcount = 3 /obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner diff --git a/code/game/objects/items/weapons/storage/belt.dm.rej b/code/game/objects/items/weapons/storage/belt.dm.rej new file mode 100644 index 0000000000..7057ccddec --- /dev/null +++ b/code/game/objects/items/weapons/storage/belt.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm (rejected hunks) +@@ -200,7 +200,7 @@ + /obj/item/weapon/storage/pill_bottle, + /obj/item/weapon/ore, + /obj/item/weapon/reagent_containers/food/drinks, +- /obj/item/organ/hivelord_core, ++ /obj/item/organ/regenerative_core, + /obj/item/device/wormhole_jaunter, + /obj/item/weapon/storage/bag/plants, + /obj/item/stack/marker_beacon diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm index 39c0051a4e..858914f0fd 100644 --- a/code/modules/cargo/exports/organs.dm +++ b/code/modules/cargo/exports/organs.dm @@ -66,10 +66,10 @@ /datum/export/organ/hivelord cost = 1500 - unit_name = "active hivelord core" - export_types = list(/obj/item/organ/hivelord_core) + unit_name = "active regenerative core" + export_types = list(/obj/item/organ/regenerative_core) -/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/hivelord_core/C) +/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/regenerative_core/C) if(C.inert) return ..() / 3 if(C.preserved) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index e90c750d12..bcf2e49426 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -60,7 +60,7 @@ name = "goliath cloak" icon_state = "goliath_cloak" desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." - allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/bonespear, /obj/item/organ/hivelord_core/legion, /obj/item/weapon/kitchen/knife/combat/bone, /obj/item/weapon/kitchen/knife/combat/survival) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear, /obj/item/weapon/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/weapon/kitchen/knife/combat/bone, /obj/item/weapon/kitchen/knife/combat/survival) armor = list(melee = 35, bullet = 10, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 60, acid = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath body_parts_covered = CHEST|GROIN|ARMS diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index fff76d630f..e07d0c29f8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -264,7 +264,7 @@ time = 40 reqs = list( /obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath = 1, - /obj/item/organ/hivelord_core/legion = 1, + /obj/item/organ/regenerative_core/legion = 1, /datum/reagent/consumable/ketchup = 2, /datum/reagent/consumable/capsaicin = 2 ) diff --git a/code/modules/mining/equipment/goliath_hide.dm b/code/modules/mining/equipment/goliath_hide.dm new file mode 100644 index 0000000000..e76a053732 --- /dev/null +++ b/code/modules/mining/equipment/goliath_hide.dm @@ -0,0 +1,39 @@ + +/obj/item/stack/sheet/animalhide/goliath_hide + name = "goliath hide plates" + desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." + icon = 'icons/obj/mining.dmi' + icon_state = "goliath_hide" + flags = NOBLUDGEON + w_class = WEIGHT_CLASS_NORMAL + layer = MOB_LAYER + +/obj/item/stack/sheet/animalhide/goliath_hide/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag) + if(istype(target, /obj/item/clothing/suit/space/hardsuit/mining) || istype(target, /obj/item/clothing/head/helmet/space/hardsuit/mining) || istype(target, /obj/item/clothing/suit/hooded/explorer) || istype(target, /obj/item/clothing/head/hooded/explorer)) + var/obj/item/clothing/C = target + var/list/current_armor = C.armor + if(current_armor.["melee"] < 60) + current_armor.["melee"] = min(current_armor.["melee"] + 10, 60) + to_chat(user, "You strengthen [target], improving its resistance against melee attacks.") + use(1) + else + to_chat(user, "You can't improve [C] any further!") + return + if(istype(target, /obj/mecha/working/ripley)) + var/obj/mecha/working/ripley/D = target + if(D.hides < 3) + D.hides++ + D.armor["melee"] = min(D.armor["melee"] + 10, 70) + D.armor["bullet"] = min(D.armor["bullet"] + 5, 50) + D.armor["laser"] = min(D.armor["laser"] + 5, 50) + to_chat(user, "You strengthen [target], improving its resistance against melee attacks.") + D.update_icon() + if(D.hides == 3) + D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - its pilot must be an experienced monster hunter." + else + D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates." + qdel(src) + else + to_chat(user, "You can't improve [D] any further!") + return diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm new file mode 100644 index 0000000000..6843379164 --- /dev/null +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -0,0 +1,128 @@ +/*********************Hivelord stabilizer****************/ +/obj/item/weapon/hivelordstabilizer + name = "stabilizing serum" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle19" + desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely." + w_class = WEIGHT_CLASS_TINY + origin_tech = "biotech=3" + +/obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user) + var/obj/item/organ/regenerative_core/C = M + if(!istype(C, /obj/item/organ/regenerative_core)) + to_chat(user, "The stabilizer only works on certain types of monster organs, generally regenerative in nature.") + return ..() + + C.preserved() + to_chat(user, "You inject the [M] with the stabilizer. It will no longer go inert.") + qdel(src) + +/************************Hivelord core*******************/ +/obj/item/organ/regenerative_core + name = "regenerative core" + desc = "All that remains of a hivelord. It can be used to heal completely, but it will rapidly decay into uselessness." + icon_state = "roro core 2" + flags = NOBLUDGEON + slot = "hivecore" + force = 0 + actions_types = list(/datum/action/item_action/organ_action/use) + var/inert = 0 + var/preserved = 0 + +/obj/item/organ/regenerative_core/Initialize() + . = ..() + addtimer(CALLBACK(src, .proc/inert_check), 2400) + +/obj/item/organ/regenerative_core/proc/inert_check() + if(!preserved) + go_inert() + +/obj/item/organ/regenerative_core/proc/preserved(implanted = 0) + inert = FALSE + preserved = TRUE + update_icon() + desc = "All that remains of a hivelord. It is preserved, allowing you to use it to heal completely without danger of decay." + if(implanted) + SSblackbox.add_details("hivelord_core", "[type]|implanted") + else + SSblackbox.add_details("hivelord_core", "[type]|stabilizer") + +/obj/item/organ/regenerative_core/proc/go_inert() + inert = TRUE + name = "decayed regenerative core" + desc = "All that remains of a hivelord. It has decayed, and is completely useless." + SSblackbox.add_details("hivelord_core", "[type]|inert") + update_icon() + +/obj/item/organ/regenerative_core/ui_action_click() + if(inert) + to_chat(owner, "[src] breaks down as it tries to activate.") + else + owner.revive(full_heal = 1) + qdel(src) + +/obj/item/organ/regenerative_core/on_life() + ..() + if(owner.health < HEALTH_THRESHOLD_CRIT) + ui_action_click() + +/obj/item/organ/regenerative_core/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag && ishuman(target)) + var/mob/living/carbon/human/H = target + if(inert) + to_chat(user, "[src] has decayed and can no longer be used to heal.") + return + else + if(H.stat == DEAD) + to_chat(user, "[src] are useless on the dead.") + return + if(H != user) + H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") + SSblackbox.add_details("hivelord_core","[src.type]|used|other") + else + to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") + SSblackbox.add_details("hivelord_core","[src.type]|used|self") + H.revive(full_heal = 1) + qdel(src) + ..() + +/obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) + . = ..() + if(!preserved && !inert) + preserved(TRUE) + owner.visible_message("[src] stabilizes as it's inserted.") + +/obj/item/organ/regenerative_core/Remove(mob/living/carbon/M, special = 0) + if(!inert && !special) + owner.visible_message("[src] rapidly decays as it's removed.") + go_inert() + return ..() + +/obj/item/organ/regenerative_core/prepare_eat() + return null + +/*************************Legion core********************/ +/obj/item/organ/regenerative_core/legion + desc = "A strange rock that crackles with power. It can be used to heal completely, but it will rapidly decay into uselessness." + icon_state = "legion_soul" + +/obj/item/organ/regenerative_core/legion/Initialize() + . = ..() + update_icon() + +/obj/item/organ/regenerative_core/update_icon() + icon_state = inert ? "legion_soul_inert" : "legion_soul" + cut_overlays() + if(!inert && !preserved) + add_overlay("legion_soul_crackle") + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/organ/regenerative_core/legion/go_inert() + ..() + desc = "[src] has become inert. It has decayed, and is completely useless." + +/obj/item/organ/regenerative_core/legion/preserved(implanted = 0) + ..() + desc = "[src] has been stabilized. It is preserved, allowing you to use it to heal completely without danger of decay." diff --git a/code/modules/mining/equipment/vendor_items.dm b/code/modules/mining/equipment/vendor_items.dm index 4ff83ea21f..8868d4655b 100644 --- a/code/modules/mining/equipment/vendor_items.dm +++ b/code/modules/mining/equipment/vendor_items.dm @@ -12,22 +12,3 @@ /obj/item/clothing/mask/facehugger/toy/Die() return - -/*********************Hivelord stabilizer****************/ -/obj/item/weapon/hivelordstabilizer - name = "stabilizing serum" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle19" - desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely." - w_class = WEIGHT_CLASS_TINY - origin_tech = "biotech=3" - -/obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user) - var/obj/item/organ/hivelord_core/C = M - if(!istype(C, /obj/item/organ/hivelord_core)) - to_chat(user, "The stabilizer only works on certain types of monster organs, generally regenerative in nature.") - return ..() - - C.preserved() - to_chat(user, "You inject the [M] with the stabilizer. It will no longer go inert.") - qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 2645ebcef7..b64356fc6a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -380,17 +380,22 @@ Difficulty: Hard break max_amount-- var/obj/effect/decal/cleanable/blood/B = H - new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter(B.loc) + new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter(B.loc) return max_amount -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter name = "slaughterling" desc = "Though not yet strong enough to create a true physical form, it's nonetheless determined to murder you." + icon_state = "bloodbrood" + icon_living = "bloodbrood" + icon_aggro = "bloodbrood" + attacktext = "pierces" + color = "#C80000" density = 0 faction = list("mining", "boss") weather_immunities = list("lava","ash") -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/slaughter/CanPass(atom/movable/mover, turf/target, height = 0) +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter/CanPass(atom/movable/mover, turf/target, height = 0) if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) return 1 return 0 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm deleted file mode 100644 index c2bd44d8ef..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ /dev/null @@ -1,1143 +0,0 @@ -/mob/living/simple_animal/hostile/asteroid - vision_range = 2 - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - faction = list("mining") - weather_immunities = list("lava","ash") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_WALLS - minbodytemp = 0 - maxbodytemp = INFINITY - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" - status_flags = 0 - a_intent = INTENT_HARM - var/throw_message = "bounces off of" - var/icon_aggro = null // for swapping to when we get aggressive - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - mob_size = MOB_SIZE_LARGE - -/mob/living/simple_animal/hostile/asteroid/Aggro() - ..() - if(vision_range != aggro_vision_range) - icon_state = icon_aggro - -/mob/living/simple_animal/hostile/asteroid/LoseAggro() - ..() - if(stat == DEAD) - return - icon_state = icon_living - -/mob/living/simple_animal/hostile/asteroid/bullet_act(obj/item/projectile/P)//Reduces damage from most projectiles to curb off-screen kills - if(!stat) - Aggro() - if(P.damage < 30 && P.damage_type != BRUTE) - P.damage = (P.damage / 3) - visible_message("[P] has a reduced effect on [src]!") - ..() - -/mob/living/simple_animal/hostile/asteroid/hitby(atom/movable/AM)//No floor tiling them to death, wiseguy - if(istype(AM, /obj/item)) - var/obj/item/T = AM - if(!stat) - Aggro() - if(T.throwforce <= 20) - visible_message("The [T.name] [src.throw_message] [src.name]!") - return - ..() - -/mob/living/simple_animal/hostile/asteroid/death(gibbed) - SSblackbox.add_details("mobs_killed_mining","[src.type]") - ..(gibbed) - -/mob/living/simple_animal/hostile/asteroid/basilisk - name = "basilisk" - desc = "A territorial beast, covered in a thick shell that absorbs energy. Its stare causes victims to freeze from the inside." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Basilisk" - icon_living = "Basilisk" - icon_aggro = "Basilisk_alert" - icon_dead = "Basilisk_dead" - icon_gib = "syndicate_gib" - move_to_delay = 20 - projectiletype = /obj/item/projectile/temp/basilisk - projectilesound = 'sound/weapons/pierce.ogg' - ranged = 1 - ranged_message = "stares" - ranged_cooldown_time = 30 - throw_message = "does nothing against the hard shell of" - vision_range = 2 - speed = 3 - maxHealth = 200 - health = 200 - harm_intent_damage = 5 - obj_damage = 60 - melee_damage_lower = 12 - melee_damage_upper = 12 - attacktext = "bites into" - a_intent = INTENT_HARM - speak_emote = list("chitters") - attack_sound = 'sound/weapons/bladeslice.ogg' - aggro_vision_range = 9 - idle_vision_range = 2 - turns_per_move = 5 - loot = list(/obj/item/weapon/ore/diamond{layer = ABOVE_MOB_LAYER}, - /obj/item/weapon/ore/diamond{layer = ABOVE_MOB_LAYER}) - -/obj/item/projectile/temp/basilisk - name = "freezing blast" - icon_state = "ice_2" - damage = 0 - damage_type = BURN - nodamage = 1 - flag = "energy" - temperature = 50 - -/mob/living/simple_animal/hostile/asteroid/basilisk/GiveTarget(new_target) - if(..()) //we have a target - if(isliving(target) && !target.Adjacent(targets_from) && ranged_cooldown <= world.time)//No more being shot at point blank or spammed with RNG beams - OpenFire(target) - -/mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity, target) - switch(severity) - if(1) - gib() - if(2) - adjustBruteLoss(140) - if(3) - adjustBruteLoss(110) - -/mob/living/simple_animal/hostile/asteroid/goldgrub - name = "goldgrub" - desc = "A worm that grows fat from eating everything in its sight. Seems to enjoy precious metals and other shiny things, hence the name." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Goldgrub" - icon_living = "Goldgrub" - icon_aggro = "Goldgrub_alert" - icon_dead = "Goldgrub_dead" - icon_gib = "syndicate_gib" - vision_range = 2 - aggro_vision_range = 9 - idle_vision_range = 2 - move_to_delay = 5 - friendly = "harmlessly rolls into" - maxHealth = 45 - health = 45 - harm_intent_damage = 5 - melee_damage_lower = 0 - melee_damage_upper = 0 - attacktext = "barrels into" - attack_sound = 'sound/weapons/punch1.ogg' - a_intent = INTENT_HELP - speak_emote = list("screeches") - throw_message = "sinks in slowly, before being pushed out of " - deathmessage = "spits up the contents of its stomach before dying!" - status_flags = CANPUSH - search_objects = 1 - wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, - /obj/item/weapon/ore/uranium) - - var/chase_time = 100 - var/will_burrow = TRUE - -/mob/living/simple_animal/hostile/asteroid/goldgrub/Initialize() - ..() - var/i = rand(1,3) - while(i) - loot += pick(/obj/item/weapon/ore/silver, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/diamond) - i-- - -/mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(new_target) - target = new_target - if(target != null) - if(istype(target, /obj/item/weapon/ore) && loot.len < 10) - visible_message("The [src.name] looks at [target.name] with hungry eyes.") - else if(isliving(target)) - Aggro() - visible_message("The [src.name] tries to flee from [target.name]!") - retreat_distance = 10 - minimum_distance = 10 - if(will_burrow) - addtimer(CALLBACK(src, .proc/Burrow), chase_time) - -/mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() - if(istype(target, /obj/item/weapon/ore)) - EatOre(target) - return - return ..() - -/mob/living/simple_animal/hostile/asteroid/goldgrub/proc/EatOre(atom/targeted_ore) - for(var/obj/item/weapon/ore/O in targeted_ore.loc) - if(loot.len < 10) - loot += O.type - qdel(O) - visible_message("The ore was swallowed whole!") - -/mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time - if(!stat) - visible_message("The [src.name] buries into the ground, vanishing from sight!") - qdel(src) - -/mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/item/projectile/P) - visible_message("The [P.name] was repelled by [src.name]'s girth!") - return - -/mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - idle_vision_range = 9 - . = ..() - -/mob/living/simple_animal/hostile/asteroid/hivelord - name = "hivelord" - desc = "A truly alien creature, it is a mass of unknown organic material, constantly fluctuating. When attacking, pieces of it split off and attack in tandem with the original." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Hivelord" - icon_living = "Hivelord" - icon_aggro = "Hivelord_alert" - icon_dead = "Hivelord_dead" - icon_gib = "syndicate_gib" - mouse_opacity = 2 - move_to_delay = 14 - ranged = 1 - vision_range = 5 - aggro_vision_range = 9 - idle_vision_range = 5 - speed = 3 - maxHealth = 75 - health = 75 - harm_intent_damage = 5 - melee_damage_lower = 0 - melee_damage_upper = 0 - attacktext = "lashes out at" - speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "falls right through the strange body of the" - ranged_cooldown = 0 - ranged_cooldown_time = 20 - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - retreat_distance = 3 - minimum_distance = 3 - pass_flags = PASSTABLE - loot = list(/obj/item/organ/hivelord_core) - var/brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood - -/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target) - if(world.time >= ranged_cooldown) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc) - A.admin_spawned = admin_spawned - A.GiveTarget(target) - A.friends = friends - A.faction = faction.Copy() - ranged_cooldown = world.time + ranged_cooldown_time - -/mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget() - OpenFire() - return TRUE - -/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) - mouse_opacity = 1 - ..(gibbed) - -/obj/item/organ/hivelord_core - name = "hivelord remains" - desc = "All that remains of a hivelord, it seems to be what allows it to break pieces of itself off without being hurt... its healing properties will soon become inert if not used quickly." - icon_state = "roro core 2" - flags = NOBLUDGEON - slot = "hivecore" - force = 0 - actions_types = list(/datum/action/item_action/organ_action/use) - var/inert = 0 - var/preserved = 0 - -/obj/item/organ/hivelord_core/Initialize() - ..() - addtimer(CALLBACK(src, .proc/inert_check), 2400) - -/obj/item/organ/hivelord_core/proc/inert_check() - if(!preserved) - go_inert() - -/obj/item/organ/hivelord_core/proc/preserved(implanted = 0) - inert = FALSE - preserved = TRUE - update_icon() - - if(implanted) - SSblackbox.add_details("hivelord_core", "[type]|implanted") - else - SSblackbox.add_details("hivelord_core", "[type]|stabilizer") - - -/obj/item/organ/hivelord_core/proc/go_inert() - inert = TRUE - desc = "The remains of a hivelord that have become useless, having been left alone too long after being harvested." - SSblackbox.add_details("hivelord_core", "[src.type]|inert") - update_icon() - -/obj/item/organ/hivelord_core/ui_action_click() - if(inert) - to_chat(owner, "[src] breaks down as it tries to activate.") - else - owner.revive(full_heal = 1) - qdel(src) - -/obj/item/organ/hivelord_core/on_life() - ..() - if(owner.health < HEALTH_THRESHOLD_CRIT) - ui_action_click() - -/obj/item/organ/hivelord_core/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag && ishuman(target)) - var/mob/living/carbon/human/H = target - if(inert) - to_chat(user, "[src] has become inert, its healing properties are no more.") - return - else - if(H.stat == DEAD) - to_chat(user, "[src] are useless on the dead.") - return - if(H != user) - H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") - SSblackbox.add_details("hivelord_core","[src.type]|used|other") - else - to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - SSblackbox.add_details("hivelord_core","[src.type]|used|self") - H.revive(full_heal = 1) - qdel(src) - ..() - -/obj/item/organ/hivelord_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) - . = ..() - if(!preserved && !inert) - preserved(TRUE) - owner.visible_message("[src] stabilizes as it's inserted.") - -/obj/item/organ/hivelord_core/Remove(mob/living/carbon/M, special = 0) - if(!inert && !special) - owner.visible_message("[src] goes inert as it's removed.") - go_inert() - return ..() - -/obj/item/organ/hivelord_core/prepare_eat() - return null - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood - name = "hivelord brood" - desc = "A fragment of the original Hivelord, rallying behind its original. One isn't much of a threat, but..." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Hivelordbrood" - icon_living = "Hivelordbrood" - icon_aggro = "Hivelordbrood" - icon_dead = "Hivelordbrood" - icon_gib = "syndicate_gib" - mouse_opacity = 2 - move_to_delay = 1 - friendly = "buzzes near" - vision_range = 10 - speed = 3 - maxHealth = 1 - health = 1 - movement_type = FLYING - harm_intent_damage = 5 - melee_damage_lower = 2 - melee_damage_upper = 2 - attacktext = "slashes" - speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "falls right through the strange body of the" - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - pass_flags = PASSTABLE - del_on_death = 1 - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize() - ..() - addtimer(CALLBACK(src, .proc/death), 100) - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood - name = "blood brood" - desc = "A living string of blood and alien materials." - icon_state = "bloodbrood" - icon_living = "bloodbrood" - icon_aggro = "bloodbrood" - attacktext = "pierces" - color = "#C80000" - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/death() - if(loc) // Splash the turf we are on with blood - reagents.reaction(get_turf(src)) - ..() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/Initialize() - create_reagents(30) - ..() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/AttackingTarget() - . = ..() - if(. && iscarbon(target)) - transfer_reagents(target, 1) - - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/attack_hand(mob/living/carbon/human/M) - if("\ref[M]" in faction) - reabsorb_host(M) - else - return ..() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/attack_paw(mob/living/carbon/monkey/M) - if("\ref[M]" in faction) - reabsorb_host(M) - else - return ..() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/attack_alien(mob/living/carbon/alien/humanoid/M) - if("\ref[M]" in faction) - reabsorb_host(M) - else - return ..() - - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/proc/reabsorb_host(mob/living/carbon/C) - C.visible_message("[src] is reabsorbed by [C]'s body.", \ - "[src] is reabsorbed by your body.") - transfer_reagents(C) - death() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/proc/transfer_reagents(mob/living/carbon/C, volume = 30) - if(!reagents.total_volume) - return - - volume = min(volume, reagents.total_volume) - - var/fraction = min(volume/reagents.total_volume, 1) - reagents.reaction(C, INJECT, fraction) - reagents.trans_to(C, volume) - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/proc/link_host(mob/living/carbon/C) - faction = list("\ref[src]", "\ref[C]") // Hostile to everyone except the host. - C.transfer_blood_to(src, 30) - var/newcolor = mix_color_from_reagents(reagents.reagent_list) - add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) - -/mob/living/simple_animal/hostile/asteroid/goliath - name = "goliath" - desc = "A massive beast that uses long tentacles to ensare its prey, threatening them is not advised under any conditions." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Goliath" - icon_living = "Goliath" - icon_aggro = "Goliath_alert" - icon_dead = "Goliath_dead" - icon_gib = "syndicate_gib" - mouse_opacity = 2 - move_to_delay = 40 - ranged = 1 - ranged_cooldown_time = 120 - friendly = "wails at" - speak_emote = list("bellows") - vision_range = 4 - speed = 3 - maxHealth = 300 - health = 300 - harm_intent_damage = 0 - obj_damage = 100 - melee_damage_lower = 25 - melee_damage_upper = 25 - attacktext = "pulverizes" - attack_sound = 'sound/weapons/punch1.ogg' - throw_message = "does nothing to the rocky hide of the" - aggro_vision_range = 9 - idle_vision_range = 5 - anchored = 1 //Stays anchored until death as to be unpullable - var/pre_attack = 0 - var/pre_attack_icon = "Goliath_preattack" - loot = list(/obj/item/stack/sheet/animalhide/goliath_hide) - -/mob/living/simple_animal/hostile/asteroid/goliath/Life() - ..() - handle_preattack() - -/mob/living/simple_animal/hostile/asteroid/goliath/proc/handle_preattack() - if(ranged_cooldown <= world.time + ranged_cooldown_time*0.25 && !pre_attack) - pre_attack++ - if(!pre_attack || stat || AIStatus == AI_IDLE) - return - icon_state = pre_attack_icon - -/mob/living/simple_animal/hostile/asteroid/goliath/revive(full_heal = 0, admin_revive = 0) - if(..()) - anchored = 1 - . = 1 - -/mob/living/simple_animal/hostile/asteroid/goliath/death(gibbed) - anchored = 0 - ..(gibbed) - -/mob/living/simple_animal/hostile/asteroid/goliath/OpenFire() - var/tturf = get_turf(target) - if(!isturf(tturf)) - return - if(get_dist(src, target) <= 7)//Screen range check, so you can't get tentacle'd offscreen - visible_message("The [src.name] digs its tentacles under [target.name]!") - new /obj/effect/goliath_tentacle/original(tturf) - ranged_cooldown = world.time + ranged_cooldown_time - icon_state = icon_aggro - pre_attack = 0 - -/mob/living/simple_animal/hostile/asteroid/goliath/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - ranged_cooldown -= 10 - handle_preattack() - . = ..() - -/mob/living/simple_animal/hostile/asteroid/goliath/Aggro() - vision_range = aggro_vision_range - handle_preattack() - if(icon_state != icon_aggro) - icon_state = icon_aggro - -/obj/effect/goliath_tentacle - name = "Goliath tentacle" - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Goliath_tentacle" - var/latched = 0 - anchored = 1 - -/obj/effect/goliath_tentacle/New() - var/turftype = get_turf(src) - if(ismineralturf(turftype)) - var/turf/closed/mineral/M = turftype - M.gets_drilled() - addtimer(CALLBACK(src, .proc/Trip), 10) - -/obj/effect/goliath_tentacle/original - -/obj/effect/goliath_tentacle/original/New() - for(var/obj/effect/goliath_tentacle/original/O in loc)//No more GG NO RE from 2+ goliaths simultaneously tentacling you - if(O != src) - qdel(src) - var/list/directions = GLOB.cardinal.Copy() - var/counter - for(counter = 1, counter <= 3, counter++) - var/spawndir = pick(directions) - directions -= spawndir - var/turf/T = get_step(src,spawndir) - new /obj/effect/goliath_tentacle(T) - ..() - -/obj/effect/goliath_tentacle/proc/Trip() - for(var/mob/living/M in src.loc) - visible_message("The [src.name] grabs hold of [M.name]!") - M.Stun(5) - M.adjustBruteLoss(rand(10,15)) - latched = 1 - if(!latched) - qdel(src) - else - QDEL_IN(src, 50) - -/obj/item/stack/sheet/animalhide/goliath_hide - name = "goliath hide plates" - desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." - icon = 'icons/obj/mining.dmi' - icon_state = "goliath_hide" - flags = NOBLUDGEON - w_class = WEIGHT_CLASS_NORMAL - layer = MOB_LAYER - -/obj/item/stack/sheet/animalhide/goliath_hide/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag) - if(istype(target, /obj/item/clothing/suit/space/hardsuit/mining) || istype(target, /obj/item/clothing/head/helmet/space/hardsuit/mining) || istype(target, /obj/item/clothing/suit/hooded/explorer) || istype(target, /obj/item/clothing/head/hooded/explorer)) - var/obj/item/clothing/C = target - var/list/current_armor = C.armor - if(current_armor.["melee"] < 60) - current_armor.["melee"] = min(current_armor.["melee"] + 10, 60) - to_chat(user, "You strengthen [target], improving its resistance against melee attacks.") - use(1) - else - to_chat(user, "You can't improve [C] any further!") - return - if(istype(target, /obj/mecha/working/ripley)) - var/obj/mecha/working/ripley/D = target - if(D.hides < 3) - D.hides++ - D.armor["melee"] = min(D.armor["melee"] + 10, 70) - D.armor["bullet"] = min(D.armor["bullet"] + 5, 50) - D.armor["laser"] = min(D.armor["laser"] + 5, 50) - to_chat(user, "You strengthen [target], improving its resistance against melee attacks.") - D.update_icon() - if(D.hides == 3) - D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - its pilot must be an experienced monster hunter." - else - D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates." - qdel(src) - else - to_chat(user, "You can't improve [D] any further!") - return - - -/mob/living/simple_animal/hostile/asteroid/handle_temperature_damage() - if(bodytemperature < minbodytemp) - adjustBruteLoss(2) - else if(bodytemperature > maxbodytemp) - adjustBruteLoss(20) - -/mob/living/simple_animal/hostile/asteroid/fugu - name = "wumborian fugu" - desc = "The wumborian fugu rapidly increases its body mass in order to ward off its prey. Great care should be taken to avoid it while it's in this state as it is nearly invincible, but it cannot maintain its form forever." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "Fugu" - icon_living = "Fugu" - icon_aggro = "Fugu" - icon_dead = "Fugu_dead" - icon_gib = "syndicate_gib" - mouse_opacity = 2 - move_to_delay = 5 - friendly = "floats near" - speak_emote = list("puffs") - vision_range = 5 - speed = 0 - maxHealth = 50 - health = 50 - harm_intent_damage = 5 - obj_damage = 0 - melee_damage_lower = 0 - melee_damage_upper = 0 - attacktext = "chomps" - attack_sound = 'sound/weapons/punch1.ogg' - throw_message = "is avoided by the" - aggro_vision_range = 9 - idle_vision_range = 5 - mob_size = MOB_SIZE_SMALL - environment_smash = ENVIRONMENT_SMASH_NONE - var/wumbo = 0 - var/inflate_cooldown = 0 - loot = list(/obj/item/asteroid/fugu_gland{layer = ABOVE_MOB_LAYER}) - -/mob/living/simple_animal/hostile/asteroid/fugu/Life() - if(!wumbo) - inflate_cooldown = max((inflate_cooldown - 1), 0) - if(target && AIStatus == AI_ON) - Inflate() - ..() - -/mob/living/simple_animal/hostile/asteroid/fugu/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - if(!forced && wumbo) - return FALSE - . = ..() - -/mob/living/simple_animal/hostile/asteroid/fugu/Aggro() - ..() - Inflate() - -/mob/living/simple_animal/hostile/asteroid/fugu/verb/Inflate() - set name = "Inflate" - set category = "Fugu" - set desc = "Temporarily increases your size, and makes you significantly more dangerous and tough." - if(wumbo) - to_chat(src, "You're already inflated.") - return - if(inflate_cooldown) - to_chat(src, "We need time to gather our strength.") - return - if(buffed) - to_chat(src, "Something is interfering with our growth.") - return - wumbo = 1 - icon_state = "Fugu_big" - obj_damage = 60 - melee_damage_lower = 15 - melee_damage_upper = 20 - harm_intent_damage = 0 - throw_message = "is absorbed by the girth of the" - retreat_distance = null - minimum_distance = 1 - move_to_delay = 6 - transform *= 2 - environment_smash = ENVIRONMENT_SMASH_WALLS - mob_size = MOB_SIZE_LARGE - speed = 1 - addtimer(CALLBACK(src, .proc/Deflate), 100) - -/mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate() - if(wumbo) - walk(src, 0) - wumbo = 0 - icon_state = "Fugu" - obj_damage = 0 - melee_damage_lower = 0 - melee_damage_upper = 0 - harm_intent_damage = 5 - throw_message = "is avoided by the" - retreat_distance = 9 - minimum_distance = 9 - move_to_delay = 2 - transform /= 2 - inflate_cooldown = 4 - environment_smash = ENVIRONMENT_SMASH_NONE - mob_size = MOB_SIZE_SMALL - speed = 0 - -/mob/living/simple_animal/hostile/asteroid/fugu/death(gibbed) - Deflate() - ..(gibbed) - -/obj/item/asteroid/fugu_gland - name = "wumborian fugu gland" - desc = "The key to the wumborian fugu's ability to increase its mass arbitrarily, this disgusting remnant can apply the same effect to other creatures, giving them great strength." - icon = 'icons/obj/surgery.dmi' - icon_state = "fugu_gland" - flags = NOBLUDGEON - w_class = WEIGHT_CLASS_NORMAL - layer = MOB_LAYER - origin_tech = "biotech=6" - var/list/banned_mobs() - -/obj/item/asteroid/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag && istype(target, /mob/living/simple_animal)) - var/mob/living/simple_animal/A = target - if(A.buffed || (A.type in banned_mobs) || A.stat) - to_chat(user, "Something's interfering with the [src]'s effects. It's no use.") - return - A.buffed++ - A.maxHealth *= 1.5 - A.health = min(A.maxHealth,A.health*1.5) - A.melee_damage_lower = max((A.melee_damage_lower * 2), 10) - A.melee_damage_upper = max((A.melee_damage_upper * 2), 10) - A.transform *= 2 - A.environment_smash += 2 - to_chat(user, "You increase the size of [A], giving it a surge of strength!") - qdel(src) - -/////////////////////Lavaland - -//Watcher - -/mob/living/simple_animal/hostile/asteroid/basilisk/watcher - name = "watcher" - desc = "A levitating, eye-like creature held aloft by winglike formations of sinew. A sharp spine of crystal protrudes from its body." - icon = 'icons/mob/lavaland/watcher.dmi' - icon_state = "watcher" - icon_living = "watcher" - icon_aggro = "watcher" - icon_dead = "watcher_dead" - pixel_x = -10 - throw_message = "bounces harmlessly off of" - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = "impales" - a_intent = INTENT_HARM - speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/bladeslice.ogg' - stat_attack = 1 - movement_type = FLYING - robust_searching = 1 - loot = list() - butcher_results = list(/obj/item/weapon/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) - -//Goliath - -/mob/living/simple_animal/hostile/asteroid/goliath/beast - name = "goliath" - desc = "A hulking, armor-plated beast with long tendrils arching from its back." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "goliath" - icon_living = "goliath" - icon_aggro = "goliath" - icon_dead = "goliath_dead" - throw_message = "does nothing to the tough hide of the" - pre_attack_icon = "goliath2" - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 1, /obj/item/stack/sheet/bone = 2) - loot = list() - stat_attack = 1 - robust_searching = 1 - - - -//Legion - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion - name = "legion" - desc = "You can still see what was once a human under the shifting mass of corruption." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "legion" - icon_living = "legion" - icon_aggro = "legion" - icon_dead = "legion" - icon_gib = "syndicate_gib" - obj_damage = 60 - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = "lashes out at" - speak_emote = list("echoes") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "bounces harmlessly off of" - loot = list(/obj/item/organ/hivelord_core/legion) - brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - del_on_death = 1 - stat_attack = 1 - robust_searching = 1 - var/mob/living/carbon/human/stored_mob - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed) - visible_message("The skulls on [src] wail in anger as they flee from their dying host!") - var/turf/T = get_turf(src) - if(T) - if(stored_mob) - stored_mob.forceMove(get_turf(src)) - stored_mob = null - else - new /obj/effect/mob_spawn/human/corpse/damaged(T) - ..(gibbed) - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - name = "legion" - desc = "One of many." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "legion_head" - icon_living = "legion_head" - icon_aggro = "legion_head" - icon_dead = "legion_head" - icon_gib = "syndicate_gib" - friendly = "buzzes near" - vision_range = 10 - maxHealth = 1 - health = 5 - harm_intent_damage = 5 - melee_damage_lower = 12 - melee_damage_upper = 12 - attacktext = "bites" - speak_emote = list("echoes") - attack_sound = 'sound/weapons/pierce.ogg' - throw_message = "is shrugged off by" - pass_flags = PASSTABLE - del_on_death = 1 - stat_attack = 1 - robust_searching = 1 - var/can_infest_dead = FALSE - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() - if(isturf(loc)) - for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile - if(H.stat == UNCONSCIOUS || (can_infest_dead && H.stat == DEAD)) - infest(H) - ..() - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) - visible_message("[name] burrows into the flesh of [H]!") - var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = new(H.loc) - visible_message("[L] staggers to their feet!") - H.death() - H.adjustBruteLoss(1000) - L.stored_mob = H - H.forceMove(L) - qdel(src) - -//Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions) - -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced - stat_attack = 2 - maxHealth = 120 - health = 120 - brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced - icon_state = "dwarf_legion" - icon_living = "dwarf_legion" - icon_aggro = "dwarf_legion" - icon_dead = "dwarf_legion" - -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced - stat_attack = 2 - can_infest_dead = TRUE - -//Legion that spawns Legions - -/mob/living/simple_animal/hostile/spawner/legion - name = "legion" - desc = "One of many." - icon = 'icons/mob/lavaland/dragon.dmi' - icon_state = "legion" - icon_living = "legion" - icon_dead = "legion" - health = 450 - maxHealth = 450 - max_mobs = 3 - spawn_time = 200 - spawn_text = "peels itself off from" - mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion - melee_damage_lower = 20 - melee_damage_upper = 20 - anchored = FALSE - AIStatus = AI_ON - stop_automated_movement = FALSE - wander = TRUE - maxbodytemp = INFINITY - layer = MOB_LAYER - del_on_death = TRUE - sentience_type = SENTIENCE_BOSS - loot = list(/obj/item/organ/hivelord_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged = 5) - move_to_delay = 14 - vision_range = 5 - aggro_vision_range = 9 - idle_vision_range = 5 - speed = 3 - faction = list("mining") - weather_immunities = list("lava","ash") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_STRUCTURES - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - -//Organ - -/obj/item/organ/hivelord_core/legion - name = "legion's soul" - desc = "A strange rock that still crackles with power... its \ - healing properties will soon become inert if not used quickly." - icon_state = "legion_soul" - -/obj/item/organ/hivelord_core/legion/New() - ..() - update_icon() - -/obj/item/organ/hivelord_core/update_icon() - icon_state = inert ? "legion_soul_inert" : "legion_soul" - cut_overlays() - if(!inert && !preserved) - add_overlay("legion_soul_crackle") - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() - -/obj/item/organ/hivelord_core/legion/go_inert() - . = ..() - desc = "[src] has become inert, it crackles no more and is useless for \ - healing injuries." - -/obj/item/organ/hivelord_core/legion/preserved(implanted = 0) - ..() - desc = "[src] has been stabilized. It no longer crackles with power, but it's healing properties are preserved indefinitely." - -/obj/item/weapon/legion_skull - name = "legion's head" - desc = "The once living, now empty eyes of the former human's skull cut deep into your soul." - icon = 'icons/obj/mining.dmi' - icon_state = "skull" - - -//Gutlunches - -/mob/living/simple_animal/hostile/asteroid/gutlunch - name = "gutlunch" - desc = "A scavenger that eats raw meat, often found alongside ash walkers. Produces a thick, nutritious milk." - icon = 'icons/mob/lavaland/lavaland_monsters.dmi' - icon_state = "gutlunch" - icon_living = "gutlunch" - icon_dead = "gutlunch" - speak_emote = list("warbles", "quavers") - emote_hear = list("trills.") - emote_see = list("sniffs.", "burps.") - weather_immunities = list("lava","ash") - faction = list("mining", "ashwalker") - density = 0 - speak_chance = 1 - turns_per_move = 8 - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - move_to_delay = 15 - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "squishes" - friendly = "pinches" - a_intent = INTENT_HELP - ventcrawler = VENTCRAWLER_ALWAYS - gold_core_spawnable = 2 - stat_attack = 1 - gender = NEUTER - stop_automated_movement = FALSE - stop_automated_movement_when_pulled = TRUE - stat_exclusive = TRUE - robust_searching = TRUE - search_objects = TRUE - del_on_death = TRUE - loot = list(/obj/effect/decal/cleanable/blood/gibs) - deathmessage = "is pulped into bugmash." - - animal_species = /mob/living/simple_animal/hostile/asteroid/gutlunch - childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck = 45, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen = 55) - - wanted_objects = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/blood/gibs/) - var/obj/item/udder/gutlunch/udder = null - -/mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() - udder = new() - ..() - -/mob/living/simple_animal/hostile/asteroid/gutlunch/Destroy() - qdel(udder) - udder = null - return ..() - -/mob/living/simple_animal/hostile/asteroid/gutlunch/regenerate_icons() - cut_overlays() - if(udder.reagents.total_volume == udder.reagents.maximum_volume) - add_overlay("gl_full") - ..() - -/mob/living/simple_animal/hostile/asteroid/gutlunch/attackby(obj/item/O, mob/user, params) - if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) - udder.milkAnimal(O, user) - regenerate_icons() - else - ..() - -/mob/living/simple_animal/hostile/asteroid/gutlunch/AttackingTarget() - if(is_type_in_typecache(target,wanted_objects)) //we eats - udder.generateMilk() - regenerate_icons() - visible_message("[src] slurps up [target].") - qdel(target) - return ..() - - -/obj/item/udder/gutlunch - name = "nutrient sac" - -/obj/item/udder/gutlunch/New() - reagents = new(50) - reagents.my_atom = src - -/obj/item/udder/gutlunch/generateMilk() - if(prob(60)) - reagents.add_reagent("cream", rand(2, 5)) - if(prob(45)) - reagents.add_reagent("salglu_solution", rand(2,5)) - - -//Male gutlunch. They're smaller and more colorful! -/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck - name = "gubbuck" - gender = MALE - -/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/Initialize() - ..() - add_atom_colour(pick("#E39FBB", "#D97D64", "#CF8C4A"), FIXED_COLOUR_PRIORITY) - resize = 0.85 - update_transform() - - -//Lady gutlunch. They make the babby. -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen - name = "guthen" - gender = FEMALE - -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/Life() - ..() - if(udder.reagents.total_volume == udder.reagents.maximum_volume) //Only breed when we're full. - make_babies() - -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/make_babies() - . = ..() - if(.) - udder.reagents.clear_reagents() - regenerate_icons() - -//Nests -/obj/effect/light_emitter/tendril - set_luminosity = 4 - set_cap = 2.5 - light_color = LIGHT_COLOR_LAVA - -/mob/living/simple_animal/hostile/spawner/lavaland - name = "necropolis tendril" - desc = "A vile tendril of corruption, originating deep underground. Terrible monsters are pouring out of it." - icon = 'icons/mob/nest.dmi' - icon_state = "tendril" - icon_living = "tendril" - icon_dead = "tendril" - faction = list("mining") - weather_immunities = list("lava","ash") - health = 250 - maxHealth = 250 - max_mobs = 3 - spawn_time = 300 //30 seconds default - mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher - spawn_text = "emerges from" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = INFINITY - loot = list(/obj/effect/collapse, /obj/structure/closet/crate/necropolis/tendril) - del_on_death = 1 - var/gps = null - var/obj/effect/light_emitter/tendril/emitted_light - -/mob/living/simple_animal/hostile/spawner/lavaland/goliath - mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast - -/mob/living/simple_animal/hostile/spawner/lavaland/legion - mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion - -/mob/living/simple_animal/hostile/spawner/lavaland/Initialize() - . = ..() - emitted_light = new(loc) - for(var/F in RANGE_TURFS(1, src)) - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ChangeTurf(M.turf_type,FALSE,TRUE) - gps = new /obj/item/device/gps/internal(src) - -/mob/living/simple_animal/hostile/spawner/lavaland/Destroy() - QDEL_NULL(emitted_light) - QDEL_NULL(gps) - . = ..() - -#define MEDAL_PREFIX "Tendril" -/mob/living/simple_animal/hostile/spawner/lavaland/death() - var/last_tendril = TRUE - for(var/mob/living/simple_animal/hostile/spawner/lavaland/other in GLOB.mob_list) - if(other != src) - last_tendril = FALSE - break - if(last_tendril && !admin_spawned) - if(global.medal_hub && global.medal_pass && global.medals_enabled) - for(var/mob/living/L in view(7,src)) - if(L.stat) - continue - if(L.client) - var/client/C = L.client - var/suffixm = ALL_KILL_MEDAL - var/prefix = MEDAL_PREFIX - UnlockMedal("[prefix] [suffixm]",C) - SetScore(TENDRIL_CLEAR_SCORE,C,1) - ..() -#undef MEDAL_PREFIX - -/obj/effect/collapse - name = "collapsing necropolis tendril" - desc = "Get clear!" - layer = BELOW_OBJ_LAYER - icon = 'icons/mob/nest.dmi' - icon_state = "tendril" - anchored = TRUE - density = TRUE - var/obj/effect/light_emitter/tendril/emitted_light - -/obj/effect/collapse/Initialize() - . = ..() - emitted_light = new(loc) - visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!") - visible_message("Something falls free of the tendril!") - playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1) - addtimer(CALLBACK(src, .proc/collapse), 50) - -/obj/effect/collapse/Destroy() - QDEL_NULL(emitted_light) - return ..() - -/obj/effect/collapse/proc/collapse() - for(var/mob/M in range(7,src)) - shake_camera(M, 15, 1) - playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, 1) - visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!") - for(var/turf/T in range(2,src)) - if(!T.density) - T.TerraformTurf(/turf/open/chasm/straight_down/lava_land_surface) - qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm new file mode 100644 index 0000000000..19b35b9866 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -0,0 +1,80 @@ +//A beast that fire freezing blasts. +/mob/living/simple_animal/hostile/asteroid/basilisk + name = "basilisk" + desc = "A territorial beast, covered in a thick shell that absorbs energy. Its stare causes victims to freeze from the inside." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Basilisk" + icon_living = "Basilisk" + icon_aggro = "Basilisk_alert" + icon_dead = "Basilisk_dead" + icon_gib = "syndicate_gib" + move_to_delay = 20 + projectiletype = /obj/item/projectile/temp/basilisk + projectilesound = 'sound/weapons/pierce.ogg' + ranged = 1 + ranged_message = "stares" + ranged_cooldown_time = 30 + throw_message = "does nothing against the hard shell of" + vision_range = 2 + speed = 3 + maxHealth = 200 + health = 200 + harm_intent_damage = 5 + obj_damage = 60 + melee_damage_lower = 12 + melee_damage_upper = 12 + attacktext = "bites into" + a_intent = INTENT_HARM + speak_emote = list("chitters") + attack_sound = 'sound/weapons/bladeslice.ogg' + aggro_vision_range = 9 + idle_vision_range = 2 + turns_per_move = 5 + loot = list(/obj/item/weapon/ore/diamond{layer = ABOVE_MOB_LAYER}, + /obj/item/weapon/ore/diamond{layer = ABOVE_MOB_LAYER}) + +/obj/item/projectile/temp/basilisk + name = "freezing blast" + icon_state = "ice_2" + damage = 0 + damage_type = BURN + nodamage = 1 + flag = "energy" + temperature = 50 + +/mob/living/simple_animal/hostile/asteroid/basilisk/GiveTarget(new_target) + if(..()) //we have a target + if(isliving(target) && !target.Adjacent(targets_from) && ranged_cooldown <= world.time)//No more being shot at point blank or spammed with RNG beams + OpenFire(target) + +/mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity, target) + switch(severity) + if(1) + gib() + if(2) + adjustBruteLoss(140) + if(3) + adjustBruteLoss(110) + +//Watcher +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher + name = "watcher" + desc = "A levitating, eye-like creature held aloft by winglike formations of sinew. A sharp spine of crystal protrudes from its body." + icon = 'icons/mob/lavaland/watcher.dmi' + icon_state = "watcher" + icon_living = "watcher" + icon_aggro = "watcher" + icon_dead = "watcher_dead" + pixel_x = -10 + throw_message = "bounces harmlessly off of" + melee_damage_lower = 15 + melee_damage_upper = 15 + attacktext = "impales" + a_intent = INTENT_HARM + speak_emote = list("telepathically cries") + attack_sound = 'sound/weapons/bladeslice.ogg' + stat_attack = UNCONSCIOUS + movement_type = FLYING + robust_searching = 1 + loot = list() + butcher_results = list(/obj/item/weapon/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm new file mode 100644 index 0000000000..54673c887e --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -0,0 +1,79 @@ +//An ore-devouring but easily scared creature +/mob/living/simple_animal/hostile/asteroid/goldgrub + name = "goldgrub" + desc = "A worm that grows fat from eating everything in its sight. Seems to enjoy precious metals and other shiny things, hence the name." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Goldgrub" + icon_living = "Goldgrub" + icon_aggro = "Goldgrub_alert" + icon_dead = "Goldgrub_dead" + icon_gib = "syndicate_gib" + vision_range = 2 + aggro_vision_range = 9 + idle_vision_range = 2 + move_to_delay = 5 + friendly = "harmlessly rolls into" + maxHealth = 45 + health = 45 + harm_intent_damage = 5 + melee_damage_lower = 0 + melee_damage_upper = 0 + attacktext = "barrels into" + attack_sound = 'sound/weapons/punch1.ogg' + a_intent = INTENT_HELP + speak_emote = list("screeches") + throw_message = "sinks in slowly, before being pushed out of " + deathmessage = "spits up the contents of its stomach before dying!" + status_flags = CANPUSH + search_objects = 1 + wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, + /obj/item/weapon/ore/uranium) + + var/chase_time = 100 + var/will_burrow = TRUE + +/mob/living/simple_animal/hostile/asteroid/goldgrub/Initialize() + ..() + var/i = rand(1,3) + while(i) + loot += pick(/obj/item/weapon/ore/silver, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/diamond) + i-- + +/mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(new_target) + target = new_target + if(target != null) + if(istype(target, /obj/item/weapon/ore) && loot.len < 10) + visible_message("The [src.name] looks at [target.name] with hungry eyes.") + else if(isliving(target)) + Aggro() + visible_message("The [src.name] tries to flee from [target.name]!") + retreat_distance = 10 + minimum_distance = 10 + if(will_burrow) + addtimer(CALLBACK(src, .proc/Burrow), chase_time) + +/mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() + if(istype(target, /obj/item/weapon/ore)) + EatOre(target) + return + return ..() + +/mob/living/simple_animal/hostile/asteroid/goldgrub/proc/EatOre(atom/targeted_ore) + for(var/obj/item/weapon/ore/O in targeted_ore.loc) + if(loot.len < 10) + loot += O.type + qdel(O) + visible_message("The ore was swallowed whole!") + +/mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time + if(!stat) + visible_message("The [src.name] buries into the ground, vanishing from sight!") + qdel(src) + +/mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/item/projectile/P) + visible_message("The [P.name] was repelled by [src.name]'s girth!") + return + +/mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + idle_vision_range = 9 + . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm new file mode 100644 index 0000000000..e95012b519 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -0,0 +1,130 @@ +//A slow but strong beast that tries to stun using its tentacles +/mob/living/simple_animal/hostile/asteroid/goliath + name = "goliath" + desc = "A massive beast that uses long tentacles to ensare its prey, threatening them is not advised under any conditions." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Goliath" + icon_living = "Goliath" + icon_aggro = "Goliath_alert" + icon_dead = "Goliath_dead" + icon_gib = "syndicate_gib" + mouse_opacity = 2 + move_to_delay = 40 + ranged = 1 + ranged_cooldown_time = 120 + friendly = "wails at" + speak_emote = list("bellows") + vision_range = 4 + speed = 3 + maxHealth = 300 + health = 300 + harm_intent_damage = 0 + obj_damage = 100 + melee_damage_lower = 25 + melee_damage_upper = 25 + attacktext = "pulverizes" + attack_sound = 'sound/weapons/punch1.ogg' + throw_message = "does nothing to the rocky hide of the" + aggro_vision_range = 9 + idle_vision_range = 5 + anchored = TRUE //Stays anchored until death as to be unpullable + var/pre_attack = 0 + var/pre_attack_icon = "Goliath_preattack" + loot = list(/obj/item/stack/sheet/animalhide/goliath_hide) + +/mob/living/simple_animal/hostile/asteroid/goliath/Life() + ..() + handle_preattack() + +/mob/living/simple_animal/hostile/asteroid/goliath/proc/handle_preattack() + if(ranged_cooldown <= world.time + ranged_cooldown_time*0.25 && !pre_attack) + pre_attack++ + if(!pre_attack || stat || AIStatus == AI_IDLE) + return + icon_state = pre_attack_icon + +/mob/living/simple_animal/hostile/asteroid/goliath/revive(full_heal = 0, admin_revive = 0) + if(..()) + anchored = TRUE + . = 1 + +/mob/living/simple_animal/hostile/asteroid/goliath/death(gibbed) + anchored = 0 + ..(gibbed) + +/mob/living/simple_animal/hostile/asteroid/goliath/OpenFire() + var/tturf = get_turf(target) + if(!isturf(tturf)) + return + if(get_dist(src, target) <= 7)//Screen range check, so you can't get tentacle'd offscreen + visible_message("The [src.name] digs its tentacles under [target.name]!") + new /obj/effect/goliath_tentacle/original(tturf) + ranged_cooldown = world.time + ranged_cooldown_time + icon_state = icon_aggro + pre_attack = 0 + +/mob/living/simple_animal/hostile/asteroid/goliath/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + ranged_cooldown -= 10 + handle_preattack() + . = ..() + +/mob/living/simple_animal/hostile/asteroid/goliath/Aggro() + vision_range = aggro_vision_range + handle_preattack() + if(icon_state != icon_aggro) + icon_state = icon_aggro + +//Lavaland Goliath +/mob/living/simple_animal/hostile/asteroid/goliath/beast + name = "goliath" + desc = "A hulking, armor-plated beast with long tendrils arching from its back." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "goliath" + icon_living = "goliath" + icon_aggro = "goliath" + icon_dead = "goliath_dead" + throw_message = "does nothing to the tough hide of the" + pre_attack_icon = "goliath2" + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 1, /obj/item/stack/sheet/bone = 2) + loot = list() + stat_attack = UNCONSCIOUS + robust_searching = 1 + +//tentacles +/obj/effect/goliath_tentacle + name = "Goliath tentacle" + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Goliath_tentacle" + var/latched = FALSE + anchored = TRUE + +/obj/effect/goliath_tentacle/Initialize() + . = ..() + if(ismineralturf(loc)) + var/turf/closed/mineral/M = loc + M.gets_drilled() + addtimer(CALLBACK(src, .proc/Trip), 10) + +/obj/effect/goliath_tentacle/original/Initialize() + . = ..() + for(var/obj/effect/goliath_tentacle/original/O in loc)//No more GG NO RE from 2+ goliaths simultaneously tentacling you + if(O != src) + qdel(src) + var/list/directions = GLOB.cardinal.Copy() + for(var/i in 1 to 3) + var/spawndir = pick(directions) + directions -= spawndir + var/turf/T = get_step(src,spawndir) + if(T) + new /obj/effect/goliath_tentacle(T) + +/obj/effect/goliath_tentacle/proc/Trip() + for(var/mob/living/M in src.loc) + visible_message("The [src.name] grabs hold of [M.name]!") + M.Stun(5) + M.adjustBruteLoss(rand(10,15)) + latched = TRUE + if(!latched) + qdel(src) + else + QDEL_IN(src, 50) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm new file mode 100644 index 0000000000..b5bea10cd3 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -0,0 +1,113 @@ +//Gutlunches, passive mods that devour blood and gibs +/mob/living/simple_animal/hostile/asteroid/gutlunch + name = "gutlunch" + desc = "A scavenger that eats raw meat, often found alongside ash walkers. Produces a thick, nutritious milk." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "gutlunch" + icon_living = "gutlunch" + icon_dead = "gutlunch" + speak_emote = list("warbles", "quavers") + emote_hear = list("trills.") + emote_see = list("sniffs.", "burps.") + weather_immunities = list("lava","ash") + faction = list("mining", "ashwalker") + density = 0 + speak_chance = 1 + turns_per_move = 8 + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE + move_to_delay = 15 + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "squishes" + friendly = "pinches" + a_intent = INTENT_HELP + ventcrawler = VENTCRAWLER_ALWAYS + gold_core_spawnable = 2 + stat_attack = UNCONSCIOUS + gender = NEUTER + stop_automated_movement = FALSE + stop_automated_movement_when_pulled = TRUE + stat_exclusive = TRUE + robust_searching = TRUE + search_objects = TRUE + del_on_death = TRUE + loot = list(/obj/effect/decal/cleanable/blood/gibs) + deathmessage = "is pulped into bugmash." + + animal_species = /mob/living/simple_animal/hostile/asteroid/gutlunch + childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck = 45, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen = 55) + + wanted_objects = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/blood/gibs/) + var/obj/item/udder/gutlunch/udder = null + +/mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() + udder = new() + . = ..() + +/mob/living/simple_animal/hostile/asteroid/gutlunch/Destroy() + QDEL_NULL(udder) + return ..() + +/mob/living/simple_animal/hostile/asteroid/gutlunch/regenerate_icons() + cut_overlays() + if(udder.reagents.total_volume == udder.reagents.maximum_volume) + add_overlay("gl_full") + ..() + +/mob/living/simple_animal/hostile/asteroid/gutlunch/attackby(obj/item/O, mob/user, params) + if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass)) + udder.milkAnimal(O, user) + regenerate_icons() + else + ..() + +/mob/living/simple_animal/hostile/asteroid/gutlunch/AttackingTarget() + if(is_type_in_typecache(target,wanted_objects)) //we eats + udder.generateMilk() + regenerate_icons() + visible_message("[src] slurps up [target].") + qdel(target) + return ..() + +//Male gutlunch. They're smaller and more colorful! +/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck + name = "gubbuck" + gender = MALE + +/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck/Initialize() + ..() + add_atom_colour(pick("#E39FBB", "#D97D64", "#CF8C4A"), FIXED_COLOUR_PRIORITY) + resize = 0.85 + update_transform() + +//Lady gutlunch. They make the babby. +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen + name = "guthen" + gender = FEMALE + +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/Life() + ..() + if(udder.reagents.total_volume == udder.reagents.maximum_volume) //Only breed when we're full. + make_babies() + +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/make_babies() + . = ..() + if(.) + udder.reagents.clear_reagents() + regenerate_icons() + +//Gutlunch udder +/obj/item/udder/gutlunch + name = "nutrient sac" + +/obj/item/udder/gutlunch/New() + reagents = new(50) + reagents.my_atom = src + +/obj/item/udder/gutlunch/generateMilk() + if(prob(60)) + reagents.add_reagent("cream", rand(2, 5)) + if(prob(45)) + reagents.add_reagent("salglu_solution", rand(2,5)) + diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm new file mode 100644 index 0000000000..fbea8d0f79 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -0,0 +1,216 @@ +/mob/living/simple_animal/hostile/asteroid/hivelord + name = "hivelord" + desc = "A truly alien creature, it is a mass of unknown organic material, constantly fluctuating. When attacking, pieces of it split off and attack in tandem with the original." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Hivelord" + icon_living = "Hivelord" + icon_aggro = "Hivelord_alert" + icon_dead = "Hivelord_dead" + icon_gib = "syndicate_gib" + mouse_opacity = 2 + move_to_delay = 14 + ranged = 1 + vision_range = 5 + aggro_vision_range = 9 + idle_vision_range = 5 + speed = 3 + maxHealth = 75 + health = 75 + harm_intent_damage = 5 + melee_damage_lower = 0 + melee_damage_upper = 0 + attacktext = "lashes out at" + speak_emote = list("telepathically cries") + attack_sound = 'sound/weapons/pierce.ogg' + throw_message = "falls right through the strange body of the" + ranged_cooldown = 0 + ranged_cooldown_time = 20 + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE + retreat_distance = 3 + minimum_distance = 3 + pass_flags = PASSTABLE + loot = list(/obj/item/organ/regenerative_core) + var/brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood + +/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(the_target) + if(world.time >= ranged_cooldown) + var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new brood_type(src.loc) + A.admin_spawned = admin_spawned + A.GiveTarget(target) + A.friends = friends + A.faction = faction.Copy() + ranged_cooldown = world.time + ranged_cooldown_time + +/mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget() + OpenFire() + return TRUE + +/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) + mouse_opacity = 1 + ..(gibbed) + +//A fragile but rapidly produced creature +/mob/living/simple_animal/hostile/asteroid/hivelordbrood + name = "hivelord brood" + desc = "A fragment of the original Hivelord, rallying behind its original. One isn't much of a threat, but..." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Hivelordbrood" + icon_living = "Hivelordbrood" + icon_aggro = "Hivelordbrood" + icon_dead = "Hivelordbrood" + icon_gib = "syndicate_gib" + mouse_opacity = 2 + move_to_delay = 1 + friendly = "buzzes near" + vision_range = 10 + speed = 3 + maxHealth = 1 + health = 1 + movement_type = FLYING + harm_intent_damage = 5 + melee_damage_lower = 2 + melee_damage_upper = 2 + attacktext = "slashes" + speak_emote = list("telepathically cries") + attack_sound = 'sound/weapons/pierce.ogg' + throw_message = "falls right through the strange body of the" + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE + pass_flags = PASSTABLE + del_on_death = 1 + +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize() + ..() + addtimer(CALLBACK(src, .proc/death), 100) + +//Legion +/mob/living/simple_animal/hostile/asteroid/hivelord/legion + name = "legion" + desc = "You can still see what was once a human under the shifting mass of corruption." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "legion" + icon_living = "legion" + icon_aggro = "legion" + icon_dead = "legion" + icon_gib = "syndicate_gib" + obj_damage = 60 + melee_damage_lower = 15 + melee_damage_upper = 15 + attacktext = "lashes out at" + speak_emote = list("echoes") + attack_sound = 'sound/weapons/pierce.ogg' + throw_message = "bounces harmlessly off of" + loot = list(/obj/item/organ/regenerative_core/legion) + brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion + del_on_death = 1 + stat_attack = UNCONSCIOUS + robust_searching = 1 + var/mob/living/carbon/human/stored_mob + +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/death(gibbed) + visible_message("The skulls on [src] wail in anger as they flee from their dying host!") + var/turf/T = get_turf(src) + if(T) + if(stored_mob) + stored_mob.forceMove(get_turf(src)) + stored_mob = null + else + new /obj/effect/mob_spawn/human/corpse/damaged(T) + ..(gibbed) + +//Legion skull +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion + name = "legion" + desc = "One of many." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "legion_head" + icon_living = "legion_head" + icon_aggro = "legion_head" + icon_dead = "legion_head" + icon_gib = "syndicate_gib" + friendly = "buzzes near" + vision_range = 10 + maxHealth = 1 + health = 5 + harm_intent_damage = 5 + melee_damage_lower = 12 + melee_damage_upper = 12 + attacktext = "bites" + speak_emote = list("echoes") + attack_sound = 'sound/weapons/pierce.ogg' + throw_message = "is shrugged off by" + pass_flags = PASSTABLE + del_on_death = TRUE + stat_attack = UNCONSCIOUS + robust_searching = 1 + var/can_infest_dead = FALSE + +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() + if(isturf(loc)) + for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile + if(H.stat == UNCONSCIOUS || (can_infest_dead && H.stat == DEAD)) + infest(H) + ..() + +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) + visible_message("[name] burrows into the flesh of [H]!") + var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = new(H.loc) + visible_message("[L] staggers to their feet!") + H.death() + H.adjustBruteLoss(1000) + L.stored_mob = H + H.forceMove(L) + qdel(src) + +//Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions) +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced + stat_attack = 2 + maxHealth = 120 + health = 120 + brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced + icon_state = "dwarf_legion" + icon_living = "dwarf_legion" + icon_aggro = "dwarf_legion" + icon_dead = "dwarf_legion" + +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced + stat_attack = 2 + can_infest_dead = TRUE + +//Legion that spawns Legions +/mob/living/simple_animal/hostile/spawner/legion + name = "legion" + desc = "One of many." + icon = 'icons/mob/lavaland/dragon.dmi' + icon_state = "legion" + icon_living = "legion" + icon_dead = "legion" + health = 450 + maxHealth = 450 + max_mobs = 3 + spawn_time = 200 + spawn_text = "peels itself off from" + mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion + melee_damage_lower = 20 + melee_damage_upper = 20 + anchored = FALSE + AIStatus = AI_ON + stop_automated_movement = FALSE + wander = TRUE + maxbodytemp = INFINITY + layer = MOB_LAYER + del_on_death = TRUE + sentience_type = SENTIENCE_BOSS + loot = list(/obj/item/organ/regenerative_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged = 5) + move_to_delay = 14 + vision_range = 5 + aggro_vision_range = 9 + idle_vision_range = 5 + speed = 3 + faction = list("mining") + weather_immunities = list("lava","ash") + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_STRUCTURES + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm new file mode 100644 index 0000000000..1e76860267 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -0,0 +1,59 @@ +//the base mining mob +/mob/living/simple_animal/hostile/asteroid + vision_range = 2 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + faction = list("mining") + weather_immunities = list("lava","ash") + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_WALLS + minbodytemp = 0 + maxbodytemp = INFINITY + response_help = "pokes" + response_disarm = "shoves" + response_harm = "strikes" + status_flags = 0 + a_intent = INTENT_HARM + var/throw_message = "bounces off of" + var/icon_aggro = null // for swapping to when we get aggressive + see_in_dark = 8 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + mob_size = MOB_SIZE_LARGE + +/mob/living/simple_animal/hostile/asteroid/Aggro() + ..() + if(vision_range != aggro_vision_range) + icon_state = icon_aggro + +/mob/living/simple_animal/hostile/asteroid/LoseAggro() + ..() + if(stat == DEAD) + return + icon_state = icon_living + +/mob/living/simple_animal/hostile/asteroid/bullet_act(obj/item/projectile/P)//Reduces damage from most projectiles to curb off-screen kills + if(!stat) + Aggro() + if(P.damage < 30 && P.damage_type != BRUTE) + P.damage = (P.damage / 3) + visible_message("[P] has a reduced effect on [src]!") + ..() + +/mob/living/simple_animal/hostile/asteroid/hitby(atom/movable/AM)//No floor tiling them to death, wiseguy + if(istype(AM, /obj/item)) + var/obj/item/T = AM + if(!stat) + Aggro() + if(T.throwforce <= 20) + visible_message("The [T.name] [src.throw_message] [src.name]!") + return + ..() + +/mob/living/simple_animal/hostile/asteroid/death(gibbed) + SSblackbox.add_details("mobs_killed_mining","[src.type]") + ..(gibbed) + +/mob/living/simple_animal/hostile/asteroid/handle_temperature_damage() + if(bodytemperature < minbodytemp) + adjustBruteLoss(2) + else if(bodytemperature > maxbodytemp) + adjustBruteLoss(20) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm new file mode 100644 index 0000000000..1ef8dd9f13 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/necropolis_tendril.dm @@ -0,0 +1,101 @@ +//Necropolis Tendrils, which spawn lavaland monsters and break into a chasm when killed +/obj/effect/light_emitter/tendril + set_luminosity = 4 + set_cap = 2.5 + light_color = LIGHT_COLOR_LAVA + +/mob/living/simple_animal/hostile/spawner/lavaland + name = "necropolis tendril" + desc = "A vile tendril of corruption, originating deep underground. Terrible monsters are pouring out of it." + icon = 'icons/mob/nest.dmi' + icon_state = "tendril" + icon_living = "tendril" + icon_dead = "tendril" + faction = list("mining") + weather_immunities = list("lava","ash") + health = 250 + maxHealth = 250 + max_mobs = 3 + spawn_time = 300 //30 seconds default + mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher + spawn_text = "emerges from" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = INFINITY + loot = list(/obj/effect/collapse, /obj/structure/closet/crate/necropolis/tendril) + del_on_death = 1 + var/gps = null + var/obj/effect/light_emitter/tendril/emitted_light + +/mob/living/simple_animal/hostile/spawner/lavaland/goliath + mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast + +/mob/living/simple_animal/hostile/spawner/lavaland/legion + mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion + +/mob/living/simple_animal/hostile/spawner/lavaland/Initialize() + . = ..() + emitted_light = new(loc) + for(var/F in RANGE_TURFS(1, src)) + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ChangeTurf(M.turf_type,FALSE,TRUE) + gps = new /obj/item/device/gps/internal(src) + +/mob/living/simple_animal/hostile/spawner/lavaland/Destroy() + QDEL_NULL(emitted_light) + QDEL_NULL(gps) + . = ..() + +#define MEDAL_PREFIX "Tendril" +/mob/living/simple_animal/hostile/spawner/lavaland/death() + var/last_tendril = TRUE + for(var/mob/living/simple_animal/hostile/spawner/lavaland/other in GLOB.mob_list) + if(other != src) + last_tendril = FALSE + break + if(last_tendril && !admin_spawned) + if(global.medal_hub && global.medal_pass && global.medals_enabled) + for(var/mob/living/L in view(7,src)) + if(L.stat) + continue + if(L.client) + var/client/C = L.client + var/suffixm = ALL_KILL_MEDAL + var/prefix = MEDAL_PREFIX + UnlockMedal("[prefix] [suffixm]",C) + SetScore(TENDRIL_CLEAR_SCORE,C,1) + ..() +#undef MEDAL_PREFIX + +/obj/effect/collapse + name = "collapsing necropolis tendril" + desc = "Get clear!" + layer = BELOW_OBJ_LAYER + icon = 'icons/mob/nest.dmi' + icon_state = "tendril" + anchored = TRUE + density = TRUE + var/obj/effect/light_emitter/tendril/emitted_light + +/obj/effect/collapse/Initialize() + . = ..() + emitted_light = new(loc) + visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!") + visible_message("Something falls free of the tendril!") + playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1) + addtimer(CALLBACK(src, .proc/collapse), 50) + +/obj/effect/collapse/Destroy() + QDEL_NULL(emitted_light) + return ..() + +/obj/effect/collapse/proc/collapse() + for(var/mob/M in range(7,src)) + shake_camera(M, 15, 1) + playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, 1) + visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!") + for(var/turf/T in range(2,src)) + if(!T.density) + T.TerraformTurf(/turf/open/chasm/straight_down/lava_land_surface) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm new file mode 100644 index 0000000000..d4aa40ed13 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -0,0 +1,127 @@ +//A fragile mob that becomes temporarily invincible and large to attack +/mob/living/simple_animal/hostile/asteroid/fugu + name = "wumborian fugu" + desc = "The wumborian fugu rapidly increases its body mass in order to ward off its prey. Great care should be taken to avoid it while it's in this state as it is nearly invincible, but it cannot maintain its form forever." + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "Fugu" + icon_living = "Fugu" + icon_aggro = "Fugu" + icon_dead = "Fugu_dead" + icon_gib = "syndicate_gib" + mouse_opacity = 2 + move_to_delay = 5 + friendly = "floats near" + speak_emote = list("puffs") + vision_range = 5 + speed = 0 + maxHealth = 50 + health = 50 + harm_intent_damage = 5 + obj_damage = 0 + melee_damage_lower = 0 + melee_damage_upper = 0 + attacktext = "chomps" + attack_sound = 'sound/weapons/punch1.ogg' + throw_message = "is avoided by the" + aggro_vision_range = 9 + idle_vision_range = 5 + mob_size = MOB_SIZE_SMALL + environment_smash = ENVIRONMENT_SMASH_NONE + var/wumbo = 0 + var/inflate_cooldown = 0 + loot = list(/obj/item/asteroid/fugu_gland{layer = ABOVE_MOB_LAYER}) + +/mob/living/simple_animal/hostile/asteroid/fugu/Life() + if(!wumbo) + inflate_cooldown = max((inflate_cooldown - 1), 0) + if(target && AIStatus == AI_ON) + Inflate() + ..() + +/mob/living/simple_animal/hostile/asteroid/fugu/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(!forced && wumbo) + return FALSE + . = ..() + +/mob/living/simple_animal/hostile/asteroid/fugu/Aggro() + ..() + Inflate() + +/mob/living/simple_animal/hostile/asteroid/fugu/verb/Inflate() + set name = "Inflate" + set category = "Fugu" + set desc = "Temporarily increases your size, and makes you significantly more dangerous and tough." + if(wumbo) + to_chat(src, "You're already inflated.") + return + if(inflate_cooldown) + to_chat(src, "We need time to gather our strength.") + return + if(buffed) + to_chat(src, "Something is interfering with our growth.") + return + wumbo = 1 + icon_state = "Fugu_big" + obj_damage = 60 + melee_damage_lower = 15 + melee_damage_upper = 20 + harm_intent_damage = 0 + throw_message = "is absorbed by the girth of the" + retreat_distance = null + minimum_distance = 1 + move_to_delay = 6 + transform *= 2 + environment_smash = ENVIRONMENT_SMASH_WALLS + mob_size = MOB_SIZE_LARGE + speed = 1 + addtimer(CALLBACK(src, .proc/Deflate), 100) + +/mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate() + if(wumbo) + walk(src, 0) + wumbo = 0 + icon_state = "Fugu" + obj_damage = 0 + melee_damage_lower = 0 + melee_damage_upper = 0 + harm_intent_damage = 5 + throw_message = "is avoided by the" + retreat_distance = 9 + minimum_distance = 9 + move_to_delay = 2 + transform /= 2 + inflate_cooldown = 4 + environment_smash = ENVIRONMENT_SMASH_NONE + mob_size = MOB_SIZE_SMALL + speed = 0 + +/mob/living/simple_animal/hostile/asteroid/fugu/death(gibbed) + Deflate() + ..(gibbed) + +/obj/item/asteroid/fugu_gland + name = "wumborian fugu gland" + desc = "The key to the wumborian fugu's ability to increase its mass arbitrarily, this disgusting remnant can apply the same effect to other creatures, giving them great strength." + icon = 'icons/obj/surgery.dmi' + icon_state = "fugu_gland" + flags = NOBLUDGEON + w_class = WEIGHT_CLASS_NORMAL + layer = MOB_LAYER + origin_tech = "biotech=6" + var/list/banned_mobs() + +/obj/item/asteroid/fugu_gland/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag && istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/A = target + if(A.buffed || (A.type in banned_mobs) || A.stat) + to_chat(user, "Something's interfering with the [src]'s effects. It's no use.") + return + A.buffed++ + A.maxHealth *= 1.5 + A.health = min(A.maxHealth,A.health*1.5) + A.melee_damage_lower = max((A.melee_damage_lower * 2), 10) + A.melee_damage_upper = max((A.melee_damage_upper * 2), 10) + A.transform *= 2 + A.environment_smash += 2 + to_chat(user, "You increase the size of [A], giving it a surge of strength!") + qdel(src) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index c084befd92..7eaa0a7e26 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -276,7 +276,7 @@ if(!user.dna) return -1 user.dna.add_mutation(HULK) - var/obj/item/organ/hivelord_core/organ = new /obj/item/organ/hivelord_core + var/obj/item/organ/regenerative_core/organ = new /obj/item/organ/regenerative_core organ.Insert(user) return ..() diff --git a/tgstation.dme b/tgstation.dme index 53723583d2..b3613ec1f9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1748,7 +1748,6 @@ #include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" #include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" #include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" @@ -1760,6 +1759,7 @@ #include "code\modules\mob\living\simple_animal\hostile\tree.dm" #include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" #include "code\modules\mob\living\simple_animal\hostile\wizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" @@ -1769,6 +1769,13 @@ #include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\necropolis_tendril.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\bat.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\frog.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..6df2de4244 --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,15 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1446,11 +1446,13 @@ + #include "code\modules\mining\satchel_ore_boxdm.dm" + #include "code\modules\mining\shelters.dm" + #include "code\modules\mining\equipment\explorer_gear.dm" ++#include "code\modules\mining\equipment\goliath_hide.dm" + #include "code\modules\mining\equipment\kinetic_crusher.dm" + #include "code\modules\mining\equipment\lazarus_injector.dm" + #include "code\modules\mining\equipment\marker_beacons.dm" + #include "code\modules\mining\equipment\mineral_scanner.dm" + #include "code\modules\mining\equipment\mining_tools.dm" ++#include "code\modules\mining\equipment\regenerative_core.dm" + #include "code\modules\mining\equipment\resonator.dm" + #include "code\modules\mining\equipment\survival_pod.dm" + #include "code\modules\mining\equipment\vendor_items.dm" From 0349f8c90803b5d5a4a06ddf24baa715da7030af Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 29 May 2017 11:03:03 -0500 Subject: [PATCH 011/215] Holocall cleanup --- code/datums/holocall.dm | 23 +++++++++++------------ code/game/machinery/hologram.dm | 7 +++++++ code/game/machinery/hologram.dm.rej | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 code/game/machinery/hologram.dm.rej diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index a3157e6514..a2a26652cd 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -43,18 +43,18 @@ //cleans up ALL references :) /datum/holocall/Destroy() - user.reset_perspective() - if(user.client) - for(var/datum/camerachunk/chunk in eye.visibleCameraChunks) - chunk.remove(eye) - user.remote_control = null + if(!QDELETED(user)) + user.reset_perspective() + if(user.client) + for(var/datum/camerachunk/chunk in eye.visibleCameraChunks) + chunk.remove(eye) + user.remote_control = null + user = null QDEL_NULL(eye) - user = null if(hologram) hologram.HC = null - hologram = null - calling_holopad.outgoing_call = null + hologram = null for(var/I in dialed_holopads) var/obj/machinery/holopad/H = I @@ -62,6 +62,7 @@ dialed_holopads.Cut() if(calling_holopad) + calling_holopad.outgoing_call = null calling_holopad.SetLightsAndPower() calling_holopad = null if(connected_holopad) @@ -86,7 +87,7 @@ /datum/holocall/proc/ConnectionFailure(obj/machinery/holopad/H, graceful = FALSE) testing("Holocall connection failure: graceful [graceful]") if(H == connected_holopad || H == calling_holopad) - if(!graceful) + if(!graceful && H != calling_holopad) calling_holopad.say("Connection failure.") qdel(src) return @@ -152,9 +153,7 @@ . = !QDELETED(user) && !user.incapacitated() && !QDELETED(calling_holopad) && calling_holopad.is_operational() && user.loc == calling_holopad.loc if(.) - if(connected_holopad) - . = !QDELETED(connected_holopad) && connected_holopad.is_operational() - else + if(!connected_holopad) . = world.time < (call_start_time + HOLOPAD_MAX_DIAL_TIME) if(!.) calling_holopad.say("No answer recieved.") diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 7cf0b69d7d..7a8adfa0c8 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -75,6 +75,13 @@ Possible to do for anyone motivated enough: stat &= ~NOPOWER else stat |= ~NOPOWER + if(outgoing_call) + outgoing_call.ConnectionFailure(src) + +/obj/machinery/holopad/obj_break() + . = ..() + if(outgoing_call) + outgoing_call.ConnectionFailure(src) /obj/machinery/holopad/RefreshParts() var/holograph_range = 4 diff --git a/code/game/machinery/hologram.dm.rej b/code/game/machinery/hologram.dm.rej new file mode 100644 index 0000000000..b2237e799d --- /dev/null +++ b/code/game/machinery/hologram.dm.rej @@ -0,0 +1,16 @@ +diff a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm (rejected hunks) +@@ -58,13 +58,11 @@ Possible to do for anyone motivated enough: + + /obj/machinery/holopad/Destroy() + if(outgoing_call) +- LAZYADD(holo_calls, outgoing_call) +- outgoing_call = null ++ outgoing_call.ConnectionFailure(src) + + for(var/I in holo_calls) + var/datum/holocall/HC = I + HC.ConnectionFailure(src) +- LAZYCLEARLIST(holo_calls) + + for (var/I in masters) + clear_holo(I) From 4f9c8a0869d26071fdc0a7bc0b23b58dea14c3e7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 May 2017 17:05:54 -0500 Subject: [PATCH 012/215] Luxury Bluespace Shelter Capsules, Take 2. --- _maps/templates/shelter_2.dmm | 41 ++++++++++++ .../game/objects/effects/spawners/lootdrop.dm | 29 +++++++++ code/game/objects/items/cardboard_cutouts.dm | 4 ++ .../objects/items/cardboard_cutouts.dm.rej | 10 +++ .../objects/items/stacks/tiles/tile_types.dm | 5 ++ code/game/objects/structures/table_frames.dm | 8 +++ code/game/objects/structures/tables_racks.dm | 10 ++- code/game/objects/structures/watercloset.dm | 60 ++++++++++++++++-- .../game/turfs/simulated/floor/fancy_floor.dm | 6 ++ code/modules/crafting/recipes.dm | 13 ++++ code/modules/mining/machine_vending.dm | 1 + code/modules/mining/shelters.dm | 15 +++++ icons/obj/lavaland/survival_pod.dmi | Bin 7320 -> 27962 bytes .../smooth_structures/fancy_table_black.dmi | Bin 0 -> 3295 bytes icons/obj/tiles.dmi | Bin 11741 -> 11987 bytes icons/turf/floors/carpet_black.dmi | Bin 0 -> 1836 bytes 16 files changed, 196 insertions(+), 6 deletions(-) create mode 100644 _maps/templates/shelter_2.dmm create mode 100644 code/game/objects/items/cardboard_cutouts.dm.rej create mode 100644 icons/obj/smooth_structures/fancy_table_black.dmi create mode 100644 icons/turf/floors/carpet_black.dmi diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm new file mode 100644 index 0000000000..e8fee96717 --- /dev/null +++ b/_maps/templates/shelter_2.dmm @@ -0,0 +1,41 @@ +"a" = (/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) +"b" = (/obj/structure/sign/mining/survival{tag = "icon-survival (NORTH)"; icon_state = "survival"; dir = 1},/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) +"c" = (/turf/closed/wall/mineral/titanium/survival,/area/survivalpod) +"d" = (/obj/structure/sign/mining/survival{dir = 8},/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) +"e" = (/obj/structure/fans,/turf/open/floor/pod,/area/survivalpod) +"f" = (/obj/machinery/smartfridge/survival_pod,/turf/open/floor/pod,/area/survivalpod) +"g" = (/obj/item/device/gps/computer,/turf/open/floor/pod,/area/survivalpod) +"h" = (/obj/machinery/shower,/obj/item/weapon/soap/deluxe,/obj/structure/curtain{alpha = 240; color = "#454545"; icon_state = "closed"; open = 0},/turf/open/floor/pod,/area/survivalpod) +"i" = (/obj/structure/toilet/secret{secret_type = /obj/item/weapon/kitchen/knife/combat/survival},/turf/open/floor/pod,/area/survivalpod) +"j" = (/obj/structure/sign/mining/survival{tag = "icon-survival (EAST)"; icon_state = "survival"; dir = 4},/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) +"k" = (/obj/machinery/sleeper/survival_pod,/turf/open/floor/pod,/area/survivalpod) +"l" = (/turf/open/floor/pod,/area/survivalpod) +"m" = (/obj/structure/bed/pod,/obj/item/weapon/bedsheet/black,/turf/open/floor/pod,/area/survivalpod) +"n" = (/obj/structure/window/reinforced/survival_pod{dir = 8; icon_state = "pwindow"; layer = 3; tag = "icon-pwindow (WEST)"},/obj/machinery/door/window/survival_pod{dir = 1; icon_state = "windoor"; tag = "icon-windoor (NORTH)"},/turf/open/floor/carpet/black,/area/survivalpod) +"o" = (/obj/structure/chair/comfy/black,/obj/item/cardboard_cutout{desc = "A cardboard cutout of a xenomorph maid."; icon_state = "cutout_lusty"; name = "lusty xenomorph maid"},/obj/structure/window/reinforced/survival_pod{tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1},/turf/open/floor/carpet/black,/area/survivalpod) +"p" = (/obj/structure/table/survival_pod,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/brute{pixel_x = 5},/turf/open/floor/pod,/area/survivalpod) +"q" = (/obj/structure/tubes,/obj/item/weapon/twohanded/required/kirbyplants/random,/turf/open/floor/pod,/area/survivalpod) +"r" = (/obj/structure/window/reinforced/survival_pod{dir = 8; icon_state = "pwindow"; tag = "icon-pwindow (WEST)"},/turf/open/floor/carpet/black,/area/survivalpod) +"s" = (/obj/machinery/light{dir = 4; light_color = "#DDFFD3"},/obj/structure/table/wood/fancy/black,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -6; pixel_y = 10},/turf/open/floor/carpet/black,/area/survivalpod) +"t" = (/obj/machinery/microwave{pixel_y = -2},/obj/structure/window/reinforced/survival_pod{tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1},/obj/structure/table/wood/fancy/black{pixel_y = -9; pixel_z = 0},/turf/open/floor/carpet/black,/area/survivalpod) +"u" = (/obj/machinery/door/window/survival_pod{tag = "icon-windoor (NORTH)"; icon_state = "windoor"; dir = 1},/turf/open/floor/carpet/black,/area/survivalpod) +"v" = (/obj/structure/window/reinforced/survival_pod{tag = "icon-pwindow (NORTH)"; icon_state = "pwindow"; dir = 1},/obj/structure/displaycase{alert = 0; desc = "A display case containing an expensive forgery, probably."; pixel_w = 0; pixel_x = 0; pixel_y = -4; pixel_z = 0; req_access = 48; start_showpiece_type = /obj/item/fakeartefact},/turf/open/floor/carpet/black,/area/survivalpod) +"w" = (/obj/structure/window/reinforced/survival_pod{density = 0; dir = 9; icon_state = "pwindow"; tag = "icon-pwindow (NORTHWEST)"},/turf/open/floor/carpet/black,/area/survivalpod) +"x" = (/obj/structure/table/wood/fancy/black,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 7; pixel_y = 2},/obj/effect/spawner/lootdrop/three_course_meal,/turf/open/floor/carpet/black,/area/survivalpod) +"y" = (/obj/structure/sink/kitchen{tag = "icon-sink_alt (EAST)"; icon_state = "sink_alt"; dir = 4; pixel_x = -13; pixel_y = 0},/turf/open/floor/carpet/black,/area/survivalpod) +"z" = (/obj/machinery/light,/turf/open/floor/carpet/black,/area/survivalpod) +"A" = (/turf/open/floor/carpet/black,/area/survivalpod) +"B" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet/black,/area/survivalpod) +"C" = (/obj/structure/sign/mining/survival,/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) +"D" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/survival_pod,/turf/open/floor/pod,/area/survivalpod) +"E" = (/obj/structure/sign/mining,/turf/closed/wall/mineral/titanium/survival/pod,/area/survivalpod) + +(1,1,1) = {" +abcbcba +defghij +cklmnoc +dplqrsj +ctuvwxc +dyzAABj +aCcDcEa +"} diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 6403faa380..a0cb46ba28 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -54,6 +54,35 @@ /obj/item/trash/sosjerky = 1, /obj/item/trash/syndi_cakes = 1) +/obj/effect/spawner/lootdrop/three_course_meal + name = "three course meal spawner" + lootcount = 3 + lootdoubles = FALSE + var/soups = list( + /obj/item/weapon/reagent_containers/food/snacks/soup/beet, + /obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato, + /obj/item/weapon/reagent_containers/food/snacks/soup/stew, + /obj/item/weapon/reagent_containers/food/snacks/soup/hotchili, + /obj/item/weapon/reagent_containers/food/snacks/soup/nettle, + /obj/item/weapon/reagent_containers/food/snacks/soup/meatball) + var/salads = list( + /obj/item/weapon/reagent_containers/food/snacks/salad/herbsalad, + /obj/item/weapon/reagent_containers/food/snacks/salad/validsalad, + /obj/item/weapon/reagent_containers/food/snacks/salad/fruit, + /obj/item/weapon/reagent_containers/food/snacks/salad/jungle, + /obj/item/weapon/reagent_containers/food/snacks/salad/aesirsalad) + var/mains = list( + /obj/item/weapon/reagent_containers/food/snacks/bearsteak, + /obj/item/weapon/reagent_containers/food/snacks/enchiladas, + /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat, + /obj/item/weapon/reagent_containers/food/snacks/burger/bigbite, + /obj/item/weapon/reagent_containers/food/snacks/burger/superbite, + /obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm) + +/obj/effect/spawner/lootdrop/three_course_meal/Initialize(mapload) + loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1) + . = ..() + /obj/effect/spawner/lootdrop/maintenance name = "maintenance loot spawner" // see code/_globalvars/lists/maintenance_loot.dm for loot table diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 352a4fb9a7..2bdff7699e 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -142,6 +142,10 @@ icon_state = "cutout_fukken_xeno" if(prob(25)) alpha = 75 //Spooky sneaking! + if("Xenomorph Maid") + name = "lusty xenomorph maid ([rand(1, 999)])" + desc = "A cardboard cutout of a xenomorph maid." + icon_state = "cutout_lusty" if("Swarmer") name = "Swarmer ([rand(1, 999)])" desc = "A cardboard cutout of a swarmer." diff --git a/code/game/objects/items/cardboard_cutouts.dm.rej b/code/game/objects/items/cardboard_cutouts.dm.rej new file mode 100644 index 0000000000..c2f19567c7 --- /dev/null +++ b/code/game/objects/items/cardboard_cutouts.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm (rejected hunks) +@@ -10,7 +10,7 @@ + // add an entry in change_appearance() if you add to here + var/list/possible_appearances = list("Assistant", "Clown", "Mime", + "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", +- "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", ++ "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Xenomorph Maid", "Swarmer", + "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", + "Laughter Demon", "Private Security Officer") + var/pushed_over = FALSE //If the cutout is pushed over and has to be righted diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index ef123030f5..b099d9d3c3 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -106,6 +106,11 @@ turf_type = /turf/open/floor/carpet resistance_flags = FLAMMABLE +/obj/item/stack/tile/carpet/black + name = "black carpet" + icon_state = "tile-carpet-black" + turf_type = /turf/open/floor/carpet/black + /obj/item/stack/tile/fakespace name = "astral carpet" diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 50aa23434e..0c2886533f 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -61,6 +61,14 @@ to_chat(user, "You start adding [S] to [src]...") if(do_after(user, 20, target = src) && S.use(1)) make_new_table(/obj/structure/table/optable) + else if(istype(I, /obj/item/stack/tile/carpet/black)) + var/obj/item/stack/tile/carpet/black/C = I + if(C.get_amount() < 1) + to_chat(user, "You need one black carpet sheet to do this!") + return + to_chat(user, "You start adding [C] to [src]...") + if(do_after(user, 20, target = src) && C.use(1)) + make_new_table(/obj/structure/table/wood/fancy/black) else if(istype(I, /obj/item/stack/tile/carpet)) var/obj/item/stack/tile/carpet/C = I if(C.get_amount() < 1) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 41ef527e1e..73c75e2cc5 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -271,12 +271,20 @@ frame = /obj/structure/table_frame framestack = /obj/item/stack/rods buildstack = /obj/item/stack/tile/carpet - canSmoothWith = list(/obj/structure/table/wood/fancy) + canSmoothWith = list(/obj/structure/table/wood/fancy,/obj/structure/table/wood/fancy/black) /obj/structure/table/wood/fancy/New() icon = 'icons/obj/smooth_structures/fancy_table.dmi' //so that the tables place correctly in the map editor ..() +/obj/structure/table/wood/fancy/black + icon_state = "fancy_table_black" + buildstack = /obj/item/stack/tile/carpet/black + +/obj/structure/table/wood/fancy/black/New() + ..() + icon = 'icons/obj/smooth_structures/fancy_table_black.dmi' + /* * Reinforced tables */ diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 3db570db83..1e5c16f665 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -11,10 +11,10 @@ var/mob/living/swirlie = null //the mob being given a swirlie -/obj/structure/toilet/New() +/obj/structure/toilet/Initialize() + . = ..() open = round(rand(0, 1)) update_icon() - ..() /obj/structure/toilet/attack_hand(mob/living/user) @@ -104,6 +104,21 @@ else return ..() +/obj/structure/toilet/secret + var/obj/item/secret + var/secret_type = null + +/obj/structure/toilet/secret/Initialize(mapload) + . = ..() + if (secret_type) + secret = new secret_type(src) + secret.desc += " It's a secret!" + w_items += secret.w_class + contents += secret + + + + /obj/structure/urinal name = "urinal" desc = "The HU-452, an experimental urinal. Comes complete with experimental urinal cake." @@ -239,7 +254,7 @@ qdel(mymist) if(on) - add_overlay(mutable_appearance('icons/obj/watercloset.dmi', "water", MOB_LAYER + 1)) + add_overlay(mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER)) if(watertemp == "freezing") return if(!ismist) @@ -552,7 +567,7 @@ icon_state = "open" color = "#ACD1E9" //Default color, didn't bother hardcoding other colors, mappers can and should easily change it. alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through - layer = WALL_OBJ_LAYER + layer = SIGN_LAYER anchored = 1 opacity = 0 density = 0 @@ -575,13 +590,48 @@ density = 0 open = TRUE +/obj/structure/curtain/attackby(obj/item/W, mob/user) + if (istype(W, /obj/item/toy/crayon)) + color = input(user,"Choose Color") as color + else if(istype(W, /obj/item/weapon/screwdriver)) + if(anchored) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] unscrews [src] from the floor.", "You start to unscrew [src] from the floor...", "You hear rustling noises.") + if(do_after(user, 50*W.toolspeed, target = src)) + if(!anchored) + return + anchored = FALSE + to_chat(user, "You unscrew [src] from the floor.") + else + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] screws [src] to the floor.", "You start to screw [src] to the floor...", "You hear rustling noises.") + if(do_after(user, 50*W.toolspeed, target = src)) + if(anchored) + return + anchored = TRUE + to_chat(user, "You screw [src] to the floor.") + else if(istype(W, /obj/item/weapon/wirecutters)) + if(!anchored) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] cuts apart [src].", "You start to cut apart [src].", "You hear cutting.") + if(do_after(user, 50*W.toolspeed, target = src)) + if(anchored) + return + to_chat(user, "You cut apart [src].") + deconstruct() + else + . = ..() + + /obj/structure/curtain/attack_hand(mob/user) playsound(loc, 'sound/effects/curtain.ogg', 50, 1) toggle() ..() /obj/structure/curtain/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/cloth (loc, 3) + new /obj/item/stack/sheet/cloth (loc, 2) + new /obj/item/stack/sheet/plastic (loc, 2) + new /obj/item/stack/rods (loc, 1) qdel(src) /obj/structure/curtain/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 91ed7a7cd6..375697ff9b 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -158,6 +158,12 @@ if(smooth) queue_smooth_neighbors(src) +/turf/open/floor/carpet/black + icon = 'icons/turf/floors/carpet_black.dmi' + floor_tile = /obj/item/stack/tile/carpet/black + canSmoothWith = list(/turf/open/floor/carpet/black) + + /turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) for(var/I in src) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index a489d0fb6a..46247e88e8 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -344,6 +344,19 @@ result = /obj/item/toy/sword category = CAT_MISC +/datum/crafting_recipe/blackcarpet + name = "Black Carpet" + reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) + result = /obj/item/stack/tile/carpet/black + category = CAT_MISC + +/datum/crafting_recipe/showercurtain + name = "Shower Curtains" + reqs = list(/obj/item/stack/sheet/cloth = 2, /obj/item/stack/sheet/plastic = 2, /obj/item/stack/rods = 1) + result = /obj/structure/curtain + category = CAT_MISC + + /datum/crafting_recipe/chemical_payload name = "Chemical Payload (C4)" result = /obj/item/weapon/bombcore/chemical diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 5e3064eeb5..c2ae6f7e35 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -39,6 +39,7 @@ new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500), + new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/weapon/survivalcapsule/luxury, 3000), new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100), new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150), new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250), diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index efb14b9b14..78ef880200 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -40,3 +40,18 @@ /datum/map_template/shelter/alpha/New() . = ..() whitelisted_turfs = typecacheof(/turf/closed/mineral) + + +/datum/map_template/shelter/beta + name = "Shelter Beta" + shelter_id = "shelter_beta" + description = "An extremly luxurious shelter, containing all \ + the amenities of home, including carpeted floors, hot and cold \ + running water, a gourmet three course meal, cooking facilities, \ + and a deluxe companion to keep you from getting lonely during \ + an ash storm." + mappath = "_maps/templates/shelter_2.dmm" + +/datum/map_template/shelter/beta/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/closed/mineral) diff --git a/icons/obj/lavaland/survival_pod.dmi b/icons/obj/lavaland/survival_pod.dmi index 51358dfe4c6b839120045ff982baa12f666012c9..84ea0e1e83209de9613ebfb1f6a6369a78a4dfd3 100644 GIT binary patch literal 27962 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 Q@Q($+>6>B7bzP$V4GOC|KmY&$ literal 0 HcmV?d00001 diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 5a8afeee510bc271ab7b5ba3d4df813951a581d0..5372e24c05df6f67f4410cf00eac932000f96e51 100644 GIT binary patch delta 11736 zcmZvCWmHsewD(Zbok}A}gMUEj1}RDD?v@@J4k#fY-6$!I3@y#j2qO&w5<`kKQo{fP zcU}Q|-{C4kEvssIjrvL_Su)eXMl7p|EkBgU|i>C(&6!NWfb-HdhkCnV=?dy^v zETfjV4i6C>e+Bt5)wfXL;;3ySaQljYhLrI$fifVJ_>|_)`hW=O@X*PD?8Un74nUwR z`{)%p^;^#E!-NSBZt+zdA0-nVC*Cb}@U%_w_1V`Zngy&>#*H+?o!g)6sf_||o5Fi~ z)4z#4oAw(3SopnlZU%u^Kx#_z`hlO1 z@=EF{8D?%(Kn>>#QnrkeMFdLr73pfzdNe-$)%#=5;$NUcusLG1Yc)xScgWErP zD72@!Wruk#Me7MQFjg8jSg?wzW3mmW`o;Tbo_o zy`K&X4smpHa%^?tkKYsg*l~N2i@f|14%D4fX-oaZ#=vamZRSORFfh&4(kC(K0WP_S zZ?7tKqfxgA4G=d+UO8)&+yZ#wvp81o;v!v{9zHk6j!&*aafE|O2F&5O8)3PDz&PnR z5U84nu9wx4j(z8ncRc-^s5HYkYY5SUkcOYtT_B({XUuK42>UJ5mIj2|!$Rxb8%YTc zIUfAc3?9ui(=IRA8@aU7>i*vV*2t4F+DnQ4s}s23i0E5|Sui$BgIXn_O`)VimV=EN zzMgIFv+@kOn7(t_2XVw|0K6KA>OAhyxVpSDOkrf5nrjkM;pQOGIP_J)n6PT=mAxB~ z{c3uDkGkFIztxl&Crf`idjb8aJjmyb{3ZTV`>V>qT)UVU7I}V;(N-7Gut6MLaht<5 z>OEg0{X<6V=-~DQ4z(hgD8%Jg*LF#2rctKB!D<}bF@9GGN#%0DcS)i7uY>S$;|5)~ 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 BuMq$M diff --git a/icons/turf/floors/carpet_black.dmi b/icons/turf/floors/carpet_black.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d1174203aa9165f3552b07c0c9aae514b8fe7bc6 GIT binary patch literal 1836 zcmV+{2h;e8P)fFDZ*Bkpc$|&XK?}kl7{>9lehS&nMotf1y2M88(7uDEYeL&XrO~%f z8q}$LZtn{}Uj7J{?9d$Bj@74@KCBOJp4gtL&6bkInK-0HR+J3ZU5B_XA?j$;SP1S4 zN{sU%ZGw{C>(Q?B$5eokfKh-Ed;)s%M)CmkW07xu*Yd#c^I`n_>q<|y0(|qkmIr>H598+(fk+VnA`mGeFq{cv3>W~| z3J_UDM#i!uz`(}?!15y?&kF1wkh!Y-2!QY^xOqTiR6G!=#01%0qA{T zE1*ArAOd=MXrCYL!D~a-6Y$J$mC}m2doW=u7Om(yjIFUJ@9U*Ye!(hPPaZ9$6=UE= zpzSepB>;8;kSPHMKGy&w>&c@v67USivm@Z@QQ!QFOC6ng^rX)D7Z(x077@S}5x^D^ zz!nj}77@S}5x^E0N}Ydk6;FV!0c;TgY!QK24W7W7U5+L=cmn$unqY!NAW}qt2t=xQ z0@2|(5r`CB14JNFM1TlHiU<&aNF^h{{5+6+`=EfNQJeSY9}R zVF8ja0oMgij^)K)1F|Oo7Y~5a3uHiGJQrZ@tJfJgd(5T0bOc;IkR^do4@4>*0l#}_ zh(Kt0|8orldLUBRpN~#3TIe2()zpvp5J=aLMC)=0_}vASApv0ScW|(D{YbPl0^mXb z@**&X<9^pbvT!_FV=U{}4=~p;_~IJsGS-+nT0>pN8dFDW@Fd#3kg*~H*wXvqg72j) zo`7F^`>xj}?EMLQax=PgO7Cxaz1sx6KV>u<;g}R-yaB%0SIK?O$ZGuR-A9AfLNdsH;Ntp{qiFJdPgj_ct>4FS6O! zAi$ei5@_VnN9q0QldMA3GC{Aqf)ORp0+ zw=Yki`P|l;)1z#K+VmuwpfA-I{#Em^_O2NM^Y#@8?7qpk;XCL3f4XCFZS0g>pv;%5 z`xn{l%M%dkYahGy$G7s}+0DaN0_K^3i@%W>b(Zl!de?L!VE~eCL zb@v;aeFXwXemb_#UFXXm=5xXH`@gpTkj=h4fu@b1AKF)kHvHlHAG7&}{fW%|hivv0 z2;8;-=-=YiQyV?-X1|@w#WbJ8c~AU`eU)oKghBPTdfCe=RQEhg4;$gKt9_kTs1n!j zuUbaXay;-csFc~XQa><^gdeKU^7&^_DRXJ9e&AV-B6sbpef#QA7=dfvMsVMF`}%{7 zBT6G6pbllu0^8b1Sn%_4!|BOff-Y4?^dIYYj_ivMV9fQDPDcqx(r0hIO1WHRp z06P%@>@=-)2%MkCwomJQ0_W$k?docip!s=hyRz0HY2_&-^^L{cN>KpPXlh zvF*xwpRoCPZ2Kh<(9YO-b{N~PwnFOpInU2y+b@Se==?mkU2TPe=I62P1_A&1d2IXC z69>-EW7{VJf%Eg&b{dgkCnA8IhyZpX0@%qKjoN*mpS{Flr=>+n*)6OO$ zfUUvPOec`fopv@2t&T|`)&4PL7ZJeLdHkuzrr6)ls>>mu{|Z*i?hiDK2Z{-&$5_-D4`j3dk4-ct#@5VeK#NVWzn@h^09!Ntu+|r2e?O~A aC-5IqsjbTSePl)e0000( literal 0 HcmV?d00001 From 603898adbe70e5b017617d24972f54bb8739ba22 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 31 May 2017 08:39:39 -0500 Subject: [PATCH 013/215] Fixes faulty query and logic --- code/controllers/subsystem/dbcore.dm | 2 +- code/game/gamemodes/game_mode.dm.rej | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 code/game/gamemodes/game_mode.dm.rej diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index b052b20f5d..864274b8fb 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -33,7 +33,7 @@ SUBSYSTEM_DEF(dbcore) //This is as close as we can get to the true round end before Disconnect() without changing where it's called, defeating the reason this is a subsystem if(SSdbcore.Connect()) var/sql_station_name = sanitizeSQL(station_name()) - var/datum/DBQuery/query_round_end = SSdbcore.NewQuery("INSERT INTO [format_table_name("round")] (end_datetime, game_mode_result, end_state, station_name) VALUES (Now(), '[SSticker.mode_result]', '[SSticker.end_state]', '[sql_station_name]') WHERE id = [GLOB.round_id]") + var/datum/DBQuery/query_round_end = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET end_datetime = Now(), game_mode_result = '[SSticker.mode_result]', end_state = '[SSticker.end_state]', station_name = '[sql_station_name]' WHERE id = [GLOB.round_id]") query_round_end.Execute() if(IsConnected()) Disconnect() diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej new file mode 100644 index 0000000000..c834b64a56 --- /dev/null +++ b/code/game/gamemodes/game_mode.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) +@@ -84,8 +84,6 @@ + var/sql + if(SSticker && SSticker.mode) + sql += "game_mode = '[SSticker.mode]'" +- if(sql) +- sql += ", " + if(GLOB.revdata.originmastercommit) + if(sql) + sql += ", " From 8afd024a6571f3cf9a0fc6769e9368e761888c87 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 31 May 2017 08:48:04 -0500 Subject: [PATCH 014/215] Fixes ghosts using marker beacon --- code/modules/mining/equipment/marker_beacons.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index 2770897c34..ba9c0e0b42 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -55,14 +55,14 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( var/obj/structure/marker_beacon/M = new(user.loc, picked_color) transfer_fingerprints_to(M) -/obj/item/stack/marker_beacon/AltClick(mob/user) - if(user.incapacitated()) +/obj/item/stack/marker_beacon/AltClick(mob/living/user) + if(user.incapacitated() || !istype(user)) to_chat(user, "You can't do that right now!") return if(!in_range(src, user)) return var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors - if(user.incapacitated() || !in_range(src, user)) + if(user.incapacitated() || !istype(user) || !in_range(src, user)) return if(input_color) picked_color = input_color @@ -127,15 +127,15 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list( else return ..() -/obj/structure/marker_beacon/AltClick(mob/user) +/obj/structure/marker_beacon/AltClick(mob/living/user) ..() - if(user.incapacitated()) + if(user.incapacitated() || !istype(user)) to_chat(user, "You can't do that right now!") return if(!in_range(src, user)) return var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors - if(user.incapacitated() || !in_range(src, user)) + if(user.incapacitated() || !istype(user) || !in_range(src, user)) return if(input_color) picked_color = input_color From 1fd718cf2982065597e1b8c6a9a825d6629ae6cf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 31 May 2017 08:50:11 -0500 Subject: [PATCH 015/215] Makes VV'ing ID cards easier. --- code/game/objects/items/weapons/cards_ids.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 021966570a..143e6dabbe 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -92,6 +92,13 @@ if(mapload && access_txt) access = text2access(access_txt) +/obj/item/weapon/card/id/vv_edit_var(var_name, var_value) + . = ..() + if(.) + switch(var_name) + if("assignment","registered_name") + update_label() + /obj/item/weapon/card/id/attack_self(mob/user) user.visible_message("[user] shows you: \icon[src] [src.name].", \ "You show \the [src.name].") From 12719cb824a5736193d4bf4cd95bbaa901e61416 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 31 May 2017 08:50:30 -0500 Subject: [PATCH 016/215] [Omega] Fixes checkered plating --- _maps/map_files/OmegaStation/OmegaStation.dmm | 35 ++++--------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 16a623b495..f732a4dc79 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -2443,10 +2443,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "aeg" = ( /obj/machinery/conveyor{ @@ -2457,10 +2454,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "aeh" = ( /obj/machinery/conveyor{ @@ -2478,10 +2472,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "aei" = ( /obj/machinery/conveyor{ @@ -4417,10 +4408,7 @@ dir = 9 }, /obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating{ - tag = "icon-plating_warn_end (WEST)"; - icon_state = "plating_warn_end" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "aho" = ( /obj/machinery/conveyor{ @@ -4467,10 +4455,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "ahr" = ( /obj/machinery/conveyor{ @@ -4485,10 +4470,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "ahs" = ( /obj/machinery/conveyor{ @@ -4510,10 +4492,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plating{ - tag = "icon-plating_warn_side (EAST)"; - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/quartermaster/storage) "aht" = ( /obj/machinery/door/poddoor{ From 96eb21fa2a99b81ad2a4fc9a1d6a08d3a0215a52 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 31 May 2017 19:57:52 -0500 Subject: [PATCH 017/215] CereStation Security Department Revamp (and other misc fixes/changes) --- _maps/map_files/Cerestation/cerestation.dmm | 20276 +++++++++++----- .../map_files/Cerestation/cerestation.dmm.rej | 19 + code/game/machinery/computer/security.dm | 8 + icons/obj/computer.dmi | Bin 38677 -> 38787 bytes 4 files changed, 14205 insertions(+), 6098 deletions(-) create mode 100644 _maps/map_files/Cerestation/cerestation.dmm.rej diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm index 92d0902564..bbb106b719 100644 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ b/_maps/map_files/Cerestation/cerestation.dmm @@ -1265,10 +1265,10 @@ }, /area/shuttle/syndicate) "acN" = ( -/turf/closed/wall/r_wall{ +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "acO" = ( /obj/machinery/light, /turf/open/floor/plasteel/black{ @@ -1645,11 +1645,19 @@ }, /area/ai_monitored/security/armory) "adC" = ( -/obj/machinery/flasher/portable, -/turf/open/floor/plasteel/delivery{ +/obj/machinery/door/airlock/security{ + name = "Prisoner Transfer Center"; + req_access_txt = "2" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "adD" = ( /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit{ @@ -1787,13 +1795,9 @@ }, /area/ai_monitored/security/armory) "adS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/obj/item/weapon/ore/glass, +/turf/open/floor/plating/asteroid, +/area/security/transfer) "adT" = ( /obj/structure/rack, /obj/item/weapon/gun/energy/ionrifle, @@ -1824,10 +1828,19 @@ }, /area/ai_monitored/security/armory) "adV" = ( -/turf/open/floor/plasteel{ +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/transfer) "adW" = ( /obj/structure/window/reinforced{ dir = 1 @@ -2003,12 +2016,16 @@ /turf/closed/mineral/random/labormineral, /area/maintenance/asteroid/fore/com_west) "aeq" = ( -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/obj/machinery/camera{ + c_tag = "Brig Cell 5"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aer" = ( /obj/structure/rack, /obj/item/weapon/gun/energy/e_gun{ @@ -2029,52 +2046,30 @@ }, /area/ai_monitored/security/armory) "aes" = ( -/turf/open/floor/plasteel/black{ +/obj/machinery/camera{ + c_tag = "Brig Cell 6"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aet" = ( -/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/weapon/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot{ +/obj/machinery/flasher{ + id = "Cell 6"; pixel_x = 0; - pixel_y = 1; - pixel_x = 3; - pixel_y = -3 + pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 1 }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeu" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2221,21 +2216,13 @@ }, /area/maintenance/asteroid/fore/com_north) "aeK" = ( -/obj/structure/rack, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/item/weapon/gun/energy/e_gun/advtaser, -/obj/item/weapon/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 - }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeL" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ @@ -2274,14 +2261,13 @@ }, /area/ai_monitored/security/armory) "aeM" = ( -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "It's Officer Gunsky, the most rootin'-tootin'-point-and shootin' security bot on this side of the galaxy!"; - name = "Officer Gunsky" +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 }, -/turf/open/floor/plasteel/black{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeN" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2292,11 +2278,15 @@ }, /area/ai_monitored/security/armory) "aeO" = ( -/obj/structure/closet/secure_closet/lethalshots, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "aeP" = ( /turf/open/floor/circuit{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2353,7 +2343,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "aeX" = ( /obj/structure/reagent_dispensers/fueltank, @@ -2430,20 +2420,20 @@ }, /area/ai_monitored/security/armory) "afg" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black{ +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "afh" = ( -/obj/machinery/suit_storage_unit/security, -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "afi" = ( /turf/closed/wall, /area/maintenance/asteroid/fore/com_north) @@ -2590,17 +2580,17 @@ /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_l" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "afu" = ( /obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "afv" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_r" }, -/turf/open/floor/plating/airless, +/turf/open/floor/plating, /area/shuttle/syndicate) "afw" = ( /obj/structure/closet, @@ -2640,35 +2630,27 @@ }, /area/ai_monitored/security/armory) "afz" = ( -/obj/structure/rack, -/obj/item/weapon/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 6"; + name = "Cell Door 6" }, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 8 - }, -/area/ai_monitored/security/armory) -"afA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) +"afA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "afB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -2692,8 +2674,15 @@ }, /area/ai_monitored/security/armory) "afD" = ( -/turf/closed/mineral/random/labormineral, -/area/security/transfer) +/obj/structure/holohoop{ + tag = "icon-hoop (NORTH)"; + icon_state = "hoop"; + dir = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "afE" = ( /turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -2893,12 +2882,15 @@ /turf/open/floor/plating/asteroid, /area/security/prison) "aga" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light{ - dir = 1 +/obj/machinery/camera{ + c_tag = "Brig Cell 4"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating/asteroid, /area/security/prison) "agb" = ( /obj/machinery/hydroponics/soil, @@ -2906,32 +2898,85 @@ /turf/open/floor/plating/asteroid, /area/security/prison) "agc" = ( -/obj/structure/toilet, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "agd" = ( -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 10; +/obj/machinery/door_timer{ + id = "Cell 5"; + name = "Cell 5"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "age" = ( -/turf/open/floor/plasteel/darkred/side{ +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agf" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/darkred/side{ +/obj/machinery/door_timer{ + id = "Cell 6"; + name = "Cell 6"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ @@ -2946,21 +2991,42 @@ }, /area/ai_monitored/security/armory) "agh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agi" = ( -/obj/machinery/light, -/obj/vehicle/secway, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "agj" = ( /obj/machinery/flasher/portable, /obj/machinery/camera/motion{ @@ -3395,8 +3461,16 @@ }, /area/security/prison) "agW" = ( -/obj/item/weapon/cultivator, -/turf/open/floor/plating/astplate{ +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3406,10 +3480,12 @@ }, /area/security/prison) "agY" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 4"; + name = "Cell Door 4"; + req_access_txt = "1" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3426,41 +3502,44 @@ }, /area/ai_monitored/security/armory) "aha" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockMidRight"; + location = "CellBlockUpRight"; + name = "navigation beacon (CellBlockUpRight)" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 5; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahb" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 2"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3524,6 +3603,11 @@ icon_state = "pipe-c" }, /obj/structure/grille/broken, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -3533,6 +3617,11 @@ dir = 4; icon_state = "pipe-j2" }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -3730,33 +3819,28 @@ /area/security/prison) "ahJ" = ( /obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/item/device/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - dir = 2; - name = "Prison Intercom (General)"; - pixel_x = 0; - pixel_y = 24; - prison_radio = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/machinery/camera{ - c_tag = "Brig Long-Term Cells" - }, -/obj/item/seeds/potato, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ahK" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/structure/sign/poster/official/obey{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -3776,26 +3860,35 @@ name = "Asteroid" }) "ahN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"ahO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) -"ahO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/area/security/prison) "ahP" = ( /turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -4044,36 +4137,47 @@ }, /area/security/prison) "aiq" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "air" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor/northright{ - name = "Armory Desk"; - req_access_txt = "3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Armory Desk"; - req_one_access_txt = "38;2" - }, -/obj/item/weapon/paper_bin, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ais" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armoryaccess"; - name = "Armory Shutters" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "ait" = ( /obj/machinery/door/airlock/glass_security{ name = "Armory"; @@ -4092,14 +4196,18 @@ }, /area/security/prison) "aiu" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" +/obj/machinery/door_timer{ + id = "Cell 7"; + name = "Cell 7"; + pixel_x = 32; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4138,25 +4246,30 @@ }, /area/security/prison) "aix" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = -32 }, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aiy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 5"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" }, -/turf/open/floor/plating/astplate{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "aiz" = ( /obj/structure/rack, /obj/item/weapon/pickaxe/mini, @@ -4182,6 +4295,11 @@ "aiC" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4367,22 +4485,26 @@ }, /area/maintenance/asteroid/fore/com_west) "aja" = ( -/obj/structure/table, -/obj/item/weapon/storage/toolbox/mechanical, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/gulag_item_reclaimer{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "ajb" = ( /obj/structure/closet/crate, /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_south) "ajc" = ( -/obj/machinery/light/small{ - dir = 4 - }, /obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4398,8 +4520,13 @@ }, /area/security/prison) "aje" = ( -/obj/structure/table, -/turf/open/floor/plating{ +/obj/machinery/camera{ + c_tag = "Brig Cell 3"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4411,7 +4538,13 @@ }, /area/security/prison) "ajg" = ( -/obj/structure/chair/stool, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -4423,30 +4556,54 @@ }, /area/security/prison) "aji" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ajj" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Prison Wing APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ajk" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4490,12 +4647,14 @@ }, /area/security/prison) "ajo" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/closet/secure_closet/brig{ + id = "Cell 8"; + name = "Cell 8 Locker" }, -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4811,44 +4970,64 @@ }, /area/security/prison) "ajZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/area/security/prison) -"aka" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "permatoggle"; - layer = 2.6; - name = "prisoner transfer door" +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"akb" = ( -/obj/machinery/light{ - dir = 8 +"aka" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless }, -/turf/open/floor/plasteel/darkred{ +/area/security/prison) +"akb" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "akc" = ( -/turf/open/floor/plasteel/darkred{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "akd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -4861,14 +5040,11 @@ }, /area/security/prison) "akf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 8"; + name = "Cell Door 8" }, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5138,28 +5314,31 @@ /turf/open/floor/plating, /area/space) "akG" = ( -/obj/structure/chair{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akH" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/astplate{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akI" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate{ +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "akJ" = ( /obj/effect/turf_decal/stripes/asteroid/line{ icon_state = "ast_warn"; @@ -5177,14 +5356,18 @@ }, /area/maintenance/asteroid/fore/com_north) "akL" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, -/turf/closed/wall/r_wall{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "akM" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/floorgrime{ @@ -5192,7 +5375,8 @@ }, /area/security/prison) "akN" = ( -/obj/machinery/seed_extractor, +/obj/structure/bed, +/obj/item/weapon/bedsheet, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -5216,11 +5400,18 @@ }, /area/security/prison) "akQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5422,14 +5613,15 @@ }, /area/security/prison) "alo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/glass_security{ - name = "Long-Term Holding Cell"; - req_access_txt = "2" +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = -32; + pixel_y = 0 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; - dir = 1; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5457,29 +5649,16 @@ }, /area/security/transfer) "alr" = ( -/obj/item/weapon/shovel, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" - }, -/area/security/transfer) +/turf/open/floor/plating/asteroid, +/area/security/prison) "als" = ( -/obj/item/weapon/ore/glass, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" - }, -/area/security/transfer) +/obj/structure/chair/stool, +/turf/open/floor/plating/asteroid, +/area/security/prison) "alt" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_north) +/obj/machinery/biogenerator, +/turf/open/floor/plating/asteroid, +/area/security/prison) "alu" = ( /obj/structure/rack, /obj/item/weapon/pickaxe/emergency, @@ -5667,24 +5846,35 @@ }, /area/quartermaster/sorting) "alR" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 4"; - dir = 4; - network = list("SS13") +/obj/machinery/door/airlock/glass_security{ + name = "Gulag Dock"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/item/weapon/bedsheet, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "alS" = ( -/obj/machinery/flasher{ - id = "Cell 4"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5698,16 +5888,13 @@ }, /area/security/prison) "alU" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5751,96 +5938,79 @@ }, /area/security/prison) "alW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + icon_state = "intact"; + dir = 8 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockUpLeft"; + location = "CellBlockMidLeft"; + name = "navigation beacon (CellBlockMidLeft)" }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alY" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "alZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + icon_state = "intact"; + dir = 8 }, /obj/structure/cable/orange{ d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "ama" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockLowRight"; + location = "CellBlockMidRight"; + name = "navigation beacon (CellBlockMidRight)" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 + icon_state = "intact"; + dir = 8 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 6; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 10; +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + icon_state = "redcorner"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5876,67 +6046,57 @@ }, /area/security/prison) "ame" = ( -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/door/airlock/glass_security{ + name = "Perma Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amh" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -5951,37 +6111,42 @@ }, /area/security/prison) "amj" = ( -/obj/machinery/flasher{ - id = "Cell 8"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 3"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amk" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 8"; - dir = 9; - icon_state = "camera"; - network = list("SS13"); - tag = "" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 }, -/obj/item/weapon/bedsheet, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "aml" = ( -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" +/obj/structure/chair/stool, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "amm" = ( /obj/machinery/light/small{ dir = 8 @@ -6275,24 +6440,44 @@ /turf/open/floor/plating/airless, /area/space) "amR" = ( -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/door/airlock/glass_security{ + name = "Gulag Dock"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/floorgrime{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/processing) "amS" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amT" = ( -/obj/machinery/door/window/brigdoor/westleft{ - id = "Cell 4"; - name = "Cell Door 4"; - req_access_txt = "1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"amU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -6300,40 +6485,68 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"amU" = ( +"amV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"amW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"amV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"amW" = ( -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 1; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) "amX" = ( -/turf/open/floor/plasteel/red{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "amY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; - dir = 8; +/obj/machinery/door/airlock/glass_security{ + name = "Perma Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -6356,28 +6569,39 @@ }, /area/security/prison) "anb" = ( -/obj/machinery/light/small{ +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 3"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/holopad, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "anc" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless; - icon_plating = "asteroid_dug"; - icon_state = "asteroid_dug"; - name = "ditch" +/obj/structure/table, +/obj/item/device/radio/beacon, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "and" = ( /obj/structure/disposalpipe/sortjunction{ name = "disposal pipe - Custodials"; sortType = 22 }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -6651,19 +6875,10 @@ }, /area/security/prison) "anF" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "anG" = ( /obj/structure/cable/orange{ d1 = 1; @@ -6684,8 +6899,11 @@ }, /area/security/prison) "anH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32; + pixel_y = 0 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -6704,22 +6922,16 @@ }, /area/security/warden) "anK" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "anL" = ( /obj/machinery/door/airlock/glass_security{ name = "Brig Control"; @@ -6740,19 +6952,18 @@ }, /area/security/warden) "anM" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" +/obj/machinery/door_timer{ + id = "Cell 9"; + name = "Cell 9"; + pixel_x = 32; + pixel_y = 0 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "anN" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -6800,16 +7011,11 @@ }, /area/security/prison) "anQ" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -6824,11 +7030,12 @@ }, /area/security/prison) "anS" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 8"; - name = "Cell 8 Locker" +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -7251,29 +7458,38 @@ }, /area/security/prison) "aoM" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"aoN" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"aoN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Brig Control APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/warden) "aoO" = ( /obj/structure/cable/orange{ d1 = 2; @@ -7321,10 +7537,13 @@ }, /area/security/warden) "aoR" = ( -/obj/machinery/light{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Brig Cell 9"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -7608,49 +7827,54 @@ /area/security/prison) "apy" = ( /obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = 0; - pixel_y = 24 + id = "Cell 2"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "apz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 2"; + name = "Cell Door 2"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"apA" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, /obj/structure/cable/orange{ d1 = 2; d2 = 8; icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Brig Cellblock South"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) -"apA" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/paper_bin, -/obj/item/weapon/storage/firstaid/regular{ - pixel_x = 0 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/warden) "apB" = ( /obj/structure/cable/orange{ d1 = 1; @@ -7662,23 +7886,21 @@ }, /area/security/warden) "apC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "apD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump{ - dir = 8; - layer = 2.4; - on = 1 +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 9"; + name = "Cell Door 9" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "apE" = ( /obj/structure/table, /obj/machinery/recharger, @@ -7708,10 +7930,13 @@ }, /area/security/prison) "apG" = ( -/obj/machinery/flasher{ - id = "Cell 7"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 4"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -8469,10 +8694,16 @@ }, /area/security/prison) "arp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 }, -/obj/machinery/holopad, /turf/open/floor/plasteel/red/side{ icon_state = "red"; dir = 8; @@ -8549,16 +8780,21 @@ }, /area/security/warden) "aru" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/door_timer{ + id = "Cell 10"; + name = "Cell 10"; + pixel_x = 32; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "arv" = ( /obj/structure/cable/orange{ d1 = 1; @@ -8606,11 +8842,6 @@ dir = 4; icon_state = "pipe-c" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -8966,11 +9197,20 @@ /turf/open/floor/plating, /area/shuttle/mining) "ash" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/ballistic/shotgun/riot, +/obj/item/weapon/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "asi" = ( /obj/structure/bed/roller, /turf/open/floor/plasteel/white{ @@ -8978,15 +9218,19 @@ }, /area/security/main) "asj" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plasteel/white{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "ask" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/toxin, @@ -9032,19 +9276,32 @@ }, /area/security/warden) "aso" = ( -/obj/structure/chair/office/light{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 8 }, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "asp" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/closet/secure_closet/brig{ + id = "Cell 10"; + name = "Cell 10 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "asq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/holopad, @@ -9172,7 +9429,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = -28 }, -/obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9279,7 +9535,6 @@ /obj/structure/sign/poster/contraband/power{ pixel_x = 32 }, -/obj/effect/landmark/start/chief_engineer, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -9476,16 +9731,51 @@ }, /area/security/processing) "atm" = ( -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "atn" = ( -/turf/open/floor/plasteel/white{ +/obj/structure/rack, +/obj/item/weapon/storage/box/teargas{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "ato" = ( /obj/structure/table, /obj/item/weapon/storage/firstaid/regular, @@ -9507,32 +9797,34 @@ /area/security/prison) "atq" = ( /obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = 0; - pixel_y = 24 + id = "Cell 1"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "atr" = ( -/obj/structure/table, -/obj/item/key/security, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/ears/earmuffs, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/machinery/camera{ - c_tag = "Brig Control Center"; - dir = 4; - icon_state = "camera" +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/keycard_auth{ - pixel_x = -24 +/mob/living/simple_animal/bot/secbot{ + auto_patrol = 1; + desc = "Nobody escapes the Block as long as Ol' Saltwater controls it."; + name = "Ol' Saltwater"; + weaponscheck = 1 }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "ats" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; @@ -9545,18 +9837,15 @@ }, /area/security/warden) "att" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockLowLeft"; + location = "CellBlockLowRight"; + name = "navigation beacon (CellBlockLowRight)" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "atu" = ( /obj/structure/table, /obj/machinery/light, @@ -9566,10 +9855,13 @@ }, /area/security/warden) "atv" = ( -/obj/machinery/flasher{ - id = "Cell 6"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 6"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -9589,15 +9881,11 @@ }, /area/security/prison) "atx" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/weightlifter, +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_north) +/area/security/prison) "aty" = ( /obj/structure/chair/stool, /turf/open/floor/plating{ @@ -9985,39 +10273,45 @@ }, /area/security/processing) "aup" = ( -/obj/machinery/computer/gulag_teleporter_computer, +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, /obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" + c_tag = "Brig Equipment North"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "auq" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aur" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aus" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating{ @@ -10025,11 +10319,15 @@ }, /area/maintenance/asteroid/fore/com_west) "aut" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white{ +/obj/machinery/camera/motion{ + c_tag = "Armory South"; + dir = 1; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/darkred/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "auu" = ( /obj/machinery/door/window/brigdoor/westleft{ id = "Cell 2"; @@ -10043,20 +10341,20 @@ }, /area/security/prison) "auv" = ( -/obj/structure/closet/secure_closet/warden{ - pixel_x = 0 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/item/device/radio, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "auw" = ( /obj/structure/cable/orange{ d1 = 1; @@ -10091,11 +10389,16 @@ }, /area/security/prison) "auz" = ( -/obj/structure/rack, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Brig Perma South"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" }, -/area/maintenance/asteroid/fore/com_north) +/turf/open/floor/plating/asteroid, +/area/security/prison) "auA" = ( /obj/effect/turf_decal/stripes/asteroid/line, /turf/open/floor/plating/astplate{ @@ -10643,14 +10946,10 @@ /turf/open/floor/plating/airless, /area/space) "avy" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "avz" = ( /obj/structure/chair{ dir = 1 @@ -10672,20 +10971,22 @@ }, /area/security/processing) "avB" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Security Equipment APC"; + pixel_x = 24; + pixel_y = 0 + }, /obj/structure/cable/orange{ - d1 = 1; d2 = 2; - icon_state = "1-2" + icon_state = "0-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "avC" = ( /obj/machinery/door/airlock/maintenance{ name = "Fore Asteroid Maintenance Access"; @@ -10740,30 +11041,10 @@ }, /area/security/prison) "avI" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/brig) "avJ" = ( /obj/machinery/door/airlock/glass_security{ name = "Brig Control"; @@ -10832,11 +11113,6 @@ icon_state = "2-4" }, /obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -11159,41 +11435,35 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "awz" = ( -/obj/structure/table, -/obj/item/weapon/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/weapon/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"awA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/security/processing) -"awB" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating, -/area/security/processing) -"awC" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/crew_quarters/heads/hos) +"awA" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"awB" = ( +/obj/structure/closet/l3closet/scientist, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"awC" = ( +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "awD" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11229,72 +11499,77 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"awI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"awJ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awK" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awL" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"awM" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32; - pixel_y = 0 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, /turf/open/floor/plasteel/red/corner{ tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/main) +"awI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"awJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awK" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awL" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"awM" = ( +/obj/structure/closet/secure_closet/warden{ + pixel_x = 0 + }, +/obj/item/device/radio, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"awN" = ( +/obj/machinery/button/door{ + id = "wardencell"; + name = "Cell Access Privacy Shutter"; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) "awO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -11304,14 +11579,17 @@ }, /area/security/prison) "awP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, -/obj/effect/landmark/lightsout, /turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "awQ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11324,51 +11602,46 @@ }, /area/security/prison) "awR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) -"awT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) -"awU" = ( -/obj/machinery/door_timer{ - id = "Cell 6"; - name = "Cell 6"; - pixel_x = 32; - pixel_y = 0 +/area/security/brig) +"awS" = ( +/obj/machinery/light{ + dir = 1 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) +"awT" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"awU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "awV" = ( /obj/machinery/light/small{ dir = 1 @@ -11575,15 +11848,14 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/labor) "axu" = ( -/obj/machinery/button/flasher{ - id = "gulagshuttleflasher"; - name = "Flash Control"; - pixel_x = 0; - pixel_y = -26; - req_access_txt = "1" +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) +/area/crew_quarters/heads/hos) "axv" = ( /obj/machinery/mineral/labor_claim_console{ machinedir = 2; @@ -11610,8 +11882,16 @@ /turf/open/floor/plating, /area/security/processing) "axy" = ( -/turf/open/floor/plating, -/area/security/processing) +/obj/structure/closet/l3closet/scientist, +/obj/structure/sign/goldenplaque{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "axz" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -11623,18 +11903,11 @@ }, /area/security/processing) "axA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, +/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "axB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -11663,28 +11936,25 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "axE" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "axF" = ( -/obj/structure/closet/bombcloset, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 +/obj/structure/closet{ + name = "evidence closet" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "axG" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ on = 1 @@ -11707,15 +11977,13 @@ }, /area/security/prison) "axI" = ( -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = 0; - pixel_y = 24 +/obj/structure/chair/office/light{ + dir = 1 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axJ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11738,32 +12006,26 @@ }, /area/security/prison) "axK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/westright{ + name = "Warden's Desk"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "axM" = ( /obj/structure/cable/orange{ d1 = 1; @@ -11798,85 +12060,38 @@ }, /area/security/prison) "axN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHWEST)"; - icon_state = "red"; - dir = 9; +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel{ +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axQ" = ( -/obj/machinery/flasher{ - id = "Cell 5"; - pixel_x = 0; - pixel_y = 24 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axR" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Brig Cell 5"; - dir = 9; - icon_state = "camera"; - network = list("SS13"); - tag = "" +/obj/structure/chair{ + dir = 8 }, -/obj/item/weapon/bedsheet, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "axS" = ( /obj/machinery/power/apc{ dir = 2; @@ -11915,9 +12130,9 @@ }, /obj/structure/disposalpipe/segment, /obj/structure/cable/orange{ - d1 = 4; + d1 = 1; d2 = 8; - icon_state = "4-8" + icon_state = "1-8" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -12067,7 +12282,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = -28 }, -/obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12090,7 +12304,6 @@ "aym" = ( /obj/structure/table/wood, /obj/item/weapon/paper_bin, -/obj/item/weapon/stamp/hos, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12229,7 +12442,6 @@ /obj/structure/sign/poster/contraband/lamarr{ pixel_x = 32 }, -/obj/effect/landmark/start/research_director, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -12478,36 +12690,29 @@ /turf/open/floor/plasteel/black, /area/shuttle/labor) "azb" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "azc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/table, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"azd" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) -"azd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/processing) +/area/security/main) "aze" = ( /obj/structure/cable/orange{ d1 = 1; @@ -12524,19 +12729,14 @@ }, /area/maintenance/asteroid/fore/com_west) "azf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/machinery/camera{ - c_tag = "Gulag Shuttle Midsection"; - dir = 9; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "azg" = ( /obj/machinery/vending/security, /turf/open/floor/plasteel/showroomfloor{ @@ -12544,19 +12744,30 @@ }, /area/security/main) "azh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = null; + name = "Evidence Storage"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "azi" = ( -/obj/machinery/holopad, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "azj" = ( /obj/machinery/door/window/brigdoor/westleft{ id = "Cell 1"; @@ -12605,32 +12816,22 @@ }, /area/security/prison) "azn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/glass_security{ - name = "Cell Block"; - req_access_txt = "0"; - req_one_access_txt = "38;2" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/plasteel/white{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "azo" = ( -/obj/machinery/door/window/brigdoor/eastleft{ - id = "Cell 5"; - name = "Cell Door 5"; - req_access_txt = "1" - }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 4; +/obj/structure/table/wood, +/obj/item/weapon/folder, +/obj/item/weapon/folder/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "azp" = ( /turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -13156,81 +13357,78 @@ /area/shuttle/labor) "aAp" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless, -/area/space) -"aAq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/turf/open/floor/plating{ +/obj/machinery/door/airlock/glass_security{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) -"aAr" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Prisoner Processing"; - req_access_txt = "2" +/area/crew_quarters/heads/hos) +"aAq" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) +"aAr" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) "aAs" = ( /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aAt" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Security Equipment APC"; - pixel_x = 23; - pixel_y = 2 +/obj/structure/closet/wardrobe/red, +/obj/machinery/light{ + dir = 4 }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) "aAu" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/camera{ - c_tag = "Security Equipment Room"; - dir = 4; - icon_state = "camera" +/obj/structure/closet{ + name = "evidence closet" }, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/holopad, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aAw" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 1"; @@ -13241,37 +13439,42 @@ }, /area/security/prison) "aAx" = ( -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig Cells South 2"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "aAy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 }, -/turf/open/floor/plasteel{ +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Emergency Brig Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "1" + }, +/obj/machinery/button/door{ + id = "armoryaccess"; + name = "Armory Shutter Access"; + pixel_x = 24; + pixel_y = 0; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/warden) "aAz" = ( /obj/machinery/light, /obj/machinery/computer/secure_data, @@ -13280,22 +13483,16 @@ }, /area/security/prison) "aAA" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAB" = ( /obj/structure/cable/orange{ d1 = 1; @@ -13321,78 +13518,48 @@ }, /area/security/prison) "aAC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aAD" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) -"aAD" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/prison) +/area/security/brig) "aAE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAF" = ( -/obj/machinery/door_timer{ - id = "Cell 5"; - name = "Cell 5"; - pixel_y = -32 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/obj/machinery/camera{ - c_tag = "Brig Cells South 1"; - dir = 1; - icon_state = "camera"; - network = list("SS13") - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAG" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 5"; - name = "Cell 5 Locker" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "aAH" = ( /obj/structure/closet/lawcloset, /turf/open/floor/plasteel{ @@ -13400,19 +13567,25 @@ }, /area/security/courtroom) "aAI" = ( -/obj/structure/chair, -/turf/open/floor/plasteel{ +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/security/brig) "aAJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel{ +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/maintenance/asteroid/fore/com_north) "aAK" = ( /obj/structure/chair/comfy/brown, /turf/open/floor/plasteel{ @@ -13753,31 +13926,46 @@ }, /area/security/processing) "aBt" = ( +/obj/structure/sign/map/left/ceres{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/machinery/camera{ + c_tag = "Brig Equipment East"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security") }, -/area/maintenance/asteroid/fore/com_west) -"aBu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aBv" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) +"aBu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"aBv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aBw" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -14028,6 +14216,10 @@ icon_state = "camera"; network = list("SS13") }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, /turf/open/floor/plasteel/darkblue/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -14308,14 +14500,18 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/labor) "aCz" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Labor Camp Shuttle Airlock"; - shuttledocked = 1 - }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/security/processing) +/obj/machinery/door/airlock/glass_security{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) "aCA" = ( /obj/machinery/door/airlock/external{ cyclelinkeddir = 8; @@ -14326,92 +14522,121 @@ }, /area/security/processing) "aCB" = ( -/obj/machinery/holopad, +/obj/structure/table, +/obj/item/clothing/head/beret/sec, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aCC" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/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{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aCD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aCE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/door{ - id = "GulagCivExit"; - name = "Gulag Door Exit"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aCF" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, -/obj/item/device/assembly/flash, -/obj/item/weapon/restraints/handcuffs, -/obj/item/weapon/restraints/handcuffs, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aCG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aCH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) +"aCF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Brig Main West"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aCG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aCH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aCI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/showroomfloor{ +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "aCJ" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -14433,52 +14658,57 @@ }, /area/security/main) "aCK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/turf/open/floor/plasteel/red/corner{ - icon_state = "redcorner"; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/obj/machinery/camera{ + c_tag = "Brig Main Middle"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCN" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/sign/bluecross_2{ + pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -14517,27 +14747,27 @@ }, /area/security/brig) "aCR" = ( -/obj/machinery/camera{ - c_tag = "Brig Hall East" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (NORTH)"; - icon_state = "redcorner"; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aCS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 }, /turf/open/floor/plasteel/red/side{ - tag = "icon-red (NORTHEAST)"; icon_state = "red"; - dir = 5; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -14555,27 +14785,33 @@ }, /area/security/brig) "aCU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/closet/secure_closet/courtroom, +/obj/item/weapon/gavelhammer, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 }, -/turf/open/floor/plasteel/red/side{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aCV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aCW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -14599,24 +14835,33 @@ }, /area/security/courtroom) "aDa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Courtroom North"; + dir = 6; + icon_state = "camera" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aDb" = ( -/turf/open/floor/plasteel/blue/corner{ - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aDc" = ( -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/blue/side{ - baseturf = /turf/open/floor/plating/asteroid/airless +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aDd" = ( @@ -15008,81 +15253,48 @@ /turf/open/floor/plating/airless, /area/shuttle/labor) "aDM" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0; - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aDN" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aDO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aDP" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/main) +"aDO" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aDP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aDQ" = ( /obj/structure/cable/orange{ d1 = 4; @@ -15207,13 +15419,9 @@ }, /area/security/brig) "aDX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -15272,19 +15480,7 @@ }, /area/security/brig) "aEb" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15362,10 +15558,15 @@ }, /area/security/brig) "aEg" = ( -/turf/closed/wall/r_wall{ +/obj/machinery/door/airlock/security{ + name = "Courtroom"; + req_access = null; + req_access_txt = "1" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/brig) +/area/security/courtroom) "aEh" = ( /obj/structure/chair{ dir = 4 @@ -15392,7 +15593,8 @@ }, /area/security/courtroom) "aEk" = ( -/obj/machinery/holopad, +/obj/structure/table/wood, +/obj/item/weapon/gavelblock, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15404,12 +15606,17 @@ }, /area/security/courtroom) "aEm" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/blue/side{ - tag = "icon-blue (NORTHWEST)"; - icon_state = "blue"; - dir = 9; - baseturf = /turf/open/floor/plating/asteroid/airless +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aEn" = ( @@ -15831,7 +16038,6 @@ /obj/item/weapon/storage/secure/safe{ pixel_x = 32 }, -/obj/effect/landmark/start/quartermaster, /turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -15913,15 +16119,19 @@ /turf/open/floor/plating/airless, /area/shuttle/labor) "aFf" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/closet/emcloset, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aFg" = ( /obj/machinery/camera{ c_tag = "Labor Shuttle Dock South"; @@ -15936,21 +16146,19 @@ }, /area/security/processing) "aFh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/obj/machinery/airalarm{ - dir = 8; - icon_state = "alarm0"; - pixel_x = 24 +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aFi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -15960,103 +16168,161 @@ }, /area/security/processing) "aFj" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /obj/structure/cable/orange{ d1 = 1; - d2 = 2; - icon_state = "1-2" + d2 = 4; + icon_state = "1-4" }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - id_tag = "GulagCivExit"; - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aFk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance{ - id_tag = "GulagCivExit"; - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/maintenance/asteroid/fore/com_west) -"aFl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFm" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFn" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFo" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFp" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/secequipment, -/turf/open/floor/plasteel/showroomfloor{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/main) -"aFq" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "prisonbreak"; - layer = 2.6; - name = "emergency prisoner containment blast door" +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/cable/orange, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) +"aFl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFp" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aFq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aFr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -16070,77 +16336,107 @@ }, /area/security/brig) "aFs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Brig Hall West"; - dir = 1; - icon_state = "camera"; - network = list("SS13") +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFw" = ( -/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFx" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless @@ -16150,37 +16446,51 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFz" = ( /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16201,45 +16511,72 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /obj/machinery/light, /turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFE" = ( -/turf/open/floor/plasteel/red/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFF" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aFG" = ( -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16808,55 +17145,40 @@ }, /area/security/checkpoint/supply) "aGE" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aGF" = ( -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/detectives_office) "aGG" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aGH" = ( -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/area/lawoffice) "aGI" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -16880,69 +17202,54 @@ }, /area/lawoffice) "aGK" = ( -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aGL" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerinterior"; - name = "privacy shutters" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aGM" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/turf/open/floor/wood{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) -"aGN" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, +/area/security/brig) +"aGM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerinterior"; - name = "privacy shutters" +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) +"aGN" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aGO" = ( /turf/open/floor/plasteel/red/side{ icon_state = "red"; @@ -16956,25 +17263,32 @@ }, /area/security/brig) "aGQ" = ( -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "0"; - req_one_access_txt = "38;63" +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plasteel/red/corner{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aGR" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig Checkpoint"; + req_access_txt = "0"; + req_one_access_txt = "38;63" }, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 4; +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -16999,7 +17313,9 @@ /area/security/courtroom) "aGU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17009,10 +17325,12 @@ }, /area/security/courtroom) "aGW" = ( -/turf/open/floor/plasteel/blue/corner{ - tag = "icon-bluecorner (EAST)"; - icon_state = "bluecorner"; - dir = 4; +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTHWEST)"; + icon_state = "blue"; + dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17285,21 +17603,14 @@ }, /area/security/checkpoint/supply) "aHy" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ +/obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; - name = "Labor Shuttle Dock APC"; - pixel_x = 0; - pixel_y = 24 + on = 1 }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/processing) +/area/security/main) "aHz" = ( /obj/structure/cable/orange{ d1 = 2; @@ -17336,11 +17647,11 @@ }, /area/security/detectives_office) "aHC" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHD" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, @@ -17350,17 +17661,25 @@ }, /area/security/detectives_office) "aHE" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHF" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/carpet{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aHG" = ( /obj/structure/filingcabinet, /obj/item/device/radio/intercom{ @@ -17373,16 +17692,16 @@ }, /area/lawoffice) "aHH" = ( -/obj/machinery/button/door{ - id = "lawyerinterior"; - name = "Privacy Shutters"; - pixel_x = 0; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/wood{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aHI" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 1; @@ -17394,47 +17713,38 @@ }, /area/lawoffice) "aHJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/wood{ +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aHK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/power/apc{ - dir = 4; - name = "Lawyer's Office APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aHL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/flasher{ - id = "HoldingCell"; - name = "Holding Cell Flash"; - pixel_x = -24; - pixel_y = 0 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, /turf/open/floor/plasteel/red/side{ icon_state = "red"; - dir = 10; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aHL" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Brig Lobby West"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -17449,32 +17759,40 @@ }, /area/security/brig) "aHN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair, /turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; icon_state = "red"; - dir = 6; + dir = 5; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHO" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, /obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plasteel/red/corner{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -17488,17 +17806,18 @@ }, /area/security/brig) "aHR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/red/side{ +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "aHS" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 6; +/obj/machinery/camera{ + c_tag = "Brig Lobby Checkpoint"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/showroomfloor{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -17530,11 +17849,11 @@ }, /area/security/courtroom) "aHW" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) @@ -17892,35 +18211,20 @@ }, /area/security/checkpoint/supply) "aIF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate{ +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aIG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/obj/effect/landmark/secequipment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "aIH" = ( /obj/structure/cable/orange{ d1 = 4; @@ -17936,25 +18240,20 @@ }, /area/maintenance/asteroid/fore/com_west) "aII" = ( -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Detective's Office APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - tag = "icon-ast_warn_end (WEST)"; - icon_state = "ast_warn_end"; +/obj/structure/chair/comfy/brown{ dir = 8 }, -/turf/open/floor/plating/astplate{ +/obj/effect/landmark/start/detective, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aIJ" = ( /obj/machinery/airalarm{ dir = 4; @@ -17981,61 +18280,14 @@ /area/security/detectives_office) "aIM" = ( /obj/structure/table/wood, -/obj/item/weapon/storage/fancy/cigarettes, -/obj/item/clothing/glasses/sunglasses, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet{ +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aIN" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/effect/landmark/start/detective, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aIO" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28; - pixel_y = 0 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aIP" = ( -/obj/structure/rack, -/obj/item/weapon/storage/briefcase, -/obj/item/weapon/storage/briefcase, -/obj/machinery/camera{ - c_tag = "Lawyer's Office"; - dir = 4; - icon_state = "camera" - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIQ" = ( -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIR" = ( -/obj/structure/table/wood, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aIS" = ( /obj/structure/table/wood, /obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; @@ -18045,28 +18297,84 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aIT" = ( +"aIO" = ( /obj/structure/table/wood, /obj/item/device/flashlight/lamp/green, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aIU" = ( +"aIP" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" - }, /obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) +"aIQ" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"aIR" = ( +/obj/machinery/door/window/brigdoor/southleft{ + name = "Security Checkpoint Waiting Cell"; + req_one_access_txt = "38;63" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aIU" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aIV" = ( /obj/structure/chair{ dir = 1 @@ -18083,13 +18391,12 @@ }, /area/security/courtroom) "aIW" = ( -/obj/structure/chair{ - dir = 1 - }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aIX" = ( @@ -18097,24 +18404,27 @@ dir = 1 }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aIY" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aIZ" = ( -/obj/structure/chair{ - dir = 1 - }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/courtroom) "aJa" = ( @@ -18495,11 +18805,12 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/com_west) "aJM" = ( -/obj/machinery/light/small, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) "aJN" = ( /obj/structure/table/wood, /obj/item/weapon/storage/box/evidence, @@ -18533,10 +18844,20 @@ }, /area/security/detectives_office) "aJQ" = ( -/turf/open/floor/carpet{ +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aJR" = ( /obj/machinery/airalarm{ dir = 4; @@ -18550,19 +18871,11 @@ }, /area/lawoffice) "aJS" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aJT" = ( /obj/structure/filingcabinet, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -18580,29 +18893,37 @@ }, /area/security/brig) "aJV" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "outterbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aJW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/orange{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" }, -/turf/open/floor/plasteel{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/brig) -"aJW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -18903,56 +19224,23 @@ /area/security/detectives_office) "aKB" = ( /obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKC" = ( -/obj/structure/table/wood, -/obj/item/device/camera/detective, -/obj/item/weapon/lighter, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKD" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/carpet{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/security/detectives_office) -"aKE" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aKF" = ( -/obj/structure/table/wood, -/obj/item/weapon/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, /obj/item/weapon/folder/blue{ pixel_x = 5; pixel_y = 5 }, -/obj/structure/disposalpipe/segment, +/obj/item/weapon/folder/red{ + pixel_x = 8; + pixel_y = 6 + }, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aKG" = ( +"aKC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, /obj/structure/cable/orange{ d1 = 1; d2 = 2; @@ -18962,17 +19250,61 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) -"aKH" = ( +"aKD" = ( /obj/machinery/photocopier, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" +/obj/machinery/button/door{ + id = "lawyer"; + name = "Privacy Shutters"; + pixel_x = 24; + pixel_y = -3 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/lawoffice) +"aKE" = ( +/obj/machinery/camera{ + c_tag = "Brig Holding Cell"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKF" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aKH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) "aKI" = ( /obj/machinery/light/small{ dir = 8 @@ -19518,31 +19850,19 @@ }, /area/maintenance/asteroid/fore/com_west) "aLD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aLE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Security SMES"; - dir = 6; - icon_state = "camera" - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table/wood, +/obj/item/device/camera/detective, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/grimy{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aLF" = ( /obj/structure/cable/orange{ d1 = 2; @@ -19567,31 +19887,41 @@ }, /area/security/detectives_office) "aLH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 }, -/turf/open/floor/plasteel/grimy{ +/obj/item/weapon/pen, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, -/turf/open/floor/plasteel/grimy{ +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 8; - on = 1; - scrub_Toxins = 0 +/obj/machinery/power/apc{ + dir = 4; + name = "Lawyer's Office APC"; + pixel_x = 24; + pixel_y = 0 }, -/turf/open/floor/plasteel/grimy{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aLK" = ( /obj/structure/table/wood, /obj/item/weapon/paper_bin{ @@ -19619,12 +19949,14 @@ }, /area/lawoffice) "aLM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/structure/chair{ + dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aLN" = ( @@ -19651,12 +19983,14 @@ }, /area/security/courtroom) "aLP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/structure/chair{ + dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aLQ" = ( @@ -20006,7 +20340,10 @@ }, /area/maintenance/asteroid/fore/cargo_south) "aMu" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -20023,16 +20360,13 @@ }, /area/maintenance/asteroid/fore/com_west) "aMw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/open/floor/plating{ +/turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -20051,23 +20385,13 @@ }, /area/maintenance/asteroid/fore/com_west) "aMy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "aMz" = ( /obj/machinery/power/terminal{ tag = "icon-term (EAST)"; @@ -20188,11 +20512,8 @@ }, /area/lawoffice) "aMK" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -20208,36 +20529,43 @@ /area/security/brig) "aMM" = ( /obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/storage/box/cups, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMN" = ( -/obj/machinery/light, -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMO" = ( -/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/camera{ + c_tag = "Courtroom South"; + dir = 1; + icon_state = "camera"; + network = list("SS13") + }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "aMQ" = ( @@ -20684,43 +21012,47 @@ }, /area/maintenance/asteroid/fore/com_west) "aNC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/power/apc{ + dir = 1; + name = "Fore Asteroid Maintenace APC"; + pixel_x = 0; + pixel_y = 24 }, +/obj/effect/turf_decal/stripes/end, /obj/structure/cable/orange{ - d1 = 1; d2 = 2; - icon_state = "1-2" + icon_state = "0-2" }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "aND" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + icon_state = "0-2"; + d2 = 2 }, -/obj/machinery/light/small{ - dir = 4 +/obj/machinery/power/terminal{ + tag = "icon-term (WEST)"; + icon_state = "term"; + dir = 8 }, -/obj/structure/sign/electricshock{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) "aNE" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" }, -/turf/closed/wall/r_wall{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/detectives_office) +/area/lawoffice) "aNF" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -20738,40 +21070,50 @@ }, /area/lawoffice) "aNG" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"aNH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, /obj/structure/cable/orange{ d1 = 1; d2 = 8; icon_state = "1-8" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" }, -/turf/open/floor/wood{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/lawoffice) -"aNH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters{ - id = "lawyerexterior"; - name = "privacy shutters" - }, -/obj/machinery/door/firedoor, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/lawoffice) +/area/security/brig) "aNI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/glass{ @@ -20787,8 +21129,11 @@ }, /area/security/brig) "aNJ" = ( -/obj/machinery/door/airlock/glass{ - name = "Brig Lobby" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -20814,8 +21159,8 @@ "aNM" = ( /obj/structure/grille, /obj/structure/window/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -21202,20 +21547,14 @@ }, /area/hallway/primary/starboard/fore) "aOv" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 10"; - dir = 6; - icon_state = "camera" - }, /obj/structure/cable/orange{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/turf/open/floor/plasteel/neutral/corner{ - tag = "icon-neutralcorner (EAST)"; - icon_state = "neutralcorner"; - dir = 4; +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21249,11 +21588,6 @@ }, /area/hallway/primary/fore) "aOy" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 2"; - dir = 6; - icon_state = "camera" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, @@ -21278,6 +21612,11 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/camera{ + c_tag = "Command Asteroid Hall 2"; + dir = 6; + icon_state = "camera" + }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -21298,9 +21637,8 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21334,9 +21672,8 @@ }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21349,10 +21686,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21369,9 +21711,8 @@ pixel_y = 32 }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -21427,11 +21768,6 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 32 }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -23839,6 +24175,8 @@ pixel_x = 1; pixel_y = 5 }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -24551,10 +24889,8 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/com_east) "aTz" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) +/turf/closed/mineral, +/area/security/prison) "aTA" = ( /obj/structure/rack, /obj/item/clothing/suit/space/fragile, @@ -30014,6 +30350,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; @@ -30037,6 +30374,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -33367,12 +33705,6 @@ /area/hallway/primary/central) "bjG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28; - pixel_y = 0 - }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -38699,7 +39031,7 @@ /area/engine/engineering) "bsb" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39493,12 +39825,12 @@ /area/engine/supermatter) "btv" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/general/visible{ icon_state = "intact"; dir = 6 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -39532,11 +39864,11 @@ /area/engine/supermatter) "btz" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 10 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40424,11 +40756,11 @@ /area/engine/engineering) "buW" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 8 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40442,12 +40774,12 @@ /area/engine/supermatter) "buY" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/manifold/general/visible{ icon_state = "manifold"; dir = 4 }, /obj/machinery/door/firedoor, +/obj/structure/window/reinforced/highpressure/fulltile, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -40771,12 +41103,13 @@ }, /area/hallway/primary/starboard) "bvw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41102,11 +41435,6 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41381,6 +41709,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -41405,8 +41737,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" + dir = 4 }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; @@ -42597,7 +42928,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -42608,6 +42938,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -43157,9 +43488,9 @@ /area/hallway/primary/starboard) "bzL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; @@ -43565,12 +43896,12 @@ d2 = 4; icon_state = "2-4" }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, /obj/item/device/assembly/mousetrap/armed, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -44038,7 +44369,7 @@ name = "Broom Closet"; req_access_txt = "0" }, -/turf/closed/wall{ +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/starboard) @@ -46096,6 +46427,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -46112,6 +46444,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -49321,7 +49654,11 @@ d2 = 8; icon_state = "4-8" }, -/turf/closed/wall{ +/obj/machinery/door/airlock/maintenance{ + name = "Port Asteroid Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/library/lounge) @@ -52285,6 +52622,9 @@ "bPz" = ( /obj/machinery/computer/apc_control, /obj/machinery/light, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -57332,6 +57672,7 @@ /obj/machinery/vending/boozeomat{ req_access_txt = "0" }, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -59265,6 +59606,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -65085,6 +65427,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; @@ -65415,6 +65758,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -66034,6 +66378,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ icon_state = "neutralcorner"; dir = 8; @@ -66506,6 +66851,9 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/blue/corner{ tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; @@ -67195,6 +67543,9 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -67683,6 +68034,9 @@ dir = 8 }, /obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel/arrival{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68167,6 +68521,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68180,6 +68535,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68201,6 +68557,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -68220,6 +68577,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -74786,12 +75144,20 @@ }, /area/ai_monitored/turret_protected/ai) "cEo" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate{ +/obj/machinery/door/airlock/security{ + id_tag = "laborexit"; + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/processing) "cEp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74814,9 +75180,12 @@ }, /area/quartermaster/sorting) "cEr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall{ +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 3"; + name = "Cell Door 3"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -74827,14 +75196,22 @@ }, /area/security/warden) "cEt" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/closed/wall/r_wall{ +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/brig) "cEu" = ( /obj/machinery/newscaster/security_unit{ pixel_x = 32 @@ -74844,82 +75221,79 @@ }, /area/crew_quarters/heads/captain) "cEv" = ( -/obj/machinery/light/small{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cEw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 }, -/turf/closed/wall/r_wall{ +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEx" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cEz" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 }, -/obj/structure/plasticflaps, -/turf/open/floor/plating{ +/obj/item/weapon/gun/energy/e_gun, +/obj/item/weapon/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEA" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Brig" +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Gunsky, the most rootin'-tootin'-point-and shootin' security bot on this side of the galaxy!"; + name = "Officer Gunsky" }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Armory Delievery Chute"; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating{ +/obj/machinery/holopad, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/armory) "cEC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -74953,11 +75327,20 @@ }, /area/security/courtroom) "cEG" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall{ +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/courtroom) +/area/maintenance/asteroid/fore/com_north) "cEH" = ( /obj/structure/sign/poster/random{ name = "random contraband poster"; @@ -75017,11 +75400,13 @@ }, /area/crew_quarters/heads/hop) "cEP" = ( -/obj/structure/bed, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_x = -32 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -75033,17 +75418,8 @@ /area/crew_quarters/locker) "cER" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/structure/window/fulltile, /obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" - }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -75057,15 +75433,9 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CommandWest"; - location = "Security"; - name = "navigation beacon (Security)" - }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -75445,7 +75815,7 @@ /area/chapel/office) "cFJ" = ( /obj/structure/plasticflaps{ - name = "Officer Beepsky's Home" + name = "Officer Pipsqueak's Home" }, /turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -75658,14 +76028,21 @@ }, /area/science/misc_lab) "cGe" = ( -/obj/structure/chair/office/light{ - dir = 4 +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 }, -/obj/effect/landmark/start/warden, -/turf/open/floor/plasteel/showroomfloor{ +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/warden) +/area/security/prison) "cGf" = ( /obj/structure/chair/office/light{ dir = 8 @@ -75697,11 +76074,15 @@ }, /area/quartermaster/office) "cGj" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel/showroomfloor{ +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/main) +/area/security/brig) "cGk" = ( /turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -76149,16 +76530,30 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - icon_state = "red"; - dir = 8; +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76189,51 +76584,22 @@ req_one_access_txt = "38;63" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (WEST)"; - icon_state = "redcorner"; - dir = 8; +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76279,27 +76645,36 @@ }, /area/security/brig) "cHk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/preopen{ - id = "frontbrig"; - layer = 2.6; - name = "Emergency External Blast Doors" +/obj/structure/table/reinforced, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/door/window/brigdoor/westright{ + name = "Brig Entry Desk"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 1; - on = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/poster/official/help_others{ - pixel_x = -32 +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76309,15 +76684,14 @@ }, /area/security/brig) "cHn" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "outterbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" }, -/turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; - icon_state = "redcorner"; - dir = 4; +/turf/open/floor/plasteel/red{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76336,14 +76710,17 @@ }, /area/security/brig) "cHp" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 }, /turf/open/floor/plasteel/vault{ - baseturf = /turf/open/floor/plating/asteroid/airless; - dir = 5 + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 }, /area/security/courtroom) "cHq" = ( @@ -76364,52 +76741,51 @@ }, /area/security/checkpoint/supply) "cHr" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime{ +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHs" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/flasher{ - id = "HoldingCell"; - pixel_x = 24; - pixel_y = 0 - }, -/turf/open/floor/plasteel/floorgrime{ +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + icon_state = "redcorner"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHu" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) "cHv" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Brig Lobby East"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security") }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76450,16 +76826,9 @@ }, /area/security/brig) "cHz" = ( -/obj/structure/chair{ - dir = 8 - }, /obj/machinery/light{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official + dir = 4; + icon_state = "tube1" }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -76528,8 +76897,10 @@ }, /area/security/brig) "cHG" = ( -/obj/structure/table, -/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-21"; + icon_state = "plant-21" + }, /turf/open/floor/plasteel/red/corner{ icon_state = "redcorner"; dir = 8; @@ -76582,7 +76953,7 @@ /area/security/brig) "cHJ" = ( /obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/brig) @@ -76637,15 +77008,9 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -76681,9 +77046,8 @@ icon_state = "camera" }, /turf/open/floor/plasteel/red/corner{ - tag = "icon-redcorner (EAST)"; icon_state = "redcorner"; - dir = 4; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/hallway/primary/fore) @@ -78103,15 +78467,10 @@ }, /area/maintenance/asteroid/fore/com_north) "cKJ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating{ +/turf/closed/wall/r_wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "cKK" = ( /obj/structure/cable/orange{ d1 = 4; @@ -78270,11 +78629,10 @@ }, /area/maintenance/asteroid/fore/cargo_west) "cKZ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime{ +/turf/closed/wall/rust{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_north) +/area/security/prison) "cLa" = ( /obj/machinery/light/small{ dir = 8 @@ -78321,11 +78679,20 @@ }, /area/maintenance/asteroid/fore/com_north) "cLf" = ( -/obj/structure/chair/stool, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/prison) +/area/security/brig) "cLg" = ( /obj/structure/cable/orange{ d1 = 1; @@ -78506,6 +78873,9 @@ locked = 0; pixel_y = 23 }, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, /turf/open/floor/plasteel/brown{ baseturf = /turf/open/floor/plating/asteroid/airless; dir = 9; @@ -78536,14 +78906,10 @@ }, /area/quartermaster/qm) "cLB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/detectives_office) "cLC" = ( /obj/structure/cable/orange{ d2 = 2; @@ -78658,6 +79024,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/quartermaster, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -78864,6 +79231,11 @@ d2 = 4; icon_state = "2-4" }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -80073,6 +80445,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/sign/map/left/ceres{ + pixel_y = 32 + }, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -80225,6 +80600,7 @@ /obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/plasteel/barber{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -81114,6 +81490,7 @@ /obj/structure/chair/office/light{ dir = 4 }, +/obj/effect/landmark/start/chief_engineer, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -81939,6 +82316,9 @@ /area/crew_quarters/heads/hor) "cSw" = ( /obj/structure/displaycase/labcage, +/obj/structure/sign/map/left/ceres{ + pixel_x = 32 + }, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -82056,6 +82436,7 @@ /obj/structure/chair/office/dark{ dir = 4 }, +/obj/effect/landmark/start/research_director, /turf/open/floor/plasteel/cafeteria{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -82703,38 +83084,63 @@ }, /area/ai_monitored/security/armory) "cTV" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTW" = ( -/turf/open/floor/plasteel/darkred{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTX" = ( -/obj/machinery/button/door{ - id = "armoryaccess"; - name = "Armory Shutter Access"; - pixel_x = -28 - }, -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/darkred{ - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) -"cTY" = ( -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/darkred{ +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) +"cTW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"cTX" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"cTY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) "cTZ" = ( /obj/structure/closet/secure_closet/CMO, /turf/open/floor/plasteel/barber{ @@ -83581,28 +83987,13 @@ }, /area/maintenance/disposal/incinerator) "cVw" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Armory APC"; - pixel_x = 0; - pixel_y = 24 +/obj/item/weapon/ore/glass, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/rack, -/obj/item/weapon/storage/box/chemimp{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/glass/bottle/morphine, -/turf/open/floor/plasteel/darkred/side{ - icon_state = "darkred"; - dir = 1; - baseturf = /turf/open/floor/plating/asteroid/airless - }, -/area/ai_monitored/security/armory) +/turf/open/floor/plating/asteroid, +/area/security/transfer) "cVx" = ( /obj/structure/cable/orange{ d1 = 4; @@ -83635,65 +84026,102 @@ }, /area/ai_monitored/security/armory) "cVz" = ( -/obj/structure/closet/secure_closet{ - name = "contraband locker"; - req_access_txt = "3" +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" }, -/obj/effect/spawner/lootdrop/armory_contraband{ - loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/ai_monitored/security/armory) +/area/security/prison) "cVA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 0; - scrub_Toxins = 0 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, -/turf/open/floor/plasteel/black{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVB" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/black{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVC" = ( -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 1"; + name = "Cell 1 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation1"; + name = "Cell 1 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVD" = ( -/obj/machinery/airalarm{ - frequency = 1439; - locked = 0; - pixel_y = 23 +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/black{ +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, /obj/machinery/camera{ - c_tag = "Security Interrogation"; - dir = 9; + c_tag = "Brig Perma Cell 1"; + dir = 10; icon_state = "camera"; - network = list("SS13"); - tag = "null" + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black{ +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83706,17 +84134,19 @@ }, /area/security/prison) "cVH" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVI" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83737,17 +84167,37 @@ }, /area/security/prison) "cVL" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/black{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) "cVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/black{ +/obj/machinery/button/flasher{ + id = "PCell 2"; + name = "Cell 2 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation2"; + name = "Cell 2 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83767,19 +84217,17 @@ }, /area/security/prison) "cVP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, /obj/structure/cable/orange{ d1 = 1; - d2 = 2; - icon_state = "1-2" + d2 = 8; + icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door_timer{ - id = "Cell 8"; - name = "Cell 8"; - pixel_x = 32; - pixel_y = 0 - }, -/turf/open/floor/plasteel{ +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 8; baseturf = /turf/open/floor/plating/asteroid/airless }, /area/security/prison) @@ -83799,15 +84247,12 @@ }, /area/security/transfer) "cVR" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVS" = ( /obj/structure/cable/orange{ d1 = 1; @@ -83888,28 +84333,52 @@ }, /area/security/transfer) "cVX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating{ +/obj/machinery/button/flasher{ + id = "PCell 5"; + name = "Cell 5 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation5"; + name = "Cell 5 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVY" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 }, -/obj/machinery/light/small{ - dir = 1 +/obj/machinery/button/door{ + id = "permabolt5"; + name = "Cell 5 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 }, -/turf/open/floor/plating/astplate{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/security/transfer) +/area/security/prison) "cVZ" = ( /obj/structure/cable/orange{ d1 = 1; @@ -84426,6 +84895,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral/corner{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -86555,6 +87025,7 @@ /obj/structure/table, /obj/item/weapon/storage/firstaid/o2, /obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/defibrillator/loaded, /turf/open/floor/plasteel/whiteblue/side{ tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; @@ -88101,15 +88572,15 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_west) "deY" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess"; + name = "Armory Shutters" }, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "deZ" = ( /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -88121,22 +88592,30 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dfb" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating{ +/obj/vehicle/secway, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 }, -/turf/open/floor/plating{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 9; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfd" = ( /obj/structure/cable/orange{ d1 = 4; @@ -88171,19 +88650,13 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dfi" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfj" = ( /obj/machinery/power/apc{ dir = 4; @@ -88241,16 +88714,22 @@ /turf/open/floor/plating/asteroid, /area/maintenance/asteroid/fore/cargo_west) "dfp" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/vehicle/secway, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ +/obj/machinery/button/door{ + id = "armoryaccess2"; + name = "Armory Shutter Access"; + pixel_x = 0; + pixel_y = -28; + req_access_txt = "3" + }, +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/armory) "dfq" = ( /turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless @@ -88268,19 +88747,19 @@ }, /area/maintenance/asteroid/fore/cargo_west) "dft" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = 28; + pixel_y = 0 }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; baseturf = /turf/open/floor/plating/asteroid/airless }, -/area/maintenance/asteroid/fore/com_west) +/area/security/main) "dfu" = ( /obj/structure/grille, /turf/open/floor/plating/astplate{ @@ -88630,12 +89109,15 @@ }, /area/maintenance/asteroid/fore/cargo_south) "dgt" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plating/astplate{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -88739,8 +89221,11 @@ }, /area/maintenance/asteroid/fore/cargo_south) "dgH" = ( -/obj/structure/closet, -/turf/open/floor/plating{ +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -88753,9 +89238,8 @@ }, /area/maintenance/asteroid/fore/com_west) "dgJ" = ( -/obj/structure/girder, /obj/structure/grille, -/turf/open/floor/plating{ +/turf/open/floor/plasteel/floorgrime{ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/maintenance/asteroid/fore/com_west) @@ -89726,6 +90210,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel/neutral{ baseturf = /turf/open/floor/plating/asteroid/airless }, @@ -90274,6 +90759,7601 @@ baseturf = /turf/open/floor/plating/asteroid/airless }, /area/science/server) +"dkF" = ( +/turf/open/space/basic, +/area/mine/unexplored{ + name = "Command Asteroid" + }) +"dkG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkH" = ( +/obj/structure/rack, +/obj/item/weapon/shovel, +/obj/item/weapon/shovel, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkI" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkK" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid, +/area/security/transfer) +"dkL" = ( +/obj/structure/sign/poster/contraband/fun_police{ + pixel_y = 32 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkM" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkN" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkO" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkP" = ( +/obj/item/weapon/ore/glass, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkQ" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Prisoner Transfer APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkS" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkT" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkU" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkV" = ( +/obj/item/weapon/ore/glass, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkW" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/transfer) +"dkY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dkZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dla" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dlb" = ( +/obj/machinery/door/airlock/security{ + name = "Prisoner Transfer Center"; + req_access_txt = "2" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dld" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dle" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space) +"dlg" = ( +/obj/machinery/computer/gulag_teleporter_computer, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlh" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dli" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlj" = ( +/obj/machinery/flasher{ + id = "Cell 5"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlk" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dll" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlm" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dln" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlo" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/hidden, +/obj/machinery/meter, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlq" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/space) +"dls" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlt" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlv" = ( +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock North"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dly" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlz" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlA" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlB" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlC" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Mix To Perma" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlD" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 10 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlE" = ( +/obj/machinery/door/airlock/glass_external{ + cyclelinkeddir = 2 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dlF" = ( +/turf/closed/wall/rust, +/area/maintenance/asteroid/fore/com_north) +"dlG" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"dlH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlI" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Shuttle Dock APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dlJ" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlK" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 5"; + name = "Cell 5 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlL" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 6"; + name = "Cell 6 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlM" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Perma Storage" + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 4"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security"); + tag = "icon-camera (SOUTHWEST)" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlN" = ( +/obj/structure/table, +/obj/item/device/electropack, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlO" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlR" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlS" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/item/seeds/random, +/obj/machinery/light/small, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlT" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlU" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlV" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlW" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dlX" = ( +/turf/closed/mineral, +/area/security/prison) +"dlY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dlZ" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "1" + }, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/labor) +"dma" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2"; + shuttledocked = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmb" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dme" = ( +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmg" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmi" = ( +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 5"; + name = "Cell Door 5" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dml" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmn" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dms" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmu" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmv" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma North"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmw" = ( +/turf/closed/mineral, +/area/security/prison) +"dmx" = ( +/obj/machinery/door/airlock/glass_external{ + cyclelinkeddir = 2 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asteroid/fore/com_north) +"dmy" = ( +/obj/machinery/computer/shuttle/labor, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmC" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmD" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmF" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 7"; + name = "Cell 7 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmG" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 7"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmH" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 3"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmJ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 1"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmL" = ( +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmM" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation1"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmN" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmO" = ( +/obj/structure/holohoop, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmP" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dmQ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dmR" = ( +/turf/closed/mineral, +/area/security/prison) +"dmS" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmT" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmU" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dmV" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"dmW" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmY" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dmZ" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockUpRight"; + location = "CellBlockUpLeft"; + name = "navigation beacon (CellBlockUpLeft)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dna" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnc" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 7"; + name = "Cell Door 7" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnd" = ( +/obj/machinery/flasher{ + id = "Cell 7"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dne" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell 1 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnf" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dng" = ( +/turf/closed/mineral, +/area/security/prison) +"dnh" = ( +/turf/closed/mineral, +/area/security/prison) +"dni" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnk" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnl" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnm" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnn" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dno" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnp" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnq" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnr" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dns" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnt" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock main"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnx" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dny" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnD" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnE" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dnF" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dnG" = ( +/turf/closed/mineral, +/area/security/prison) +"dnH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dnI" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnJ" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnK" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnL" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnM" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnN" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/syndicate) +"dnO" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 4; + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnP" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dnT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnW" = ( +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnX" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation2"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnY" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dnZ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dob" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dod" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dof" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dog" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 8"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doh" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell 2 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doi" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doj" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dok" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Asteroid Maintenance Access"; + req_access_txt = "12" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dol" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dom" = ( +/obj/machinery/disposal/deliveryChute{ + desc = "A chute for the reformed crewmember to re-enter the station population."; + dir = 1; + icon_state = "intake"; + name = "Gulag Exit Chute"; + tag = "icon-intake (NORTH)" + }, +/obj/machinery/door/window/northright, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"don" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dop" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dor" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/camera{ + c_tag = "Brig Cellblock North"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security"); + tag = "icon-camera (SOUTHWEST)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dos" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dot" = ( +/obj/machinery/flasher{ + id = "Cell 8"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dou" = ( +/obj/structure/sign/poster/official/obey{ + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Middle 1"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dov" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dow" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dox" = ( +/obj/structure/table, +/obj/item/weapon/cultivator, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doy" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"doA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Brig Labor Shuttle Dock South"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doG" = ( +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doH" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation3"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doI" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doJ" = ( +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doK" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"doL" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doM" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doN" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doO" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"doR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doT" = ( +/obj/machinery/door_timer{ + id = "Cell 8"; + name = "Cell 8"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 2"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 3"; + name = "Cell 3 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation3"; + name = "Cell 3 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doW" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell 3 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doX" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doY" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = null; + pixel_y = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"doZ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpa" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpb" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpc" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpd" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Riot Control Storage"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dph" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpj" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpk" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpl" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpm" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpr" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dps" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpt" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/processing) +"dpw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpB" = ( +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpC" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpD" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpE" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpF" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpG" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpH" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpI" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpJ" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess"; + name = "Armory Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpL" = ( +/obj/machinery/flasher{ + id = "PCell 4"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpM" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt4"; + name = "Cell 4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation4"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpN" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dpO" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dpP" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dpQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dpR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dpS" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpT" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory North"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpX" = ( +/obj/machinery/button/door{ + id = "armoryaccess"; + name = "Armory Shutter Access"; + pixel_x = 0; + pixel_y = 28; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dpZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqa" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 2"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqb" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqe" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 9"; + name = "Cell 9 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 4"; + name = "Cell 4 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation4"; + name = "Cell 4 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqh" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 4"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqi" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "permabolt4"; + name = "Cell 4 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqj" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Middle 2"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqk" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dql" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqm" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dqn" = ( +/obj/item/weapon/storage/toolbox/mechanical/old, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqo" = ( +/obj/machinery/conveyor/auto, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqp" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqq" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqr" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqs" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqu" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof{ + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqv" = ( +/obj/structure/rack, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/item/weapon/storage/box/trackimp, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqx" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqy" = ( +/obj/machinery/flasher{ + id = "Cell 9"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqz" = ( +/obj/machinery/vending/sustenance, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"dqA" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqB" = ( +/obj/item/weapon/wrench, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqC" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqD" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqE" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqF" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqG" = ( +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Armory APC"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqH" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqI" = ( +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access_txt = "3" + }, +/obj/effect/spawner/lootdrop/armory_contraband{ + loot = list(/obj/item/weapon/gun/ballistic/automatic/pistol = 5, /obj/item/weapon/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/weapon/gun/ballistic/revolver/mateba, /obj/item/weapon/gun/ballistic/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3) + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqJ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqK" = ( +/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/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_x = 0; + pixel_y = 1; + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqL" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/key/security, +/obj/item/key/security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqM" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Perma Cell 5"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqN" = ( +/obj/machinery/flasher{ + id = "PCell 5"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqO" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt5"; + name = "Cell 5" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation5"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dqP" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqR" = ( +/obj/machinery/conveyor/auto{ + dir = 5; + icon_state = "conveyor0"; + verted = -1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqS" = ( +/obj/machinery/conveyor/auto{ + icon_state = "conveyor0"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqT" = ( +/obj/machinery/conveyor/auto{ + tag = "icon-conveyor0 (SOUTHWEST)"; + icon_state = "conveyor0"; + dir = 10 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqU" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dqV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dqY" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dqZ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dra" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/e_gun/advtaser, +/obj/item/weapon/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drb" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_y = 0 + }, +/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/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drc" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dre" = ( +/obj/structure/weightlifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drf" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dri" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/asteroid/fore/com_west) +"drk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drl" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drm" = ( +/obj/machinery/conveyor/auto{ + icon_state = "conveyor0"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drn" = ( +/obj/machinery/conveyor/auto{ + tag = "icon-conveyor0 (SOUTHWEST)"; + icon_state = "conveyor0"; + dir = 10 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dro" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drr" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drs" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drt" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dru" = ( +/obj/item/weapon/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/grenade/barrier{ + pixel_x = -4 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drv" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 1"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drw" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dry" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drz" = ( +/obj/machinery/camera{ + c_tag = "Brig Cell 10"; + dir = 9; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell") + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drA" = ( +/obj/machinery/camera{ + c_tag = "Brig Perma Wing 1"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drH" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drI" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drJ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"drK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Port Asteroid Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drL" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"drM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"drO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/window/brigdoor/southleft{ + name = "Security Mail Chute"; + req_one_access_txt = "38;63" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drR" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armoryaccess2"; + name = "Armory Shutters" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"drS" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"drT" = ( +/obj/machinery/door/window/brigdoor/westleft{ + id = "Cell 1"; + name = "Cell Door 1"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drU" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CellBlockMidLeft"; + location = "CellBlockLowRight"; + name = "navigation beacon (CellBlockLowRight)" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drV" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + id = "Cell 10"; + name = "Cell Door 10" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drW" = ( +/obj/machinery/flasher{ + id = "Cell 10"; + pixel_x = 32 + }, +/obj/machinery/holopad, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"drZ" = ( +/obj/machinery/flasher{ + id = "PCell 6"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsa" = ( +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt6"; + name = "Cell 6" + }, +/obj/machinery/door/poddoor/preopen{ + id = "isolation6"; + name = "cell isolation blast door" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dse" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dsg" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dsh" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 1 + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsi" = ( +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dsj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsl" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsm" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsn" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dso" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/item/device/radio, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsp" = ( +/turf/open/floor/plasteel/darkred/side{ + icon_state = "darkred"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsq" = ( +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dss" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dst" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + icon_state = "darkred"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsv" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "PCell 6"; + name = "Cell 6 Flash"; + pixel_x = 24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "isolation6"; + name = "Cell 6 Isolation"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "2"; + specialfunctions = 1 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsB" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/camera{ + c_tag = "Brig Perma Cell 6"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security","PrisonCell"); + tag = "icon-camera (SOUTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsC" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "permabolt6"; + name = "Cell 6 Lockdown"; + pixel_x = 24; + pixel_y = 8; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/prison) +"dsD" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dsE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsL" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dsM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsN" = ( +/obj/machinery/vending/security, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsO" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dsQ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Armory"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/armory) +"dsR" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsS" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "wardencell" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Brig Cell Access"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dsU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dsV" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dsW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dsZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dta" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtb" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtc" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtd" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dte" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtg" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Room"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + icon_state = "red"; + dir = 5; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dth" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dti" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtj" = ( +/obj/machinery/computer/crew, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtk" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtl" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/computer/security/telescreen{ + desc = "Used to watch the various criminals inside their cells."; + name = "Cell Monitor"; + network = list("PrisonCell"); + pixel_y = 32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dtm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtn" = ( +/obj/structure/table, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dto" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin, +/obj/machinery/camera{ + c_tag = "Brig Medbay"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + icon_state = "whiteblue"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dts" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtt" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtv" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/camera{ + c_tag = "Brig Interrogation 2"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtw" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/space) +"dtx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dty" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtA" = ( +/obj/structure/closet, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dtB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dtC" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtD" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/deputy, +/obj/item/weapon/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtF" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtG" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dtH" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtI" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dtJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtK" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtO" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtP" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtR" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtS" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtT" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/cups, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dtU" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dtV" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"dtW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dtY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/girder, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dtZ" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dua" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A fierce companion for any person of power, this spider has been carefully trained by NanoTrasen specialists. Its beady, staring eyes send shivers down your spine."; + emote_hear = list("chitters"); + faction = list("spiders"); + harm_intent_damage = 3; + health = 200; + icon_dead = "guard_dead"; + icon_gib = "guard_dead"; + icon_living = "guard"; + icon_state = "guard"; + max_co2 = 5; + max_tox = 2; + maxHealth = 250; + melee_damage_lower = 15; + melee_damage_upper = 20; + min_oxy = 5; + name = "Sergeant Araneus"; + real_name = "Sergeant Araneus"; + response_help = "pets"; + turns_per_move = 10; + voice_name = "unidentifiable voice" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dub" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duc" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dud" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"due" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dug" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duh" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dui" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duj" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 0 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dul" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dum" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dun" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duo" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dup" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/bed/roller, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dur" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dus" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dut" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duu" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duv" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_north) +"duw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"duz" = ( +/obj/structure/sign/poster/official/enlist{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duA" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duH" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"duI" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duJ" = ( +/obj/structure/closet{ + name = "evidence closet" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duK" = ( +/obj/structure/table, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/ears/earmuffs, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duL" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duM" = ( +/obj/machinery/computer/camera_advanced{ + z_lock = 1 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"duN" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/bed/roller, +/obj/item/clothing/suit/straight_jacket, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"duR" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Courtroom APC"; + pixel_y = -24 + }, +/obj/structure/cable/orange, +/obj/effect/turf_decal/stripes/end{ + tag = "icon-warn_end (NORTH)"; + icon_state = "warn_end"; + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"duS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"duW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 4; + name = "Head of Security's Office APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"duX" = ( +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"duY" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"duZ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba, +/obj/item/weapon/lighter, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dva" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvb" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvc" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dve" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvf" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvg" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvh" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 8 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvk" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvm" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/northright{ + name = "Warden's Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/warden) +"dvp" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Cell Block"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvq" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvr" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvs" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvt" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation Room"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvu" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation Viewing"; + req_access_txt = "0"; + req_one_access_txt = "38;2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkblue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dvw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dvx" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/button/door{ + id = "hosoffice"; + name = "Emergency Office Lockdown"; + pixel_x = -24; + pixel_y = 8; + req_access_txt = "58" + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Emergency Brig Lockdown"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "1" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvy" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvF" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + icon_state = "red"; + dir = 9; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvI" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Main East"; + dir = 6; + icon_state = "camera"; + network = list("SS13","Security") + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dvN" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dvO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dvP" = ( +/obj/machinery/computer/security, +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvQ" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvS" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dvT" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvU" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hosoffice"; + name = "emergency lockdown blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dvW" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dvX" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + broadcasting = 0; + dir = 8; + listening = 1; + name = "Station Intercom (Court)"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dvY" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dvZ" = ( +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dwa" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dwb" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwc" = ( +/obj/machinery/computer/card/minor/hos, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/map/left/ceres{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwd" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwf" = ( +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"dwg" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dwh" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/crew_quarters/heads/hos) +"dwi" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwn" = ( +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dwp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dwq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwr" = ( +/obj/structure/closet/bombcloset, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dws" = ( +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwt" = ( +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "detective" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwv" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dww" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwx" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwz" = ( +/obj/machinery/door/airlock/glass_security{ + cyclelinkeddir = 2; + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "0"; + req_one_access_txt = "38;63" + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwB" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (EAST)"; + icon_state = "blue"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkblue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dwE" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/girder, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dwL" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwM" = ( +/obj/machinery/vending/security, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/red{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwN" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 8; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dwO" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/ammo_box/c38, +/obj/item/ammo_box/c38, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dwT" = ( +/obj/structure/filingcabinet, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dwU" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dwX" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwY" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (SOUTHWEST)"; + icon_state = "blue"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dwZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dxa" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxb" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxc" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxd" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxf" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxg" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxh" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxi" = ( +/obj/effect/landmark/secequipment, +/obj/machinery/camera{ + c_tag = "Brig Equipment South"; + dir = 10; + icon_state = "camera"; + network = list("SS13","Security"); + tag = "icon-camera (SOUTHWEST)" + }, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxj" = ( +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/red/side{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxk" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxl" = ( +/obj/structure/table/wood, +/obj/machinery/computer/secure_data/laptop, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxm" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Detective's Office APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxn" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dxo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/orange, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxp" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxq" = ( +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/orange{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxu" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxv" = ( +/obj/machinery/button/door{ + id = "outterbrig"; + name = "Brig External Doors"; + normaldoorcontrol = 1; + pixel_x = -8; + pixel_y = -24; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Internal Doors"; + normaldoorcontrol = 1; + pixel_x = -8; + pixel_y = -32; + req_access_txt = "2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxw" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxx" = ( +/obj/structure/closet, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dxy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxA" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/main) +"dxC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxD" = ( +/obj/structure/table/wood, +/obj/item/device/tape/random, +/obj/item/device/tape/random{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxF" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/clothing/glasses/sunglasses, +/obj/item/device/flashlight/lamp, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxG" = ( +/obj/machinery/button/door{ + id = "detective"; + name = "Privacy Shutters"; + pixel_x = 24 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dxH" = ( +/obj/structure/filingcabinet, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dxI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxJ" = ( +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dxN" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxP" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dxR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dxS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dxT" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dxZ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase, +/obj/item/weapon/storage/briefcase, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dya" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyb" = ( +/obj/machinery/camera{ + c_tag = "Lawyer's Office"; + dir = 4; + icon_state = "camera" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyc" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyd" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dye" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyg" = ( +/obj/structure/sign/poster/official/safety_report{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + icon_state = "red"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyh" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyi" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyj" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dyk" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid, +/area/maintenance/asteroid/fore/com_west) +"dyl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dym" = ( +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyn" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyo" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyp" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dys" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyv" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyw" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyx" = ( +/obj/structure/closet/lawcloset, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyB" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/vault{ + dir = 5; + initial_gas_mix = "n2=500;TEMP=80"; + temperature = 80 + }, +/area/security/courtroom) +"dyC" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/space) +"dyD" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"dyE" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/asteroid/fore/com_west) +"dyF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyG" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyH" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable/orange{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyI" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/detectives_office) +"dyJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyer" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/lawoffice) +"dyL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/orange{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "emergency blast door" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/brig) +"dyM" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/security/courtroom) +"dyN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dyO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "bridge"; + layer = 2.6; + name = "Emergency Blast Door" + }, +/obj/machinery/door/airlock/glass_command{ + cyclelinkeddir = null; + name = "Bridge"; + req_access_txt = "0"; + req_one_access = null; + req_one_access_txt = "19;41" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/bridge) +"dyP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/asteroid/line{ + icon_state = "ast_warn"; + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/astplate{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/maintenance/asteroid/fore/com_west) +"dyR" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Command Asteroid Hall 10"; + dir = 6; + icon_state = "camera" + }, +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyS" = ( +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/corner{ + icon_state = "redcorner"; + dir = 1; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/orange{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + icon_state = "neutralcorner"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CommandWest"; + location = "Security"; + name = "navigation beacon (Security)" + }, +/turf/open/floor/plasteel/neutral/corner{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyV" = ( +/obj/structure/plasticflaps{ + name = "Officer Beepsky's Home" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyW" = ( +/obj/structure/bed/dogbed, +/mob/living/simple_animal/bot/secbot/beepsky, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/fore) +"dyX" = ( +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/floorgrime{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/derelict/secret{ + valid_territory = 0 + }) +"dyY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dyZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) +"dza" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/neutral{ + baseturf = /turf/open/floor/plating/asteroid/airless + }, +/area/hallway/primary/starboard) (1,1,1) = {" aaa @@ -92854,29 +100934,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93111,29 +101191,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93368,29 +101448,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93625,6 +101705,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93673,35 +101776,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aad +aab +aab +aab +aab +aad aaa aaa aaa @@ -93882,6 +101962,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93896,6 +101999,15 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -93919,48 +102031,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aad +aab +aab +aab +aab +aab +aab +aad +aab +aab aaa aaa aaa @@ -94139,6 +102219,29 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94153,6 +102256,10 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94173,52 +102280,25 @@ aaa aaa aaa aaa +aag aaa aaa aaa +cFp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aad +aad +aad +aad +aab +aab +aad aaa aaa aaa @@ -94396,13 +102476,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94430,6 +102513,10 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94454,28 +102541,21 @@ aaa aaa aaa aaa +cFp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad aab aab aab aab aad -aaa -aaa -aaa -aaa +aad +aad +aad +aad +aad +aad aaa aaa aaa @@ -94653,13 +102733,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94681,59 +102764,56 @@ acU aei aeE aeS -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dnl +dnI aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +aaP +aaP +aaP +aaP +aaP +aaP +abC +abC +abC +abC +abC +abC +abC +abC +abC +abC +aaP +aaP +aaP +aaP +aaP +aaP +cFp aaa aaa aad aab aab -aab -aab -aab -aab +cTy +cTB +cTw +cTy +cTG +cTw +aac +aac +aac aad -aab -aab -aaa -aaa -aaa aaa aaa aaa @@ -94910,13 +102990,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -94938,61 +103021,58 @@ acU aej acU aeT -aeW -afu +dnm +dnJ aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +drg +drH +dsf +abV +acj +cFp +cFp +cFp +cFp +cXs +cFp +cFp +cFp +cFp +cFp +avx +abV +abr +abr +dyC +aaP +cFp aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aab -aab -aab aab aad -aad +cTv +cTy +cTC +cTx +cTC +cTH +cTw +cTw +aac +aac aad aad aab -aab -aad -aaa -aaa -aaa -aaa aaa aaa aaa @@ -95167,13 +103247,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -95195,61 +103278,58 @@ acU aek aeF aeU -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dnn +dnK aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +drh +drI +dsg +aaP +aaP +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +cXs +aaP +aaP +abs +abs +abb +aaP +cFp aaa +aad +aad +aad +cTw +cTy +cTB +cTz +cTE +cTC +cTL +cTy +aac +aac +aad +aad aab -aab -aab -aab -aad -aad -aad -aad -aad -aad -aad -aaa -aaa -aaa -aaa aaa aaa aaa @@ -95424,13 +103504,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aah aai aai @@ -95456,58 +103539,55 @@ aai afX aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aab -cTy -cTB -cTw -cTy -cTG -cTw -aac +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +dri +drJ +aaP +aaP +cXs +cFp +cFp +cFp +cFp +cXs +cFp +cFp +cFp +cFp +cFp +cXs +aaP +aaP +abs +abb +aaP +cFp aac aac aad -aaa -aaa -aaa -aaa +aad +cTv +cTz +cTx +cTD +cTz +cTI +cTM +cTy +aac +aad +aad +aad +aab +aab aaa aaa aaa @@ -95681,13 +103761,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aai aam aas @@ -95713,60 +103796,57 @@ aaa aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +abc +aaP +aaP +cFp +cXs +aaa +aaa +aaa +aaa +abC aaa aaa aaa aaa aaa +abC aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +aaP +aaP +abc +aaP +cFp +aac +aac aad -cTv -cTy -cTC +aad +cTx +cTz +cTz cTx cTC -cTH -cTw -cTw -aac +cTJ +cTN +cTx aac aad +aab +aad +aad aad aab -aaa -aaa -aaa -aaa +aad aaa aaa aaa @@ -95938,13 +104018,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aan aan @@ -95970,64 +104053,61 @@ aaM aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaP +abd +aaP +cFp +cFp +cXs +aaa +cFp +cFp +cFp +abC +cFp aaa aaa aaa aaa +abC aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +dyD +aaP +cFp aaa aad -aad -aad +aac +aac cTw -cTy -cTB +cTA cTz -cTE -cTC -cTL -cTy +dyX +cTF +cTK +cTO +cTw aac +aad +aab aac aad aad +aad aab aaa aaa aaa aaa -aaa -aaa -aaa -aaa aaP aba abr @@ -96195,13 +104275,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aao aan @@ -96222,67 +104305,64 @@ aan aan aaB aeG -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmS +dno +aaa +aaa +aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +abC +aaa +abC +cFp +cFp +cXs +cFp +cFp +abW +abW +akm +abE +cFp +cFp +cFp +cFp +abC aaa aaa aaa aaa +abC +cFp aaa +aad aac aac -aad -aad +cTw +cTw cTv -cTz -cTx -cTD -cTz -cTI -cTM cTy +cTy +cTv +cTw +cTy +aad +aad +aab +aac +aac aac aad aad aad -aab -aab -aaa -aaa -aaa -aaa -aaa +aad aaa aaa aaP @@ -96452,13 +104532,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aap aat @@ -96479,41 +104562,42 @@ aan aan aan aeH -aeW -afu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmT +dnp aaa aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +abC +aaa +abC +aaa +aaa +abC +aaa +aaa +abW +abW +abW +abE +abE +abW +abW +abW +abC +abW aaa aaa aaa +abC +cFp aaa aaa aaa @@ -96521,26 +104605,22 @@ aac aac aad aad -cTx -cTz -cTz -cTx -cTC -cTJ -cTN -cTx aac -aad -aab +aac +aac +aac aad aad aad aab +aac +aac +aac +aad +aab +aab +aad aad -aaa -aaa -aaa -aaa aaa aaP abb @@ -96709,13 +104789,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aaq aan @@ -96736,39 +104819,42 @@ aan aan aaB aeG -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dmU +dnq aaa aaa aaa aaa aaa +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +abC +aaa +aaa +akm +abE +abW +abW +abW +abW +abW +abW +abW +abW +abW +akm +abW aaa aaa aaa +abC +cFp aaa aaa aaa @@ -96778,26 +104864,20 @@ aaa aad aac aac -cTw -cTA -cTz -cTz -cTF -cTK -cTO -cTw +aac aac aad aab -aac +aad +aad aad aad aad aab +aab aaa -aaa -aaa -aaa +aad +aad aaa aaP abc @@ -96966,13 +105046,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaj aar aan @@ -96996,36 +105079,39 @@ aai aai aaO aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +cXs +abE +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW +abW aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp aaa aaa aaa @@ -97033,26 +105119,20 @@ aaa aaa aaa aad -aac -aac -cTw -cTw -cTv -cTy -cTy -cTv -cTw -cTy +aad +aad +aad +aad +aad +aab +aad aad aad aab -aac -aac -aac -aad -aad -aad -aad +aab +aab +aaa +aaa aaa aaa aaa @@ -97230,6 +105310,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aai aar aan @@ -97253,30 +105336,39 @@ aeI aai aaa aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aaa +aaa +abC +aaa +abC +abW +dgh +dgg +deK +deI +abW +abW +abW +dgh +deI +deK +deK +abW +abW +abW aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp aaa aaa aaa @@ -97287,30 +105379,18 @@ aaa aaa aad aaa -aaa -aaa -aaa -aaa -aac -aac -aad -aad -aac -aac -aac -aac -aad -aad -aad -aab -aac -aac -aac -aad aab aab +aab +aab +aab +aaa +aaa aad -aad +aaa +aaa +aaa +aaa aaa aaa abC @@ -97487,6 +105567,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aak aai aai @@ -97510,6 +105593,39 @@ aai aai aai afY +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +deK +drj +deK +deK +deI +deL +dtA +deK +dgg +deI +dgh +dgh +dwa +dwp +deI +deK +deK +abW +aaa +aaa +aaa +abC +cFp aaa aaa aaa @@ -97534,42 +105650,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aad -aab -aad -aad -aad -aad -aad -aab -aab -aaa -aad -aad -aaa -aaa abC aaa aaa @@ -97744,6 +105824,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -97765,62 +105848,59 @@ aan aan aan aeX -aeW -aft -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dnr +dnL +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +deK +deI +deI +drk +deI +deI +dsD +deL +deL +deL +deL +deL +deL +dvN +deL +deL +deL +deL +deK +abW aaa aaa aaa +abC +cFp aaa aaa aaa +cFp +cFp +cFp +cFp aaa aaa aaa aaa aaa aad -aad -aad -aad -aad -aad -aab -aad -aad -aad -aab -aab -aab +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -98001,6 +106081,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98022,8 +106105,48 @@ aan aan aan aeY -aeW -afu +dns +dnM +cFp +cFp +cFp +cFp +cFp +abE +abE +deK +deI +dqB +dqP +drl +deI +deL +dsE +dsZ +dtB +dtY +duy +duW +dvw +dvO +dwb +dwq +dwE +deL +deI +abW +abW +cFp +aaa +abC +cFp +aaa +aaa +aaa +cFp +cFp +cFp +cFp aaa aaa aaa @@ -98041,49 +106164,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aab -aab -aab -aab -aab -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa abC aaa aaa @@ -98258,6 +106338,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98279,67 +106362,64 @@ adO adO acG aeZ -aeW -afv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa +dnt +dnN +cFp +cFp +cFp +cFp +abE +abW +deK +deK +dqn +dqC +dqQ +drm +deK +deL +dsF +dta +awz +awz +awz +awz +awz +awz +awz +awz +dwF +dxa +deI +dgh +abW +cFp aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa abC aaa @@ -98515,6 +106595,9 @@ aaa aaa aaa aaa +cFp +cFp +cFp aaa aaa aaa @@ -98538,65 +106621,62 @@ aai aai aai aaO +cFp +cFp +cFp +cFp +abE +abW +deK +dpQ +axE +dqD +dqR +drn +drK +dsh +dsG +dtb +dtC +dtZ +duz +duX +dvx +dvP +dwc +awz +dwG +deL +dxw +dgh +abW +cFp aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa abC aaa @@ -98776,84 +106856,84 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avv -avv -avw -avv -avv -avw -avv -avv -avv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +aaP +aaP +aaP +aaP +aaP +aaa +aaa +aaa +aaa +aaa +aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +deK +deI +deI +deK +deI +dqS +deK +deK +deL +dsH +dtc +dtD +dua +duA +duY +dvy +dvQ +dwd +awz +dwH +deL +dxx +deK +abW +cFp +aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aXl aXE @@ -99033,61 +107113,61 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awx -axt -ayZ -aAn -aAn -aCx -aDL -aFe -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaP +aba +abr +abr +abV +acj +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +aKy +aLB +dpR +dqo +dqE +dqT +deI +drL +deL +dsI +dtd +dtE +dub +duB +duZ +dvz +dvR +dwe +awz +dwI +dxb +deK +deK +abW +deK +dyE +deK +abW aaa aaa aaa @@ -99290,59 +107370,59 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awy +aaP +abb +abs +abs +aaP +aaP +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +deK +deK +deK +deI +deI +deI +deK +dgq +dsi +dsJ +dte axu -avv -aAn -aAn -aAn -aDL -aFe -aaa -aaa -aaa -aaa -aaa -abC -deK +duc +duC +dva +dvA +dvS +dwf +awz +dwJ +deL +deI +dgh +abW deK +dyF deK deK deK @@ -99357,7 +107437,7 @@ aaa aaa aaa aaa -aaa +aag aaa aaa aaa @@ -99547,58 +107627,58 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avw -awz -axv -aza -aAo -aBr -aAn -aDL -aFe -aaa -aaa -aaa -aaa -abC +aaP +abb +abs +aaP +aaP abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abW +abW +abW +abW +abW +dgh deK +deL +deL +dsK +awz +dtF +dud +duD +dvb +dvB +dvT +dwg +awz +dwK +dxc +deL +deI +dgh +deI dgH aOn dgY @@ -99805,58 +107885,58 @@ aaa aaa aaa aaP -aaP -aaP -aaP +abc aaP aaP aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avv -avv -axw -avv -avv -avv -aCy -avv -avv -aaa -aaa -aaa -aaa +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +abW +abW +dgh +dgh +dgh +deL +drM +dsj +dsL +awz +dtG +due +duE +dvc +dvC +dvU +dwh +awz +dgh +dxd +dxy +deL +dgh deK -deK -deI -dgI +dgQ ajW axE axE @@ -100062,57 +108142,57 @@ aaa aaa aaa aaP -aba -abr -abr -abV -acj +abd +aaP +abC aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -avx +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +abE +abE +abW +abW +dgh +deK +deI +deL +dro +drN +dsk +dsM awA -axx awA +duf aAp -awA +dvd aCz +dvV awA -acj -aaa -aaa -aaa -aaa -aKy -aLB -aMu +awA +dwL +dxe +dxz +dxT +dyj +deI aMu aOo dgZ @@ -100318,58 +108398,58 @@ aaa aaa aaa aaa -aaP -abb -abs -abs -aaP -aaP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC +cFp +cFp +cFp abC +cFp abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avv +avv +avw +avv +avv +avw +avv +avv +avv +cFp +cFp +abE +abW +dgh +deK +deI +dqF +dqU +drp +drO +dsl +dsN awB axy -awB -abC -awB -axy -awB -abC -abC -aaa -aaa -aaa -deK -deK -deK +dug +duF +dve +dvD +dvW +dwi +dwr +dwM +dxf +dxA +dxU +deL +deI dgJ aOp dgQ @@ -100422,7 +108502,7 @@ cMs aXr aXr aXn -bpY +bpZ bru bsT bum @@ -100575,57 +108655,57 @@ aaa aaa aaa aaa -aaP -abb -abs -aaP -aaP +cFp +cFp +cFp abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +awx +axt +ayZ +aAn +aAn +aCx +aDL +aFe +cFp +cFp abW abW -abW -abW -abW -abW -atk -atk -atk +dgh +auB +deL +dgk +dqV +drq +drP +dsm +dsO awC -axz -awG -atk -awG -aCA +avy +avy +duG +avy +dvE aDM -atk -atk -abW -abW -aaa -abW -abW +dwj +dws +dwN +dxg +aBu +dxV +aJL deI axE dgQ @@ -100832,59 +108912,59 @@ aaa aaa aaa aaa -aaP -abc -aaP -aaP -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa cFp -aaa -aaa -aaa -aaa -aaa +cFp +cFp +abC +cFp +abC +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +awy +dlZ +avv +dmV +aAn +aAn +aDL +aFe +cFp abW abW -acH -acH -acH -acH -atk -auo +abW +dgh +deI +dqp +dqG +dqW +drr +drQ +dsn +avy avy -awD axA azb aAq -aBs -awD -awD +axA +azb +azb aFf -atk -abW -acH -acH -acH -acH +avy +avy +dxh +aBu +dxW +dyk deI -axE +dyG dgR aPQ aQM @@ -101089,57 +109169,57 @@ aaa aaa aaa aaa -aaP -abd -aaP +cFp +cFp +cFp abC -aaa +cFp abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abE -abE -abE +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avw +dlG +axv +aza +aAo +aBr +aAn +aDL +aFe +cFp abW abW -abW -acH -acH -acH -aep -atl +dpn +dpE +dpS +dqq +dqH +dqX +arn +arn aup -avz -awE -awE +avy +avy +axA azc aAr -awE +dvf aCB -awE -aFg -atk -aep -dgg -deI -deK -deI +azc +aFf +avy +avy +dxi +aBu +dxX +dgo deK deK aOr @@ -101154,12 +109234,12 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101352,50 +109432,50 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -abC -abE -abE -abE -abE -acH -acH -acH -acH -acH -acH -aep -aep -atk +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +avv +avv +axw +avv +avv +avv +aCy +avv +avv +cFp +cFp +abW +dpo +dpF +cKJ +cKJ +cKJ +cKJ +cKJ +arn auq -avA -awF -axB +dsP +dtf +dtH +duh +duH +dvg +dvF azc -aAq -awF -axB -awE aFh -atk +aDM aHy -deL -dgo -deL +dxj +aBu +dxY deL deL deL @@ -101411,13 +109491,13 @@ abE aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101609,52 +109689,52 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -deK -aiW -aiW -aiW -deK -acH -acH -acH -acH -aep -aep -deK -deK -atk -atk -atk +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp awG -axC +dma +awG +cFp +awG +dnO +awG +cFp +cFp +cFp +abW +dpp +dpG +dpT +dqr +dqI +dqY +drs +arn +dso +avy +avy +axA azd -atk -awG +azd +axA aCC -awG -aFi -atk -aHz +azd +aFf +avy +avy aIF -apJ +aBu dgt -dgt -aMv +dgp +dgp dgp dgS dhb @@ -101668,13 +109748,13 @@ abE aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -101866,40 +109946,40 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +awG +dmb +awG +cFp +awG +dnP +awG +cFp +cFp abW abW -deI -aiX -ajV -aiZ -deI -acH -acH -acH -aep -deI -ajW -dfl -ajW -dfi +dpq +dpH +dpU +dqs +dqJ +dqZ +drt +drR aur avB awH axD -aze +axD aAs aBt aCD @@ -101908,12 +109988,12 @@ aFj aGE dft aIG -dgp +dxB ajc -dgp +dyl aMw -aNA -dgf +aMw +dyP aPS dhh ajX @@ -101925,13 +110005,13 @@ abW abE abE aaa -aaa -aaa cFp -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -102123,39 +110203,39 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -deK -aiY -ajW +cFp +cFp +cFp +cFp +cFp +cFp +cFp +atk +atk +atk +awG +axz +awG +atk +awG +aCA +awG +atk akG -deK -abW -aep -deK +doL +doZ +akI +dpI dfb -deI +dqt +dfi dfi -dfm dfp -dft -aus -avC +arn +arn +arn awI -axE +dtI azf aAt aBu @@ -102163,14 +110243,14 @@ aCE aDO aFk cLB -dgf -aIH -deL -deK +cLB +cLB +dxC +aGF +aGF +dyv deK aMx -aNB -deK deI deI deI @@ -102182,13 +110262,13 @@ abW abW abE aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -102380,54 +110460,54 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -acH -acH -deI -aiZ -ajW -ajX -deI -acH -aep +cFp +cFp +cFp +cFp +cFp +cFp +cFp +atk +auo +dls +awD +awD +dmy +awG +dnu +awD +doa +dol +doA +doM +dpa +dpr cKJ dfc cEv cEy -arn -arn -arn -arn -arn +cEy +cEy +cEy +dsp +cKJ awJ -arn -arn -arn -arn -arn +dtJ +dui +duI +dvh +dvG aDP aFl -arn -dgg -dgk -dgq -deK -aLC +cLB +dwO +aJN +dxD +dxZ +aMA aMy aNC -dgT +dyQ aPT aQN deK @@ -102439,13 +110519,13 @@ abW abW abE aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aXn @@ -102637,53 +110717,53 @@ aaa abC aaa abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -acH -acH -acH -acH -acH -acH -deK +cFp +cFp +cFp +cFp +cFp +abW +abW +atk +dlg +dlt +dlH +dmc +dmz +dmW +dnv +dnQ aja -axE +atk akH -deI -aep -deK -cKK -arn +doN +dpb +dps +cKJ +dpV cEw cEz -arn +dra ash atm -arn -avD +dsq +cKJ awK axF -azg +axF aAu aBv aCF -aDQ +aGP aFm -arn -deK -dgk -aJL -deI +dwt +dwP +dxk +dxE +aKA aLD -axE -axE +aMy +dyH cMe dhc dgT @@ -102894,52 +110974,52 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -aep -deK -deK -deI +atk +dlh +avA +awE +dmd +dmA +awG +awF +axB +dob +dom akI -deI -aep -ajW -cKK -arn +doO +dpc +dpt +cKJ +dpW cEx cEA cEB -asi -atn +cEx +cEx aut -avE +cKJ cGj -axG -azh +aGP +aGP aAv azh aCG -aDR +aGP aFn -arn -deI -dgk +cLB +dwQ +dxl aJM -deI +aIK aLE -aMz +aMy aND aOt aPU @@ -103151,52 +111231,52 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -deI +atk +atk +atk +awG +dme +awG +awG +awG cEo -apL -ajX -akJ -ajX -ajX -ajW -cKK -arn -arn -arn -arn +doc +atk +atk +atk +dpd +atk +cKJ +dpX +dqu +dqK +drb asj atn -aut -avF -cGj -cGj +dsr +cKJ +dtg +dtK azi -cGj -cGj +duJ +aBv aCH -aDS +aJX aFo -arn -dgh +dwu +dwR aII -deK -deK -aLF -dgz +dxF +aHB +aMD +aMy deK cYj aPV @@ -103408,53 +111488,53 @@ aaa abC aaa abC -aaa -aaa -aaa +cFp +cFp +cFp abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -auB -ajX -deL -deL -deL -ajX -ajX -ajX +abW +abW +atk +dlu +awF +dmf +dmB +dmX +dnw +dnR +dod +don +doB +doP +dpe +dpu deY -dfc -dfc -dfj -arn -ask -ato -arn -avG -awL -awL -awL -awL +dpY +cEx +cEx +cEx +cEx +cEx +dss +cKJ +anF awL +anF +anF +dvi aCI -aDT +aGP aFp aGF -aGF -aGF -aGF -aGF -aGF -aGF -aGF +dwS +dxm +dxG +dya +aME +dyw +dyI aOv aPW aQO @@ -103665,54 +111745,54 @@ aaa abC aaa abC -aaa +cFp +cFp abW abW abW abW abW -acH -acH -acH -acH -acH -afd -afd -afd -afd -afd +abW +atk +dlv +dlI +dmg +dmC +dmY +dnx +dnS akL -afd -akL -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -arn -arn -arn -arn -arn -arn -arn -aCJ -aDU +doo +doC +doQ +dpf +dpv +dpJ +dpZ +dqv +dqL +drc +dru +drS +dst +dsQ +dth +aoP +duj +duK +dvj +aCG +aGP aFq -aGF -aHA -aIJ -aJN -aKz -aLG -aMA -aGF -aOw +dwv +aGG +aGG +aGG +aGG +aGG +aGG +aGG +dyR aPX aQP aKp @@ -103922,54 +112002,54 @@ aaa abC aaa abC -aaa +cFp +cFp abW abW abW abW abW -acH -acH -acH -acH -acH -afd -afZ -agV -ahG -ail -ajd -ahH -akM +abW +atk +atk +atk +alm +alm +alm +alm +alm +alm +alm +alm alm alR amR -anD -alm -apx -amR -aro -alm -atp -amR -avH -alm -axH -amR -aAw afd +afd +afd +afd +afd +afd +afd +afd +anJ +dti +aoP +duk +aqy +dvk aCK -aDV -aFr +aGP +aFq aGG -aHB -aIK -aIK -aKA -aIK -aIK -aGF -aOx +dwT +dxn +aJR +dyb +aIQ +aIQ +dyJ +aOv aPY aQQ aRQ @@ -104175,58 +112255,58 @@ cFp cFp cFp cFp -aaa +cFp abC -aaa +cFp abC -aaa +cFp +cFp abW abW abW abW -acH -acH -acH -acH -acH -afd -afd +abW +abW +abW +abW +abW +alm aga agW -amS -aim +dny +alm aje -ajg +dop akN alm alS -amS -amS +dpw alm +dqa apy -amS -amS +akN alm +drv atq -ana -amS -alm +akN +dsR +dtj axI -amS -amS -afd +aoP +asn +dvl aCL -aDW +aJX aFs aGH aHC -aIL -aJO aHC aHC -aMB -aGF -aOw +aHC +dym +aIQ +dyK +aOv aPZ aQR aKp @@ -104432,58 +112512,58 @@ cFp cFp cFp cFp -aaa +cFp abC -aaa -abD -abE -abE +cFp +abC +cFp +cFp +abW +abW +abW +abW +abW +abW abW abW abW -acH -acH -acH -acH -acH -afd -afx -agb -agX -ahI -ain -ajf -amS -akO alm -alT -amS anE +amS +alT +aeK +anE +amS +alT alm -alT -amS -anE +dpg +dpx alm -alT -amS anE -alm -alT amS +alT +aeK anE -afd -aCL -aDX -aFt -aGI -aHD +amS +alT +dsS +dtk +aoP +aoP +duL +dvm +aCG +aGP +aFq +aGG +aIQ +aIM aIM -aJP aKB aLH -aMC -aGF -aOw +aIQ +aGG +aOv aPZ aQS aKp @@ -104689,58 +112769,58 @@ cFp cFp cFp cFp -aaa +cFp abC -abE -abE -abE -abE -acH -acH -acH -acH -acH -acH -acH -acH -afd -afd -afd -afd +cFp +abC +cFp +abW +agk +ahP +agl +agk +abW +abW +abW +abW +abW +alm +dmD +amS ahJ -aio +alm ajg -ajY -akP +amS +ahJ alm alU amT -anF alm -alU -aqu -anF +dqb +amS +ahJ alm -alU -auu +drw +amS +ahJ anF -alm -alU -azj -anF -afd -cGX +dtl +aoP +aoP +duM +dvn +aCL aDX aFu -aGF +dww aHE aIN aJQ aKC aLI -aMD +aIQ aNE -aOw +aOv aPZ aQT aRz @@ -104946,58 +113026,58 @@ aaa aaa aaa aaa -aaa +cFp +abC +cFp abC -abE -abE -abW -acH -acH -acH -acH abW abW -acH -acH -acH +agk +dkK +agm +agl abW -afd +alm +alm +alm +alm +alm agc agY -anE -aip -ajh +dnz +alm +agc cEr ajZ -aln -alV -amU -anG -aoL +alm +alU +amT +alm +agc apz -amU -anG -asl -apz -amU -anG +ajZ +alm +agc +drT +ajZ +anF awM -axJ -azk +ats +aoP aAx -afd -aCL -aDY +dvo +dvH +cHc aFv -aGF +dwx aHF aIO -aJQ +dxH aKD aLJ -aME -aGF -aOw +dyx +aGG +aOv cEU aQU aQj @@ -105203,24 +113283,24 @@ aaa aaa aaa aaa -aaa +cFp +abC +cFp abC -abE -abE abW -acH -acH -acN -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd +abW +agl +agm +dkS +ahP +agk +alm +dli +dlw +dlJ +dmh +dmE +ajm ahK aiq aji @@ -105230,31 +113310,31 @@ alo alW amV anH -ajm -ajm -ajm +aji +aka +akQ arp -ajm -ajm -ajm -anH +aji +aka +dsu +dsT awN axK -azl +aoP aAy -aAA -aCL -aDX +anF +aCG +aGP aFw -aGJ -aGK -aGK -aGK -aGK -aGK -aGK -aGK -aOw +aGG +aGG +aGG +aGG +aGG +aGG +aGG +aGG +dyS aPZ aQV aRt @@ -105460,57 +113540,57 @@ aaa aaa aaa aaa -aaa -abD -abE -abE +cFp +abC abW -acH -acH -acN -acN -acN -acN -acN -acN +akm +abW +abW +agk acN acN acN +ahP +alm +dlj +amS +amS +dmi cTV -acN -acN -afd -afd -afd -afd -akL +dmZ +dnA +cVB +amd +doq +ahN +anI alX -amW +amd anI +amd +anI +ahN +anI +amd +drU aoM -anI -anI -anI -anI -anI -aoM -anI -awO +anF +anF axL -anI -anI -aBw +dul +anF +anF aCM -aDZ +aGP aFx aGK -aHG +cHh aIP -aJR +cHm aKE -aIQ -aMF -aNF +dyn +cHm +avI aOw aPZ aQR @@ -105717,22 +113797,22 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +abC abW -acH -acH -acN -acN -ady -adQ -aeq -aeq -aeq -aeq +abW +abW +abW +agk +ahP +dkT +ahP +ahP +alm aeq +dlx +dlK +aln agd cTW cTX @@ -105740,33 +113820,33 @@ air akc akb ajj -afd +doR alY amW -anI -anJ -anJ -aqv -arq -asm -anJ -anJ -anI +dpK +amW +dqw +cTX +cVO +akc +cVO +dsv +dsU +awP +dtL +dum awP -axL -anI -anI aAD -aCL -aDX -aFx -aGK +dvI +aJX +dwk +dwy aHH -aIQ -aIQ -aIQ -aIQ -aMG +dxo +dxI +dyc +dyo +aJU aNG aOw aPZ @@ -105974,56 +114054,56 @@ aaa aaa aaa aaa -aaa -abE -abE +cFp +abC abW abW abW -abW -acN -acN +ahP +ahP +dkL +agm cVw adS -adR -aer +alm +alm aeK -afe -afy +alm +alm age -cTW +dna cTY ais -akc -akc -ajj -afd -alX -amW -cEs -anJ +doe +dor +doD +aeK +dph +dpy +aeK +dqc apA -aqw -arr -asn +cTY +azk +drx atr -anJ +dsw cEt -awO -axL +cHc +aFB cLf -aAz -afd -aCK -aEa +cHc +cEt +dvJ +cHc aFy aGL -aHI -aIR +aHM aIR +dxJ +aKF +aKF aKF -aLK -aMH aNH aOw aQa @@ -106231,47 +114311,47 @@ aaa aaa cFp aaa -aaa -abE -abE -abW +cFp +abD abW abW abW +agk +dkH acN acN -cVx +agm adS +alm aes -aes -aes -aes -aes +dly +dlL +dmj agf -acN -acN -afd +dnb +dnB +dnT ajk akd -akd -akd +doE +doS alZ -amW +dpz anK aoN -aoP +dqx aso -ars -cGf -ats +azl +ajk +azl auv -anK -awO -axL -afd +dsV +dtm +dtM +dun aAA -afd -aCL +dvp +dvK aEb aFz aGM @@ -106279,9 +114359,9 @@ aHJ aIS aJS aKG -cGm -aMI -aGK +cHm +cHm +dyL aOy aQb aQY @@ -106294,7 +114374,7 @@ aUT abE aaa aaa -aaa +cFp aaa aaa aaa @@ -106488,57 +114568,57 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp abW abW abW +agk +dkI +dkM acN acN -adz -cVy -adT +acN +alm aet -aeL -aff +amS +amS afz -agg +cTV aha ahN -ait -ajl -ake -ake -ake +anI +amd +anI +ahN +anI ama -amX -anL -aoO -apB -aqx -art -apB +amd +anI +amd +amh +ahN +anI +amd att -auw +aoM +avI +avI +avI +avI +avI avI -awQ -axM -azm -aAB -azm aCN -aEc +aGP aFA aGN aHK aIT -aJT +cHB aKH -aLL -aMJ -aGK +aKH +cEL +avI aOz aQc aQR @@ -106745,19 +114825,19 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp abW abW abW +agl +agk +dkN +dkU acN acN -adA -adU -aeu -aes +alm +dlk aeM afg afA @@ -106765,44 +114845,44 @@ agh ahb ahO aiu -ajm -ajm -ajm -ajm +dof +dos +ahO +doT amb amX anM -aoP +dqd apC -aqy +ahO aru -aqy -aqy -aqy -avJ +dry +apC +dsx +avI awR axN -azn +axN aAC azn -aCO -aEd -aFx -cEJ -aGK -aGK -aGK -aGK -aGK -aGK -aGK +aCG +aGP +dwl +awJ +dwU +dxp +dxK +dyd +dyp +dyy +avI aOA aPZ aQR aKp -abW -abW -abW +aMk +dyW +aKp abW abW abE @@ -107002,72 +115082,72 @@ aaa aaa cFp aaa -aaa -abE -abE -abE +cFp +cFp +cFp +dkF abW abW -abW -acN -acN -adB -adV -adV -adU -aeN -adU -afB +agk +dkO +dkV +ahP +agl +alm +alm +alm +alm +alm +agi +dnc +dnC +alm agi -acN -acN -afd -ajn akf -akf -akf -amc -amW -anN -aoQ +doF +alm +alU +amT +alm +agi apD cGe -ars -aqz -aoP -aux -avK +alm +agi +drV +cGe +avI awS axO -afd -aAD -afd -aCP -aDX +axO +axO +dvq +aCG +aDP aFt cHb aHL -cHi +aGP cHl cHr -cEL +aGP cEP cER cES aPZ -aQR +dyU +dyV +aMk +aMk aKp abW abW -abW -abW -abW abE abE aaa aaa aaa -aaa +cFp aaa aaa aaa @@ -107259,64 +115339,64 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +cFp +cFp abW abW abW -acN -acN +ahP +dkP +dkW adC adV -adV -adV -adV -adV -afC -adC -agZ -ahM -aiv +dlb +dll +dlz +dlM +alm +dmF +amS +ahJ +alm ajo -akc -akc -afd -amd -amW -cEt -anJ -apE -aqA -ars +amS +ahJ +alm +alU +amT +alm +dqe +amS +ahJ +alm asp -atu -anJ -cEs -awO -axL -cLf -aAz -afd -aCL -cGY -aFB -cHc -aHM -cHj -cHm -cHm -cEM -cHm -cHH -cET +amS +ahJ +avI +dtn +axO +duo +axO +dvr +aCG +aGP +dwm +cHb +dwV +aGP +dxL +dye +aGP +cHD +cER +cES aPZ aQR aKp -abW -acH -acH +aKp +aKp +aKp abW abW abE @@ -107516,58 +115596,58 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp +cFp +cFp abW abW abW -acN -acN -adC -adW -aev +ahP +dkQ +dkX +agl +agl +alm cVz aeO afh -aev -agj -acN -ahL -aiw -ajj -akg -ajj -afd +alm +anR +amS +ami +aeK +anR +amS +ami +alm ame -amW -anI -anJ -anJ -aqv -arv -asm -anJ -anJ -avL -awO -axL -anI -anI -aAA -aCK -cGZ +dpA +alm +anR +amS +ami +aeK +anR +amS +ami +avI +dto +dtN +dup +duN +dvs +aCG +aGP cHa -cHd +cHb aHN -cHg -aJU +dxq +dxM cHs -cHx -cHB -cHI -cHN +aGP +cHD +cER +cES aPZ aQR aKp @@ -107773,55 +115853,55 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp abW abW abW -acN -acN -cTU -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd -afd -afd -afd -akL -amd -amW -anI +abW +abW +agk +ahP +agl +agk +agk +alm +dlm +aeO +afh +alm +dmG +dnd +dnD +alm +dog +dot +akN +alm +alS +amT +alm aoR -anI -anI -anI -anI -anI -aoR -anI -awO -axL -anI -anI -aBw -aCM -aDZ +dqy +akN +alm +drz +drW +akN +avI +avI +avI +avI +avI +avI +aCN +aGP aFC -aEg +avI aHO -aEg -aEg -aEg -aEg +dxr +awJ +dyf +dyq aMK cHJ aOC @@ -108030,59 +116110,59 @@ aaa aaa aaa aaa -aaa -abE -abE -abE +cFp abW abW -acH -acN -acN -acN -acN -acN -acN -acN -acN -acN -afd -afd -afd -cVJ -cVF -akh -akR -alp +abW +abW +abW +abW +abW +abW +abW +alm +alm +dln +aeO +dlN +alm +alm +alm +alm +alm +alm +alm +alm +alm amf amY -aoS -aoS -anO -aoS -aoS -asq -aoS -aoS -anO +alm +alm +alm +alm +alm +alm +alm +alm +avI awT -axK -azl +dtO +duq aAE -aAD -aCL -cGY +avI +aCG +aGP aFD cHe cHf -cHe +dxs aJV cHt -cHy -cHC -aNI +aEb +aEb +aEb cHO -cHU +aPZ aQR cHY dhs @@ -108288,13 +116368,6 @@ aaa aaa aaa aaa -abE -abE -abE -abW -abW -acH -acH abW abW abW @@ -108303,44 +116376,51 @@ abW abW abW abW -afd +abW +alm +dlc +dlo +dlA +dlO +dmk +dmH cVA cVF -cVK -ajq -ajZ -akS -cVO +cVF +cVA +cVF +cVA +doU amg cVP -apF +ajm amU -cVS -cVU -cVV +ajm +ajm amU -apF -amU -anP +drA +ajm +dsy +avI awU axP -azk +dur aAF -afd -aCK -aEe +avI +dvL +aJX aFE aGQ aHP -aGQ +dxt aJW -aGP -aGP -cHD +aHP +dyr +dyz aNJ aOD -aPZ -aQR +aQd +aQZ cHY dhs dhr @@ -108544,57 +116624,57 @@ aaa aaa aaa aaa -aaa -aaa -abW -abW -abW -abW -abW -acH -acH -acH +cFp abW abW abW abW abW abW -afd +abW +abW +abW +alm +dld +dlp +dlB +dlP +dml +anI cVB -cVG -cVG -cVM -afd +anI +anI +cVB +anI amh -amZ +cVB anQ -alm -amh -aqB -anQ -alm -cVW -alm -amh -auy -anQ -alm -amh +anI +anI +cVB +anI +anI +cVB +anI +drX +awO +avI +dtp +dtP azo -anQ -afd -aCL -aDX +duO +dvt +dvM +aEb aFF -aEg +dwz cHg -aEg +dxu cHn cHu +dys aGP -cHE -aEg +avI aOE aPZ aQR @@ -108801,8 +116881,9 @@ aaa aaa aaa aaa -aaa -aaa +cFp +cFp +cFp abW abW abW @@ -108810,49 +116891,48 @@ abW abW abW abW -acH -acH -acH -acH -acH -abW -abW -afd +alm +dle +dlq +dlC +dlQ +dmm +dmI cVC cVH cVL cVM -afd -ami -amS -anR -alm -ami -amS -anR -alm +ake +cVL +doV +dpi +cVH +cVL +dqf +ake +cVL cVX -alm -ami -amS -anR -alm -ami -amS -anR -afd -aCQ -aDX +drB +drY +dsz +avI +dtq +dtQ +axR +duP +avI +aCI +aGP aFG -aGO -cHh +avI +dwW cHk -aJY -aGP -aGP -cHF -cHK -cHN +avI +dyg +dyt +cHD +cER +cES aQe aRa cHY @@ -109058,8 +117138,9 @@ aaa aaa aaa aaa -aaa -aaa +cFp +cFp +cFp abW abW abW @@ -109067,51 +117148,50 @@ abW abW abW abW -acH -acH -acH -acH -acH -abW -abW -afd +alm +alm +alm +dlD +dlR +dmn +dmJ cVD cVI +dnU +cVD cVI -cVN -afd amj -ana -amS +cVD +dpj alm apG -amS -amS -alm -cVX +dqg alm +dqM +drd +drC atv -amS -amS -alm +dsA +avI +dtr axQ -amS -amS -afd +axQ +duQ +avI aCR -cGZ -aJX -aJX +aGP +dwn +dwA aHR aIU -aHQ -aJX -aJX -aML -cHL -cHP -aQd -aQZ +cHb +cHu +dyu +cHD +cER +cES +aPZ +aQR cHZ dhs dhw @@ -109315,58 +117395,58 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -acH +cFp +cFp +cFp +cFp +abW +abW +abW +abW +abW abW abW -acH -acH -acH -acH -acH abW abW afd +dlS +dmo +dmK cVE -cVC -cVC +alm +dnV ahc -afd +alm amk anb anS alm -apH -anb -arw +amk +dqh alm +amk aiy -alm -atw -anb -avM -alm +drD +amk +dsB +avI +dts +axR axR -anb aAG -afd +dvu aCS -aEf -aFH +aDX +aAv aGR aHS -cHk -cHo +dxv +avI cHv cHz cHG -cHK -cHN +cER +cES aPZ aRb cHY @@ -109576,53 +117656,53 @@ aaa aaa aaa aaa -aaa -aaa -acH -acH -acH abW abW abW -acH -acH -acH +abW +abW +abW +abW +abW abW afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd +dlT +dmp +dmL +dne +alm +dnW +doh +alm +doG +doW +anS +alm +dpL +dqi +alm +dqN cVY -afd -afd -afd -afd -afd -afd -afd -afd -afd -aCT -aEg -aFI -aEg -aEg -aEg -aEg -aFI -aEg -aEg +drE +drZ +dsC +avI +dtt +dtR +dus +aAF +azp +azp aEg +azp +azp +azp +azp +azp +azp +azp +azp +azp cHQ aPZ aQR @@ -109833,17 +117913,7 @@ aaa aaa aaa aaa -aaa -aaa -acH -acH -acH -abW -abW -abW -acH -acH -acH +cFp abW abW abW @@ -109851,35 +117921,45 @@ abW abW abW abW -agk -agk -agk -agk -agk -agk -agm -agm -aiy -agk -adP -adP -adP -adP -adP +abW +afd +dlU +dmq +dmM +alm +alm +dnX +alm +alm +doH +doX +dpk +alm +dpM +alm +alm +dqO +alm +drF +dsa +alm +avI +dtu +dtS +dut +aAF azp -aAH -aBx aCU +aGV +aCY aEh aFJ -aGS -azp -aIY +aHT cHp +aIX +aIX aIY -aIY -aIY -aKp +azp aOF aPZ aQR @@ -110090,56 +118170,56 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -acH +cFp abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -acH -acH -agk -ahP -agk -agl -cVQ -agl +abW +abW +abW +abW +abW +afd +ahH +dmr +ahH +ahH +ahH +agX +agX +dou +agX +doY +dpl +dpB +ahH +dqj aix -ajp -cVZ -agk -adP -adP -adP -adP -adP -azp +ahH +agX +drG +dsb +agX +avI +dtv +dtT +duu aAI -aBy +azp aCV +aGV +aCY aEi -aFK -aGT +dwX aHT -aIV aIX aIX -aIY +aIX aMM -aKp -aOG -aQf -cGo +aNK +aOB +aPZ +aQR cHY dhs dhA @@ -110347,56 +118427,56 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW abW abW -abW -abW -acH -acH -acH -acH -acH -acH -acH -acH -agk -alq -akj +afd +dlV +dms +ahH +agX +agX +agX +doi +dov +agX +agX +agX aml -aiy -agl -cVT -agk -agk -agk -adP -adP -adP -adP -adP +ahH +ahH +ahH +agX +agX +alr +dsc +agX +avI +avI +avI +avI +avI azp -aAJ -aBz aCW +aBz aEj -aFL aGU -aHU -aIW -aIW +aGU aIW +dxN +dyh aLM aMN -aKp -aOB -aPZ -aQR +dyM +dyT +aQd +aQZ cHY dhs dhw @@ -110604,53 +118684,53 @@ aaQ abC abC abC -abC -abC -abC -abC -abC -adm +cXs +cXs +cXs +cXs +cXs abW abW abW abW -acH -acH -acH -acH -acH -acH -acH -acH -agk +afd +alm +dmt +agX +dnf +dnE +agX +doj +dow +doI +alr alr -aml anc cVR -ajp -aki -agl -afE -afE -afE -afH -afH -awV -afE -cEF +aml +agX +alr +alr +alr +dsd +agX +aTz +afd +adP +adP +adP +azp aAK -aBA -aCX +dvX aCY aFM aGV -aHT -aIX -aIX -cGl -aLN +azp +dxO +aDc +aDc aMO -aKp +azp aOH aPZ aRd @@ -110861,53 +118941,53 @@ aaQ aaQ aaa aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp abW abW abW abW -abW -acH -acH -acH -acH -acH -acH -acH -abW -agk +afd +dlW +dmu +dmN +agX +agX +agX +agX +agX +agX +alr als -als -aml -aml -agm -afD -afD -afH -asr +dpC +dpN +alr +alr +alr +dre +agX atx auz +alm +afd +adP +afE afE -deN -axS azp aAL -aBB -aCY aEk aCY +dwB aCY aHV -aIY -aIY -aIY -aIY -aIY -aNK +aDc +aDc +aDc +aDc +aNL aOB aPZ aQS @@ -111118,53 +119198,53 @@ abt abF aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -abW -acH -acH -abW -abW -acH -acH -acH -acH +afd +alm +dmv +dmO +agX +agX +dnY +agX +agX +agX afD -afD -afD -afD -aiz -ajr -afD -acH +alr +alr +als +alr +alr +alr +agX +agX +agX +alr +aTz +afd afH -dfq -aty -dfq -afE -deN -dfd cEG +duR +azp aAK -aBC -aCZ +dvY aCY aFN aGV -aHT -aIX -aIX -aIX -aLO -aIY -aNL +azp +dxP +aDc +aDc +dyA +azp aOI aQg aRe @@ -111375,50 +119455,50 @@ abu abG aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -abW -abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -acH -acH -acH -abW -abW -acH -afH -ass -dfq +afd +dlX +alm +dmP +agX +agX +agX +agX +agX +agX +alr +alr +alr +alr +dqk +dqz +aTz +drf +agX +dse cKZ -dfz -awW -cLe -cEG +aTz +afd +afE +dfd aAJ -aBD -aDa -aEl -aFO +azp aDa +aGV +aCY +dwC aHW aIZ -aIZ -aIZ +dxQ +dyi aLP aMP aNM @@ -111632,53 +119712,53 @@ abt abH aaQ aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp abW -adP -adP -adP +afd +afd +dmw +dmQ +dng +dnF +dnZ +alm +dox +doJ +alr +dpm +dpD +dpO +dql +dqA +aTz +aTz +alm +aTz +aTz +afd +afd afH -adP -adP -adP -adP -adP -deO -deO -deO -deO -deO -deO -afH -afH -afH -afH -afH -cLd dfd +dgl azp -aAM -aBE aDb aEm -aFP +aCY aGW +dwY aHT -cGl aIX aIX -aLQ -aMQ -aKp +aIX +aDc +aNK aOK aPZ cMh @@ -111890,52 +119970,52 @@ abI aaQ aaQ aaQ -abC -abC -abC -abC -abC -abC -abC -abC -abC -afi -afE -afi -afc -afc +cXs +cXs +cXs +cXs +cXs +cXs +cXs +adm +abW +afd +afd +dmR +dnh +dnG aTz -adP -afE -afH +aTz +doy +doK alt -afE +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +dtw +dtU +duv afH -afH -deO -deO -deO -deO -adP -atz -aqf -cKF -deN -dfd azp -aAN -aBF aDc +dvZ +aCY aEn -aFQ -aGX +dwZ +aHT +aIX +aIX +aIX +dyB azp -azp -azp -cEG -azp -azp -aKp aOL aPZ cMh @@ -112146,39 +120226,41 @@ abu abJ abX ack -act -acI -acI -acI -acI -acI -acI -acI -acI -acI -afj -afF -agn -ahd -ahQ -aiB -ahd -ahd -cKC -aBI -amm -cKI -anT +abX +dkG +dkJ +dkR +dkY +dkZ +dla +dlf +dlr +abW +abW +afd +afd +afd +afd +afd +afd +afd +afd +afd +afd +adP +adP +afH +afH +afE +adP +adP +afE +afE +afH +afE +dtV afH -aqf afH -alw -afc -deQ -cKF -deN -deN -dfd azp azp azp @@ -112187,12 +120269,10 @@ azp azp azp azp -dgl -cLY -aNz -aPP -aMR -aKp +azp +azp +azp +azp aOM aPZ cMh @@ -112411,7 +120491,7 @@ abC abC abC abC -abC +cCE abC afi afi @@ -112419,20 +120499,20 @@ afE afE afE adP -ajs -deN -deN -deN -aAT -aBI -aBI -aBI -apI -ahd +adP +adP +adP +adP +adP +adP +adP +afE +alx +deQ arx -ast -cKW -cKW +afa +afa +aQK avO cKU axU @@ -112667,22 +120747,22 @@ aaa aaa aaa aaa -aaa -aaa -aaa +abC +cCE +abC afk afG ago ahe afH adP -afH -afH -cKD -cKF -deO -afH adP +adP +adP +adP +adP +adP +afH deN ahR aQK @@ -112925,7 +121005,7 @@ abC abC abC abC -abC +cCE abC afi afi @@ -112936,9 +121016,9 @@ adP adP deO deO -afH deO deO +afE ahR aQK aiF @@ -113181,11 +121261,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -afH +abC +cCE +afi +afi +afi afE ahf afH @@ -113438,13 +121518,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -afH -ahg +abC +cCF +dlE +dlY +dmx +aBI +dni afE adP adP @@ -113695,13 +121775,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +abC +abC +dlF +afi +afi afH -afH -ahh +dnj afE adP adP @@ -113958,7 +122038,7 @@ aaa aaa afH agq -ahi +dnk afE adP adP @@ -114220,7 +122300,7 @@ afH afH afH adP -afH +deO adP afH ahR @@ -114473,16 +122553,16 @@ aaa afI ags ahk -ahR +dnH aiC -ajt -akk -afa -aQK -aQK +dok +doz +ast +cKW +cKW and -ahe -cKN +dpP +dqm aNx aqC cEC @@ -119082,17 +127162,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119339,17 +127419,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119596,17 +127676,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -119853,17 +127933,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120110,17 +128190,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120367,17 +128447,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120624,17 +128704,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120657,11 +128737,11 @@ akl asJ cED auO +aBi awe awe -ayo azK -ayp +duS aBV aDs aEE @@ -120881,17 +128961,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -120914,11 +128994,11 @@ arK api alD auP -awf -awf -ayp -ayw -ayp +dsW +dtx +dtW +duw +duT aBW aDs aEF @@ -121138,17 +129218,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -121395,17 +129475,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -121954,11 +130034,11 @@ aGi aCa aIt aJq -cLm +dxR aLc aMa aJq -cLm +dyN aPe aQj aQR @@ -122468,11 +130548,11 @@ aGk aHh ayx aJs -cLn +dxS aLe aMc aJs -cLn +dyO aPg aQj aQR @@ -123484,11 +131564,11 @@ arP asN arP auZ -awf -awf -ayw -ayw -ayp +dsX +dty +dtX +dux +duU aCe aDs aEP @@ -123704,21 +131784,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -123741,16 +131821,16 @@ arQ asO arQ ava -awe -awe +dsY +dtz ayx azQ -ayp -aCf +duV +dvv aDs aEQ -ayw -aCf +dwo +dwD arP arP abW @@ -123961,21 +132041,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124218,21 +132298,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124475,21 +132555,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124732,21 +132812,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -124989,21 +133069,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125246,21 +133326,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125503,21 +133583,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -125760,21 +133840,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -126017,21 +134097,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -126274,21 +134354,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp +cFp aaa aaa aaa @@ -136910,7 +144990,7 @@ bgr bhm bhm bjG -bkG +dyY bkG blF bkG @@ -136921,7 +145001,7 @@ bsr bhm bhm bwF -bxR +bhm byM bzL bxR @@ -137177,10 +145257,10 @@ bqI aZQ aZQ aZQ -aZQ -aZQ +dyZ +bEq byN -bzM +dza bar bCe bDg diff --git a/_maps/map_files/Cerestation/cerestation.dmm.rej b/_maps/map_files/Cerestation/cerestation.dmm.rej new file mode 100644 index 0000000000..4c3d6676c0 --- /dev/null +++ b/_maps/map_files/Cerestation/cerestation.dmm.rej @@ -0,0 +1,19 @@ +diff a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm (rejected hunks) +@@ -101529,7 +109389,7 @@ cpo + cqk + cri + cqk +-dky ++dkx + ctm + cua + cKv +@@ -101786,7 +109646,7 @@ cpo + cql + crj + csf +-dkz ++dkx + ctn + cub + cuu diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 5baa169e99..7ee93642ff 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -23,6 +23,14 @@ light_color = LIGHT_COLOR_RED +/obj/machinery/computer/secure_data/laptop + name = "security laptop" + desc = "A cheap Nanotrasen security laptop, it functions as a security records console. It's bolted to the table." + icon_state = "laptop" + icon_screen = "seclaptop" + icon_keyboard = "laptop_key" + clockwork = TRUE //it'd look weird + /obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/weapon/card/id)) if(!scan) diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 6034e54b05e6c2a42d1d475eb5153e92dcd5402d..82129ba7a6efbf2218f8989023c365f8500436cc 100644 GIT binary patch delta 15325 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 So-ZNbpQfswN`;c`i~k295(P{E delta 15168 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⁣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 From d53044aa104067a0affee5aff0e41205e9c29f28 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 1 Jun 2017 08:38:41 -0500 Subject: [PATCH 018/215] Fixes black carpet recipe and sprite --- code/game/objects/items/stacks/tiles/tile_types.dm.rej | 10 ++++++++++ code/modules/crafting/recipes.dm.rej | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 code/game/objects/items/stacks/tiles/tile_types.dm.rej create mode 100644 code/modules/crafting/recipes.dm.rej diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm.rej b/code/game/objects/items/stacks/tiles/tile_types.dm.rej new file mode 100644 index 0000000000..2f47c12b65 --- /dev/null +++ b/code/game/objects/items/stacks/tiles/tile_types.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm (rejected hunks) +@@ -111,6 +111,8 @@ + icon_state = "tile-carpet-black" + turf_type = /turf/open/floor/carpet/black + ++/obj/item/stack/tile/carpet/black/fifty ++ amount = 50 + + /obj/item/stack/tile/fakespace + name = "astral carpet" diff --git a/code/modules/crafting/recipes.dm.rej b/code/modules/crafting/recipes.dm.rej new file mode 100644 index 0000000000..39167bca83 --- /dev/null +++ b/code/modules/crafting/recipes.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm (rejected hunks) +@@ -347,7 +347,7 @@ + /datum/crafting_recipe/blackcarpet + name = "Black Carpet" + reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) +- result = /obj/item/stack/tile/carpet/black ++ result = /obj/item/stack/tile/carpet/black/fifty + category = CAT_MISC + + /datum/crafting_recipe/showercurtain From c483767431569cf66ececee4e885c731b1edfc38 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 21:50:11 -0700 Subject: [PATCH 019/215] Update hologram.dm --- code/game/machinery/hologram.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 7a8adfa0c8..47f02acdc2 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -58,12 +58,11 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/Destroy() if(outgoing_call) - LAZYADD(holo_calls, outgoing_call) + outgoing_call.ConnectionFailure(src) for(var/I in holo_calls) var/datum/holocall/HC = I HC.ConnectionFailure(src) - LAZYCLEARLIST(holo_calls) for (var/I in masters) clear_holo(I) @@ -399,4 +398,4 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) #undef HOLOPAD_PASSIVE_POWER_USAGE -#undef HOLOGRAM_POWER_USAGE \ No newline at end of file +#undef HOLOGRAM_POWER_USAGE From 224f1d8bd18d6955b26593a34d09d7037ac406e0 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 21:50:17 -0700 Subject: [PATCH 020/215] Delete hologram.dm.rej --- code/game/machinery/hologram.dm.rej | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 code/game/machinery/hologram.dm.rej diff --git a/code/game/machinery/hologram.dm.rej b/code/game/machinery/hologram.dm.rej deleted file mode 100644 index b2237e799d..0000000000 --- a/code/game/machinery/hologram.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm (rejected hunks) -@@ -58,13 +58,11 @@ Possible to do for anyone motivated enough: - - /obj/machinery/holopad/Destroy() - if(outgoing_call) -- LAZYADD(holo_calls, outgoing_call) -- outgoing_call = null -+ outgoing_call.ConnectionFailure(src) - - for(var/I in holo_calls) - var/datum/holocall/HC = I - HC.ConnectionFailure(src) -- LAZYCLEARLIST(holo_calls) - - for (var/I in masters) - clear_holo(I) From 86d11b3bce25007d31c0a59c5e5b8bf1f0d36465 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 21:54:49 -0700 Subject: [PATCH 021/215] Delete cardboard_cutouts.dm.rej --- code/game/objects/items/cardboard_cutouts.dm.rej | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 code/game/objects/items/cardboard_cutouts.dm.rej diff --git a/code/game/objects/items/cardboard_cutouts.dm.rej b/code/game/objects/items/cardboard_cutouts.dm.rej deleted file mode 100644 index c2f19567c7..0000000000 --- a/code/game/objects/items/cardboard_cutouts.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm (rejected hunks) -@@ -10,7 +10,7 @@ - // add an entry in change_appearance() if you add to here - var/list/possible_appearances = list("Assistant", "Clown", "Mime", - "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", -- "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", -+ "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Xenomorph Maid", "Swarmer", - "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", - "Laughter Demon", "Private Security Officer") - var/pushed_over = FALSE //If the cutout is pushed over and has to be righted From 8e7b6adff02548cf6f45020fa2c5a5f7c9c1dba1 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 21:54:59 -0700 Subject: [PATCH 022/215] Update cardboard_cutouts.dm --- code/game/objects/items/cardboard_cutouts.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 2bdff7699e..0e3cc4836c 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -10,7 +10,7 @@ // add an entry in change_appearance() if you add to here var/list/possible_appearances = list("Assistant", "Clown", "Mime", "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", - "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", + "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Xenomorph Maid", "Swarmer", "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", "Laughter Demon") var/pushed_over = FALSE //If the cutout is pushed over and has to be righted From 804552355bda0d51c145e55b57528f91222aba12 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 22:03:58 -0700 Subject: [PATCH 023/215] Update corpse.dm --- code/modules/awaymissions/corpse.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index e8f4b07c44..55bdacb0d5 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -416,7 +416,7 @@ back = /obj/item/weapon/storage/backpack/security has_id = 1 id_job = "Private Security Officer" - id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) + id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage, GLOB.access_security) /obj/effect/mob_spawn/human/commander/alive death = FALSE From bce5cbd6085bfc05aad9888a76126a4c36f455b3 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 2 Jun 2017 22:04:07 -0700 Subject: [PATCH 024/215] Delete corpse.dm.rej --- code/modules/awaymissions/corpse.dm.rej | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 code/modules/awaymissions/corpse.dm.rej diff --git a/code/modules/awaymissions/corpse.dm.rej b/code/modules/awaymissions/corpse.dm.rej deleted file mode 100644 index 92f93e1c1c..0000000000 --- a/code/modules/awaymissions/corpse.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm (rejected hunks) -@@ -372,7 +372,7 @@ - /obj/effect/mob_spawn/human/nanotrasensoldier - name = "Nanotrasen Private Security Officer" - id_job = "Private Security Force" -- id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage) -+ id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage, GLOB.access_security) - outfit = /datum/outfit/nanotrasensoldiercorpse - - /datum/outfit/nanotrasensoldiercorpse From 7bb7c7d4945b8f8d139b790ae2be3786237c9ced Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 3 Jun 2017 02:25:44 -0500 Subject: [PATCH 025/215] [Box] Removes extra unattached vent from Xenobiology Lab --- .../TgStation/tgstation.2.1.3.dmm.rej | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej b/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej index 95d02d9acb..1a36e4ef41 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej @@ -1,12 +1,12 @@ diff a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm (rejected hunks) -@@ -20207,9 +20151,7 @@ - /area/shuttle/syndicate) - "aTq" = ( - /turf/closed/wall, --/area/security/vacantoffice{ -- name = "Vacant Office A" -- }) -+/area/security/vacantoffice/a) - "aTr" = ( - /obj/machinery/door/firedoor, - /obj/machinery/status_display{ +@@ -48285,10 +48285,6 @@ + /obj/structure/window/reinforced{ + dir = 1 + }, +-/obj/machinery/atmospherics/components/unary/vent_pump{ +- dir = 4; +- on = 1 +- }, + /obj/structure/cable{ + d1 = 4; + d2 = 8; From 59a189327a887d7b526e8041e9a70ea59ae5d517 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 3 Jun 2017 10:58:01 -0500 Subject: [PATCH 026/215] Fixes thunderdome, moves delta nuke op shuttle locations a bit. --- .../map_files/Deltastation/DeltaStation2.dmm | 2905 +++++++++++++---- _maps/map_files/generic/Centcomm.dmm | 112 +- 2 files changed, 2346 insertions(+), 671 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 62311b4885..17a5b7311d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1533,14 +1533,7 @@ }, /area/construction/mining/aux_base) "adm" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, +/turf/open/space/basic, /area/shuttle/syndicate) "adn" = ( /turf/closed/wall/mineral/plastitanium, @@ -105502,6 +105495,1688 @@ dir = 1 }, /area/crew_quarters/locker) +"ejC" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"ejD" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ejE" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"ejF" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"ejG" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"ejH" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"ejI" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"ejJ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ejK" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"ejL" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ejM" = ( +/obj/machinery/computer/med_data{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejN" = ( +/obj/machinery/computer/crew{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejO" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejP" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejQ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejR" = ( +/obj/machinery/computer/camera_advanced{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejS" = ( +/obj/machinery/computer/secure_data{ + icon_keyboard = "syndi_key" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejT" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ejU" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ejV" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/weapon/clipboard, +/obj/item/toy/figure/syndie, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ejW" = ( +/obj/structure/chair/office/dark{ + dir = 8; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/black, +/area/space) +"ejX" = ( +/turf/open/floor/plasteel/black, +/area/space) +"ejY" = ( +/obj/structure/chair/office/dark{ + dir = 1; + name = "tactical swivel chair" + }, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "Cockpit View Control"; + pixel_x = 32; + pixel_y = 32; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/black, +/area/space) +"ejZ" = ( +/turf/open/floor/plasteel/black, +/area/space) +"eka" = ( +/obj/structure/chair/office/dark{ + dir = 4; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/black, +/area/space) +"ekb" = ( +/obj/structure/table/reinforced, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ekc" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekd" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eke" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekf" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekg" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekh" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"eki" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekj" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekk" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ekl" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekm" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"ekn" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eko" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekp" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekq" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ekr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eks" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekt" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eku" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) +"ekv" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"ekw" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekx" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eky" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/handcuffs{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/zipties, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekA" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekB" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) +"ekC" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekD" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekE" = ( +/turf/open/floor/plasteel/black, +/area/space) +"ekF" = ( +/obj/structure/chair{ + dir = 8; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekG" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekH" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"ekI" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekJ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekK" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekL" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekM" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekN" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekO" = ( +/turf/open/floor/plasteel/black, +/area/space) +"ekP" = ( +/obj/structure/chair{ + dir = 8; + name = "tactical chair" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekQ" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekR" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekS" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + dir = 5 + }, +/area/space) +"ekT" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekU" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ekW" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ekX" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ekY" = ( +/turf/open/floor/plasteel/black, +/area/space) +"ekZ" = ( +/obj/structure/chair{ + dir = 8; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ela" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elb" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elc" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 4 + }, +/area/space) +"eld" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ele" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elf" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elg" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elh" = ( +/obj/structure/chair{ + dir = 4; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eli" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elj" = ( +/obj/structure/chair{ + dir = 8; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elk" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ell" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elm" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"eln" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK" + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elo" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"elp" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elq" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 4 + }, +/area/space) +"elr" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"els" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elt" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elu" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elv" = ( +/obj/machinery/door/airlock/external{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elw" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elx" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/obj/structure/table/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/podhatch{ + dir = 10 + }, +/area/space) +"ely" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"elz" = ( +/obj/structure/chair{ + name = "tactical chair" + }, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 6 + }, +/area/space) +"elA" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elC" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 4 + }, +/area/space) +"elD" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elE" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elF" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elG" = ( +/obj/machinery/door/airlock/external{ + name = "E.V.A. Gear Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elH" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elI" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elJ" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elK" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/space) +"elL" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elM" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elN" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elO" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elP" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"elQ" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 6 + }, +/area/space) +"elR" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elS" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elT" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elU" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elV" = ( +/turf/open/floor/plasteel/black, +/area/space) +"elW" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"elX" = ( +/obj/structure/chair{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elY" = ( +/obj/structure/chair{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"elZ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"ema" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emb" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"emc" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"emd" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eme" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emf" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emg" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emh" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emi" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emj" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emk" = ( +/turf/open/floor/plasteel/black, +/area/space) +"eml" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emm" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emn" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emo" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emp" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emq" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ems" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"emt" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emu" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emv" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emw" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emx" = ( +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emy" = ( +/obj/structure/table/reinforced, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emz" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emA" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emB" = ( +/turf/open/floor/plasteel/black, +/area/space) +"emC" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emD" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emE" = ( +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emF" = ( +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emG" = ( +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emH" = ( +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emI" = ( +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emJ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emK" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emL" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"emM" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emN" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emO" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emP" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emQ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emR" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emS" = ( +/turf/open/floor/plasteel/black, +/area/space) +"emT" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"emU" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"emV" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emW" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emX" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emY" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"emZ" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"ena" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enb" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enc" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"end" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"ene" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 9 + }, +/area/space) +"enf" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"eng" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"enh" = ( +/obj/machinery/door/airlock/hatch{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"eni" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"enj" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"enk" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"enl" = ( +/obj/machinery/door/airlock/hatch{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enm" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"enn" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 1 + }, +/area/space) +"eno" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 5 + }, +/area/space) +"enp" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"enq" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ens" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"ent" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enu" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"env" = ( +/turf/open/floor/plasteel/podhatch{ + dir = 10 + }, +/area/space) +"enw" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enx" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"eny" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enz" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enA" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enB" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enC" = ( +/turf/open/floor/plasteel/podhatch, +/area/space) +"enD" = ( +/turf/open/floor/plasteel/podhatch{ + icon_state = "podhatch"; + dir = 6 + }, +/area/space) +"enE" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"enF" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enG" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enH" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/space) +"enJ" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault, +/area/space) +"enK" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/space) +"enL" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/space) +"enM" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault, +/area/space) +"enN" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enO" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"enP" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"enQ" = ( +/turf/open/floor/plasteel/vault, +/area/space) +"enR" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enS" = ( +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enT" = ( +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/grenade/plastic/c4, +/obj/item/weapon/grenade/plastic/c4, +/obj/item/weapon/grenade/plastic/c4, +/obj/item/weapon/grenade/plastic/c4, +/obj/item/weapon/grenade/plastic/c4, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"enU" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/vault, +/area/space) +"enV" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Technological Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/vault, +/area/space) +"enW" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/turf/open/floor/plasteel/vault, +/area/space) +"enX" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enY" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"enZ" = ( +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/obj/structure/table/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"eoa" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eob" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eoc" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eod" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoe" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eof" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Theatre Stage"; + req_access_txt = "0" + }, +/turf/open/floor/circuit/red, +/area/space) +"eog" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoh" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoi" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoj" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eok" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eol" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/space) +"eom" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eon" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoo" = ( +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"eop" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"eoq" = ( +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/space) +"eor" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eos" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eot" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eou" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eov" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eow" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eox" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoy" = ( +/obj/machinery/recharge_station, +/turf/open/floor/circuit/red, +/area/space) +"eoz" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/circuit/red, +/area/space) +"eoA" = ( +/obj/machinery/recharge_station, +/turf/open/floor/circuit/red, +/area/space) +"eoB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoC" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoD" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoE" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoF" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoG" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoH" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"eoI" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoJ" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoK" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoL" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) +"eoM" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoN" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoO" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoP" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoQ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"eoR" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"eoS" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoT" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoU" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoV" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) +"eoW" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"eoX" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoY" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"eoZ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/space) +"epa" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) (1,1,1) = {" aaa @@ -108117,18 +109792,15 @@ aaa aaa aaa adm -adn -adn -adn -adn -adn -adn -adn -adn -aes -aaa -aaa -aaa +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -108368,21 +110040,21 @@ aaa aaa aaa adm -adn -adn -adn -adn -adn -adn -aiN -ajI -aiN -alK -amN -anW -aoz -aoC -apA +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -108624,22 +110296,22 @@ aaa aaa aaa aaa -adn -afv -afK -afK -afK -aho -adn -agG -aeh -aeG -aeG -amO -aeG -aoA -aoC -apB +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -108881,22 +110553,22 @@ aaa aaa aaa aaa -adn -aeG -aeG -aeG -aeG -aeG -aia -ehe -aeh -akK -alL -amP -anX -aoB -aoC -apC +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -109132,28 +110804,28 @@ aaa aaa aaa adm -adn -adn -adn -aes +adm +adm +adm +adm aaa aaa -adn -aeG -aeG -aeG -aeG -aeG -adn -aiO -aeh -akL -age -amQ -adn -adn -adn -aeI +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -109388,26 +111060,29 @@ aaa aaa aaa aaa -adn -adA -adT -aeh -adn -aeE aaa -adn -afw -afL -ehd -agG -ahp -adn -aiP -aeh -akL -age -amR -adn +aaa +aaa +adm +adm +adm +adm +adm +adm +aaa +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -109645,28 +111320,28 @@ aaa aaa aaa aaa -ado -adB -adU -aeh -adn -adn -adn -adn -adn -adn -adn -agH -agb -adn -adn -adn -akM -agb -adn -adn -adn -aes +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -109902,28 +111577,28 @@ aaa aaa aaa aaa -ado -adC -adV -aeh -aet -aeF -aeT -ehb -aeT -aeT -agb -aeG -aeG -aeG -aeG -ehf -akL -age -aeh -agb -aoC -apA +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -110159,28 +111834,28 @@ aaa aaa aaa aaa -ado -adD -adW -aeh -aeu -aeG -adV -adV -adV -aeG -agc -aeG -adV -adV -adV -adV -akL -age -aeh -anY -aoC -apB +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -110416,28 +112091,28 @@ aaa aaa aaa aaa -ado -adE -adV -aeh -adn -aeH -aeU -ehc -aeU -aeU -agb -aeG -aeG -aeG -aeG -ehg -akL -age -aeh -agb -aoC -apC +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -110673,28 +112348,28 @@ aaa aaa aaa aaa -ado -adF -adX -aeh -adn -adn -adn -afk -adn -adn -adn -agI -agb -adn -adn -adn -akM -agb -adn -adn -adn -aev +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -110930,26 +112605,26 @@ aaa aaa aaa aaa -adn -adG -adY -aeh -adn -aeI +adm +adm +adm +adm +adm +adm aaa aaa aaa -adn -agd -aeG -ahq -adn -aiQ -aeh -akL -age -amS -adn +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -111187,29 +112862,29 @@ aaa aaa aaa aaa -adp -adn -adn -adn -aev +adm +adm +adm +adm +adm aaa aaa aaa aaa -afM -age -aeG -ahq -adn -aiR -aeh -akL -age -amT -adn -adn -adn -aeE +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -111453,20 +113128,20 @@ aaa aaa aaa aaa -afN -agf -aeG -ahr -aet -aiS -aeh -akN -alM -amP -aeG -aoE -aoC -apA +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -111710,20 +113385,20 @@ aaa aaa aaa aaa -adp -adn -adn -adn -adn -aiT -aeh -aeG -aeG -amU -aeG -aoF -aoC -apB +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -111970,17 +113645,17 @@ aaa aaa aaa aaa -ahs -adn -aiU -aeh -akO -alN -amV -ehg -aoE -aoC -apC +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -112228,16 +113903,16 @@ aaa aaa aaa aaa -adp -adn -adn -adn -adn -adn -adn -adn -adn -aev +adm +adm +adm +adm +adm +adm +adm +adm +adm +adm aaa aaa aaa @@ -114549,16 +116224,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +emc +emt +emK +enb +ens +enH +enY +eon +eoC +eoR aaa aaa aaa @@ -114800,22 +116475,22 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ekH +ekR +elb +elp +elB +elP +emd +emu +emL +enc +ent +enI +enZ +eoo +eoD +eoS aaa aaa aaa @@ -115057,22 +116732,22 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ekI +ekS +elc +elq +elC +elQ +eme +emv +emM +end +enu +enJ +eoa +eop +eoE +eoT aaa aaa aaa @@ -115314,22 +116989,22 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ekJ +ekT +eld +elr +elD +elR +emf +emw +emN +ene +env +enK +eob +eoq +eoF +eoU aaa aaa aaa @@ -115564,29 +117239,29 @@ aaa aaa aaa aaa +ejC +ejL +ejU +ekd +ekm aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ekK +ekU +ele +els +elE +elS +emg +emx +emO +enf +enw +enL +eoc +eor +eoG +eoV aaa aaa aaa @@ -115821,26 +117496,26 @@ aaa aaa aaa aaa +ejD +ejM +ejV +eke +ekn +ekv aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ekL +ekV +elf +elt +elF +elT +emh +emy +emP +eng +enx +enM +eod aaa aaa aaa @@ -116078,28 +117753,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ejE +ejN +ejW +ekf +eko +ekw +ekC +ekM +ekW +elg +elu +elG +brL +emi +emz +emQ +enh +brL +enN +eoe +eos +eoH aaa aaa aaa @@ -116335,28 +118010,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ejF +ejO +ejX +ekg +ekp +ekx +ekD +ekN +ekX +elh +brL +elH +elU +emj +emA +emR +eni +eny +enO +brL +eot +eoI aaa aaa aaa @@ -116592,28 +118267,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ejG +ejP +ejY +ekh +ekq +eky +ekE +ekO +ekY +eli +elv +elI +elV +emk +emB +emS +enj +enz +enP +eof +eou +eoJ aaa aaa aaa @@ -116849,28 +118524,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ejH +ejQ +ejZ +eki +ekr +ekz +ekF +ekP +ekZ +elj +brL +elJ +elW +eml +emC +emT +enk +enA +enQ +brL +eov +eoK aaa aaa aaa @@ -117106,28 +118781,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ejI +ejR +eka +ekj +eks +ekA +ekG +ekQ +ela +elk +elw +elK +brL +emm +emD +emU +enl +brL +enR +eog +eow +eoL aaa aaa aaa @@ -117363,26 +119038,26 @@ aaa aaa aaa aaa +ejJ +ejS +ekb +ekk +ekt +ekB aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ell +elx +elL +elX +emn +emE +emV +enm +enB +enS +eoh aaa aaa aaa @@ -117544,7 +119219,7 @@ aaa aaa aaa aaa -eaT +aaa aaa aaa aaa @@ -117620,29 +119295,29 @@ aaa aaa aaa aaa +ejK +ejT +ekc +ekl +eku aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +elm +ely +elM +elY +emo +emF +emW +enn +enC +enT +eoi +eox +eoM +eoW aaa aaa aaa @@ -117886,20 +119561,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +eln +elz +elN +elZ +emp +emG +emX +eno +enD +enU +eoj +eoy +eoN +eoX aaa aaa aaa @@ -118143,20 +119818,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +elo +elA +elO +ema +emq +emH +emY +enp +enE +enV +eok +eoz +eoO +eoY aaa aaa aaa @@ -118403,17 +120078,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +emb +emr +emI +emZ +enq +enF +enW +eol +eoA +eoP +eoZ aaa aaa aaa @@ -118661,16 +120336,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ems +emJ +ena +enr +enG +enX +eom +eoB +eoQ +epa aaa aaa aaa @@ -121141,7 +122816,7 @@ aaa aaa aaa aaa -aaa +eaT aaa aaa aaa @@ -140168,21 +141843,6 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa eaY aaa aaa @@ -140197,6 +141857,21 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa "} (136,1,1) = {" aaa @@ -157433,7 +159108,7 @@ aaa aaa aaa aaa -aab +aaa aaa aaa aaa @@ -159510,7 +161185,7 @@ aaa aaa aaa aaa -aaa +aab aaa aaa aaa @@ -161998,7 +163673,7 @@ aaa aaa aaa aaa -aaa +eaU aaa aaa aaa @@ -164061,7 +165736,7 @@ aaa aaa aaa aaa -eaU +aaa aaa aaa aaa diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index d7df57e8ee..d315b45149 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -72008,14 +72008,14 @@ fj fy fC fN -fO -fO -fO -fO -fO -fO -fO -fO +ab +ab +ab +ab +ab +ab +ab +ab aa aa aa @@ -72265,14 +72265,14 @@ fi fv fC fN -fO +ab fR fR fR fR fR fR -fO +ab aa aa aa @@ -72522,16 +72522,16 @@ ag ag ag ab -fO +ab fS fS fS fS fS fS -fO -fO -fO +ab +ab +ab aa aa aa @@ -72779,7 +72779,7 @@ fk dZ fD fN -fO +ab ab ab ab @@ -72788,7 +72788,7 @@ ab ab fZ ga -fO +ab aa aa aa @@ -73036,7 +73036,7 @@ fk dZ fD fN -fO +ab ab ab ab @@ -73045,7 +73045,7 @@ ab ab fZ ga -fO +ab aa aa aa @@ -73293,7 +73293,7 @@ fl dZ fD fN -fO +ab ab ab ab @@ -73302,7 +73302,7 @@ ab ab fZ ga -fO +ab aa aa aa @@ -73550,7 +73550,7 @@ fk dZ fD fN -fO +ab ab ab ab @@ -73559,7 +73559,7 @@ ab ab fZ ga -fO +ab aa aa aa @@ -73807,7 +73807,7 @@ fk dZ fD fN -fO +ab ab ab ab @@ -73816,7 +73816,7 @@ ab ab fZ ga -fO +ab aa aa aa @@ -74064,16 +74064,16 @@ ag ag ag ab -fO +ab fT fT fT fT fT fT -fO -fO -fO +ab +ab +ab aa aa aa @@ -78176,16 +78176,16 @@ fr em fI fN -fO +ab fT fT fT fT fT fT -fO -fO -fO +ab +ab +ab aa aa aa @@ -78433,7 +78433,7 @@ en en fJ fN -fO +ab ab ab ab @@ -78442,7 +78442,7 @@ ab ab fZ gb -fO +ab aa aa aa @@ -78690,7 +78690,7 @@ ag ag ag ab -fO +ab ab ab ab @@ -78699,7 +78699,7 @@ ab ab fZ gb -fO +ab aa aa aa @@ -78947,7 +78947,7 @@ dP dP dP fN -fO +ab ab ab ab @@ -78956,7 +78956,7 @@ ab ab fZ gb -fO +ab aa aa aa @@ -79204,7 +79204,7 @@ fs fB fK fN -fO +ab ab ab ab @@ -79213,7 +79213,7 @@ ab ab fZ gb -fO +ab aa aa aa @@ -79461,7 +79461,7 @@ ft fB fL fN -fO +ab ab ab ab @@ -79470,7 +79470,7 @@ ab ab fZ gb -fO +ab aa aa aa @@ -79718,16 +79718,16 @@ fu fB fM fN -fO +ab fS fS fS fS fS fS -fO -fO -fO +ab +ab +ab aa aa aa @@ -79975,14 +79975,14 @@ dT dT dT fN -fO +ab fW fW fW fW fW fW -fO +ab aa aa aa @@ -80232,14 +80232,14 @@ ag ag ag ab -fO -fO -fO -fO -fO -fO -fO -fO +ab +ab +ab +ab +ab +ab +ab +ab aa aa aa From ec90b208629977a132590aeae58225edb41a906b Mon Sep 17 00:00:00 2001 From: cebutris Date: Sun, 4 Jun 2017 13:20:08 -0400 Subject: [PATCH 027/215] oof --- code/modules/mob/living/emote.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index cacd433fec..eb0c7094c3 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -87,6 +87,7 @@ message_larva = "lets out a sickly hiss of air and falls limply to the floor..." message_monkey = "lets out a faint chimper as it collapses and stops moving..." message_simple = "stops moving..." + playsound(user.loc, 'sound/voice/oof.ogg', 80, 1, 1) //Defenitley not copypasta stat_allowed = UNCONSCIOUS /datum/emote/living/deathgasp/run_emote(mob/user, params) From 12790a5422378c1a85cc858a2882171edd82a077 Mon Sep 17 00:00:00 2001 From: cebutris Date: Sun, 4 Jun 2017 13:22:29 -0400 Subject: [PATCH 028/215] i swear I added this the first time --- sound/voice/oof.ogg | Bin 0 -> 9714 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sound/voice/oof.ogg diff --git a/sound/voice/oof.ogg b/sound/voice/oof.ogg new file mode 100644 index 0000000000000000000000000000000000000000..dd0e7edee6fd66e940e911454b8cd066de3f6d27 GIT binary patch literal 9714 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 Date: Sun, 4 Jun 2017 19:23:18 -0500 Subject: [PATCH 029/215] Only human and silicon servants can help recite multi-invoker scriptures --- .../clock_helpers/scripture_checks.dm | 3 +++ .../clock_cult/clock_items/clockwork_slab.dm | 18 +++--------------- .../gamemodes/clock_cult/clock_scripture.dm | 6 +++--- .../clock_scriptures/scripture_applications.dm | 2 +- .../objects/items/weapons/storage/toolbox.dm | 2 +- 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm index e5d193d74a..914804185e 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm @@ -59,3 +59,6 @@ //changes construction value /proc/change_construction_value(amount) GLOB.clockwork_construction_value += amount + +/proc/can_recite_scripture(mob/living/L) + return (is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal() && (GLOB.ratvar_awakens || (ishuman(L) || issilicon(L)))) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm index 8b3aa01533..72dba26bed 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -14,7 +14,6 @@ var/target_component_id //the target component ID to create, if any var/no_cost = FALSE //If the slab is admin-only and needs no components and has no scripture locks var/speed_multiplier = 1 //multiples how fast this slab recites scripture - var/nonhuman_usable = FALSE //if the slab can be used by nonhumans, defaults to off var/produces_components = TRUE //if it produces components at all var/selected_scripture = SCRIPTURE_DRIVER var/recollecting = FALSE //if we're looking at fancy recollection @@ -33,13 +32,9 @@ no_cost = TRUE produces_components = FALSE -/obj/item/clockwork/slab/scarab - nonhuman_usable = TRUE - /obj/item/clockwork/slab/debug speed_multiplier = 0 no_cost = TRUE - nonhuman_usable = TRUE /obj/item/clockwork/slab/debug/attack_hand(mob/living/user) ..() @@ -49,7 +44,6 @@ /obj/item/clockwork/slab/cyborg //three scriptures, plus a spear and proselytizer clockwork_desc = "A divine link to the Celestial Derelict, allowing for limited recital of scripture.\n\ Hitting a slab, a Servant with a slab, or a cache will transfer this slab's components into the target, the target's slab, or the global cache, respectively." - nonhuman_usable = TRUE quickbound = list(/datum/clockwork_scripture/ranged_ability/judicial_marker, /datum/clockwork_scripture/ranged_ability/linked_vanguard, \ /datum/clockwork_scripture/create_object/tinkerers_cache) maximum_quickbound = 6 //we usually have one or two unique scriptures, so if ratvar is up let us bind one more @@ -106,12 +100,6 @@ slab_ability = null return ..() -/obj/item/clockwork/slab/ratvar_act() - if(GLOB.ratvar_awakens) - nonhuman_usable = TRUE - else - nonhuman_usable = initial(nonhuman_usable) - /obj/item/clockwork/slab/dropped(mob/user) . = ..() addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later @@ -138,7 +126,7 @@ production_time = world.time + SLAB_PRODUCTION_TIME + production_slowdown var/mob/living/L L = get_atom_on_turf(src, /mob/living) - if(istype(L) && is_servant_of_ratvar(L) && (nonhuman_usable || ishuman(L))) + if(istype(L) && can_recite_scripture(L)) var/component_to_generate = target_component_id if(!component_to_generate) component_to_generate = get_weighted_component_id(src) //more likely to generate components that we have less of @@ -268,7 +256,7 @@ if(busy) to_chat(user, "[src] refuses to work, displaying the message: \"[busy]!\"") return 0 - if(!nonhuman_usable && !ishuman(user)) + if(!can_recite_scripture(user)) to_chat(user, "[src] hums fitfully in your hands, but doesn't seem to do anything...") return 0 access_display(user) @@ -288,7 +276,7 @@ ui.open() /obj/item/clockwork/slab/proc/recite_scripture(datum/clockwork_scripture/scripture, mob/living/user) - if(!scripture || !user || !user.canUseTopic(src) || (!nonhuman_usable && !ishuman(user))) + if(!scripture || !user || !user.canUseTopic(src) || !can_recite_scripture(user)) return FALSE if(user.get_active_held_item() != src) to_chat(user, "You need to hold the slab in your active hand to recite scripture!") diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index e8f1e8dbbc..9050d4569c 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -120,7 +120,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or if(multiple_invokers_used && !multiple_invokers_optional && !GLOB.ratvar_awakens && !slab.no_cost) var/nearby_servants = 0 for(var/mob/living/L in range(1, get_turf(invoker))) - if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + if(can_recite_scripture(L)) nearby_servants++ if(nearby_servants < invokers_required) to_chat(invoker, "There aren't enough non-mute servants nearby ([nearby_servants]/[invokers_required])!") @@ -170,7 +170,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or if(!channel_time && invocations.len) if(multiple_invokers_used) for(var/mob/living/L in range(1, invoker)) - if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + if(can_recite_scripture(L)) for(var/invocation in invocations) clockwork_say(L, text2ratvar(invocation), whispered) else @@ -185,7 +185,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or return FALSE if(multiple_invokers_used) for(var/mob/living/L in range(1, get_turf(invoker))) - if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + if(can_recite_scripture(L)) clockwork_say(L, text2ratvar(invocation), whispered) else clockwork_say(invoker, text2ratvar(invocation), whispered) diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm index 21da8fab00..c3e40692c2 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -53,7 +53,7 @@ /datum/clockwork_scripture/fellowship_armory/run_scripture() for(var/mob/living/L in orange(1, invoker)) - if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + if(can_recite_scripture(L)) channel_time = max(channel_time - 10, 0) return ..() diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index d73a7ab058..d90c42fe4a 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -151,7 +151,7 @@ new /obj/item/weapon/weldingtool/experimental/brass(src) /obj/item/weapon/storage/toolbox/brass/prefilled/ratvar - var/slab_type = /obj/item/clockwork/slab/scarab + var/slab_type = /obj/item/clockwork/slab /obj/item/weapon/storage/toolbox/brass/prefilled/ratvar/PopulateContents() ..() From 97027d1631c88d13cb7d285109906aa5f8cda5a5 Mon Sep 17 00:00:00 2001 From: cebutris Date: Mon, 5 Jun 2017 03:37:25 -0400 Subject: [PATCH 030/215] it actually works now --- code/modules/mob/living/emote.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index eb0c7094c3..a894bad825 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -87,7 +87,6 @@ message_larva = "lets out a sickly hiss of air and falls limply to the floor..." message_monkey = "lets out a faint chimper as it collapses and stops moving..." message_simple = "stops moving..." - playsound(user.loc, 'sound/voice/oof.ogg', 80, 1, 1) //Defenitley not copypasta stat_allowed = UNCONSCIOUS /datum/emote/living/deathgasp/run_emote(mob/user, params) @@ -96,6 +95,7 @@ message_simple = S.deathmessage . = ..() message_simple = initial(message_simple) + playsound(user.loc, 'sound/voice/oof.ogg', 80, 1, 1)//Defenitley not copypasta if(. && isalienadult(user)) playsound(user.loc, 'sound/voice/hiss6.ogg', 80, 1, 1) From 0c6a4a538a8c7e79d40b24b4270fce993c173d48 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 5 Jun 2017 16:28:19 -0500 Subject: [PATCH 031/215] Add status string for server tools --- code/__DEFINES/server_tools.dm | 1 + code/modules/server_tools/server_tools.dm | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/server_tools.dm b/code/__DEFINES/server_tools.dm index f8d1c316d8..744559f6c7 100644 --- a/code/__DEFINES/server_tools.dm +++ b/code/__DEFINES/server_tools.dm @@ -11,6 +11,7 @@ #define SERVICE_CMD_HARD_REBOOT "hard_reboot" #define SERVICE_CMD_GRACEFUL_SHUTDOWN "graceful_shutdown" #define SERVICE_CMD_WORLD_ANNOUNCE "world_announce" +#define SERVICE_CMD_IRC_CHECK "irc_check" #define SERVICE_CMD_IRC_STATUS "irc_status" #define SERVICE_CMD_ADMIN_MSG "adminmsg" #define SERVICE_CMD_NAME_CHECK "namecheck" diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm index 0594ee810f..d4a5d629ba 100644 --- a/code/modules/server_tools/server_tools.dm +++ b/code/modules/server_tools/server_tools.dm @@ -64,7 +64,12 @@ GLOBAL_PROTECT(reboot_mode) var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." return status - + if(SERVICE_CMD_IRC_CHECK) + var/rtod = REALTIMEOFDAY + if(rtod - last_irc_status < IRC_STATUS_THROTTLE) + return + last_irc_status = rtod + return "[GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config.server ? config.server : "byond://[address]:[port]"]" if(SERVICE_CMD_ADMIN_MSG) return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER]) From 564426fe3ee26f846da8065a0460b2807a66cebf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 5 Jun 2017 16:39:37 -0500 Subject: [PATCH 032/215] Makes cable great again --- code/modules/power/cable.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 408529e297..34bf7b7f2f 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -509,6 +509,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai slot_flags = SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined", "flogged") singular_name = "cable piece" + full_w_class = WEIGHT_CLASS_SMALL /obj/item/stack/cable_coil/cyborg is_cyborg = 1 From be3879993371920627061bf91b830b1c72e59d8f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 22:39:51 -0500 Subject: [PATCH 033/215] cleanup --- .../modules/projectiles/guns/ballistic/automatic.dm | 5 +++++ .../projectiles/guns/ballistic/automatic.dm.rej | 13 ------------- code/modules/projectiles/projectile/bullets.dm.rej | 10 ---------- 3 files changed, 5 insertions(+), 23 deletions(-) delete mode 100644 code/modules/projectiles/guns/ballistic/automatic.dm.rej delete mode 100644 code/modules/projectiles/projectile/bullets.dm.rej diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 70d399b107..dd789798c6 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -379,6 +379,11 @@ pin = /obj/item/device/firing_pin/implant/pindicate origin_tech = "combat=7;syndicate=6" +/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/gang + name = "black market sniper rifle" + desc = "A long ranged weapon that does significant damage. It is well worn from years of service." + mag_type = /obj/item/ammo_box/magazine/sniper_rounds/gang + // Old Semi-Auto Rifle // /obj/item/weapon/gun/ballistic/automatic/surplus diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm.rej b/code/modules/projectiles/guns/ballistic/automatic.dm.rej deleted file mode 100644 index 9f4d4f92bd..0000000000 --- a/code/modules/projectiles/guns/ballistic/automatic.dm.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm (rejected hunks) -@@ -375,7 +375,10 @@ - pin = /obj/item/device/firing_pin/implant/pindicate - origin_tech = "combat=7;syndicate=6" - -- -+/obj/item/weapon/gun/ballistic/automatic/sniper_rifle/gang -+ name = "black market sniper rifle" -+ desc = "A long ranged weapon that does significant damage. It is well worn from years of service." -+ mag_type = /obj/item/ammo_box/magazine/sniper_rounds/gang - - // Old Semi-Auto Rifle // - diff --git a/code/modules/projectiles/projectile/bullets.dm.rej b/code/modules/projectiles/projectile/bullets.dm.rej deleted file mode 100644 index 8666f242ca..0000000000 --- a/code/modules/projectiles/projectile/bullets.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm (rejected hunks) -@@ -244,7 +244,7 @@ - name = "\improper DNA injector" - icon_state = "syringeproj" - var/obj/item/weapon/dnainjector/injector -- -+ - /obj/item/projectile/bullet/dnainjector/on_hit(atom/target, blocked = 0) - if(iscarbon(target)) - var/mob/living/carbon/M = target From 891060c7f229e5e5ab9dea37ee4a3842a75474aa Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 22:43:49 -0500 Subject: [PATCH 034/215] cleanup --- code/modules/awaymissions/corpse.dm | 3 ++- code/modules/awaymissions/corpse.dm.rej | 15 --------------- 2 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 code/modules/awaymissions/corpse.dm.rej diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 9e3695d83e..780d872847 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -117,12 +117,13 @@ var/id = -1 /obj/effect/mob_spawn/human/Initialize() - . = ..() if(ispath(outfit)) outfit = new outfit() if(!outfit) outfit = new /datum/outfit + return ..() + /obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H) if(mob_species) diff --git a/code/modules/awaymissions/corpse.dm.rej b/code/modules/awaymissions/corpse.dm.rej deleted file mode 100644 index 920234d7c2..0000000000 --- a/code/modules/awaymissions/corpse.dm.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm (rejected hunks) -@@ -117,12 +117,11 @@ - var/id = -1 - - /obj/effect/mob_spawn/human/Initialize() -- . = ..() - if(ispath(outfit)) - outfit = new outfit() - if(!outfit) - outfit = new /datum/outfit -- -+ return ..() - - /obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H) - if(mob_species) From a8fe8fd1aa0aacf7903f7f9d11d3a2a1953cf42e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 22:49:04 -0500 Subject: [PATCH 035/215] cleanup --- code/datums/outfit.dm | 2 ++ code/datums/outfit.dm.rej | 10 ---------- 2 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 code/datums/outfit.dm.rej diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index d0ee284839..4c39d11691 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -23,6 +23,8 @@ var/list/backpack_contents = null // In the list(path=count,otherpath=count) format var/list/implants = null + var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters + /datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) //to be overriden for customization depending on client prefs,species etc return diff --git a/code/datums/outfit.dm.rej b/code/datums/outfit.dm.rej deleted file mode 100644 index 4f78bcbc69..0000000000 --- a/code/datums/outfit.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/datums/outfit.dm b/code/datums/outfit.dm (rejected hunks) -@@ -23,6 +23,8 @@ - var/list/backpack_contents = null // In the list(path=count,otherpath=count) format - var/list/implants = null - -+ var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters -+ - /datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - //to be overriden for customization depending on client prefs,species etc - return From 3d750adbd79b1a08943c10446abf4335b821fd54 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 22:50:31 -0500 Subject: [PATCH 036/215] master cleanup --- _maps/map_files/TgStation/tgstation.2.1.3.dmm.rej | 12 ------------ code/game/atoms.dm.rej | 9 --------- .../recipes/tablecraft/recipes_misc.dm.rej | 7 ------- tgui/assets/tgui.js.rej | 13 ------------- 4 files changed, 41 deletions(-) delete mode 100644 _maps/map_files/TgStation/tgstation.2.1.3.dmm.rej delete mode 100644 code/game/atoms.dm.rej delete mode 100644 code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm.rej delete mode 100644 tgui/assets/tgui.js.rej diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej b/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej deleted file mode 100644 index 95d02d9acb..0000000000 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm (rejected hunks) -@@ -20207,9 +20151,7 @@ - /area/shuttle/syndicate) - "aTq" = ( - /turf/closed/wall, --/area/security/vacantoffice{ -- name = "Vacant Office A" -- }) -+/area/security/vacantoffice/a) - "aTr" = ( - /obj/machinery/door/firedoor, - /obj/machinery/status_display{ diff --git a/code/game/atoms.dm.rej b/code/game/atoms.dm.rej deleted file mode 100644 index 28b45c99ab..0000000000 --- a/code/game/atoms.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/game/atoms.dm b/code/game/atoms.dm (rejected hunks) -@@ -274,6 +274,7 @@ - return - - /atom/proc/ex_act(severity, target) -+ set waitfor = FALSE - contents_explosion(severity, target) - - /atom/proc/blob_act(obj/structure/blob/B) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm.rej b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm.rej deleted file mode 100644 index d6194148b5..0000000000 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm.rej +++ /dev/null @@ -1,7 +0,0 @@ -diff a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm (rejected hunks) -@@ -324,4 +324,4 @@ - /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1, - ) - result = /obj/item/weapon/reagent_containers/food/snacks/branrequests -- category = CAT_MISCFOOD -+ subcategory = CAT_MISCFOOD diff --git a/tgui/assets/tgui.js.rej b/tgui/assets/tgui.js.rej deleted file mode 100644 index 380adc16e4..0000000000 --- a/tgui/assets/tgui.js.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/tgui/assets/tgui.js b/tgui/assets/tgui.js (rejected hunks) -@@ -11,6 +11,6 @@ p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7 - },f:["ci"]}," ",{p:[29,3,2223],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[29,22,2242]}],action:"quon"},f:["quon"]}," ",{p:[30,3,2326],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[30,22,2345]}],action:"mya"},f:["mya"]}," ",{p:[31,3,2427],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[31,22,2446]}],action:"folth"},f:["folth"]}," ",{p:[32,3,2532],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[32,22,2551]}],action:"wren"},f:["wren"]}," ",{p:[33,3,2635],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[33,22,2654]}],action:"geyr"},f:["geyr"]}," ",{p:[34,3,2738],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[34,22,2757]}],action:"hil"},f:["hil"]}," ",{p:[35,3,2839],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[35,22,2858]}],action:"niet"},f:["niet"]}," ",{p:[36,3,2942],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[36,22,2961]}],action:"twou"},f:["twou"]}," ",{p:[37,3,3045],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[37,22,3064]}],action:"phi"},f:["phi"]}," ",{p:[38,3,3146],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[38,22,3165]}],action:"coa"},f:["coa"]}]}," ",{p:[40,5,3268],t:7,e:"ui-section",a:{label:"suffix"},f:[{p:[41,3,3299],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[41,22,3318]}],action:" the Red"},f:["the Red"]}," ",{p:[42,3,3409],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[42,22,3428]}],action:" the Soulless"},f:["the Soulless"]}," ",{p:[43,3,3529],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[43,22,3548]}],action:" the Master"},f:["the Master"]}," ",{p:[44,3,3645],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[44,22,3664]}],action:", the Lord of all things"},f:["the Lord of all things"]}," ",{p:[45,3,3786],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==4?null:"disabled"'},p:[45,22,3805]}],action:", Jr."},f:["jr"]}]}," ",{p:[47,2,3906],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3938],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3956]}],action:"search"},f:["search"]}," ",{p:[49,2,4043],t:7,e:"ui-section",f:[]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],243:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[2,1,2],t:7,e:"ui-button",a:{icon:"circle",action:"clean_order"},f:["Clear Order"]},{p:[2,70,71],t:7,e:"br"},{p:[2,74,75],t:7,e:"br"}," ",{p:[3,1,81],t:7,e:"i",f:["Your new computer device you always dreamed of is just four steps away..."]},{p:[3,81,161],t:7,e:"hr"}," ",{t:4,f:[" ",{p:[5,1,223],t:7,e:"div",a:{"class":"item"},f:[{p:[6,2,244],t:7,e:"h2",f:["Step 1: Select your device type"]}," ",{p:[7,2,287],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "1"}'},f:["Laptop"]}," ",{p:[8,2,377],t:7,e:"ui-button",a:{icon:"calc",action:"pick_device",params:'{"pick" : "2"}'},f:["LTablet"]}]}],n:50,x:{r:["data.state"],s:"_0==0"},p:[4,1,167]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.state"],s:"_0==1"},f:[{p:[11,1,502],t:7,e:"div",a:{"class":"item"},f:[{p:[12,2,523],t:7,e:"h2",f:["Step 2: Personalise your device"]}," ",{p:[13,2,566],t:7,e:"table",f:[{p:[14,3,577],t:7,e:"tr",f:[{p:[15,4,586],t:7,e:"td",f:[{p:[15,8,590],t:7,e:"b",f:["Current Price:"]}]},{p:[16,4,616],t:7,e:"td",f:[{t:2,r:"data.totalprice",p:[16,8,620]},"C"]}]}," ",{p:[18,3,653],t:7,e:"tr",f:[{p:[19,4,663],t:7,e:"td",f:[{p:[19,8,667],t:7,e:"b",f:["Battery:"]}]},{p:[20,4,687],t:7,e:"td",f:[{p:[20,8,691],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "1"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==1?"selected":null'},p:[20,73,756]}]},f:["Standard"]}]},{p:[21,4,827],t:7,e:"td",f:[{p:[21,8,831],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "2"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==2?"selected":null'},p:[21,73,896]}]},f:["Upgraded"]}]},{p:[22,4,967],t:7,e:"td",f:[{p:[22,8,971],t:7,e:"ui-button",a:{action:"hw_battery",params:'{"battery" : "3"}',state:[{t:2,x:{r:["data.hw_battery"],s:'_0==3?"selected":null'},p:[22,73,1036]}]},f:["Advanced"]}]}]}," ",{p:[24,3,1115],t:7,e:"tr",f:[{p:[25,4,1124],t:7,e:"td",f:[{p:[25,8,1128],t:7,e:"b",f:["Hard Drive:"]}]},{p:[26,4,1151],t:7,e:"td",f:[{p:[26,8,1155],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "1"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==1?"selected":null'},p:[26,67,1214]}]},f:["Standard"]}]},{p:[27,4,1282],t:7,e:"td",f:[{p:[27,8,1286],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "2"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==2?"selected":null'},p:[27,67,1345]}]},f:["Upgraded"]}]},{p:[28,4,1413],t:7,e:"td",f:[{p:[28,8,1417],t:7,e:"ui-button",a:{action:"hw_disk",params:'{"disk" : "3"}',state:[{t:2,x:{r:["data.hw_disk"],s:'_0==3?"selected":null'},p:[28,67,1476]}]},f:["Advanced"]}]}]}," ",{p:[30,3,1552],t:7,e:"tr",f:[{p:[31,4,1561],t:7,e:"td",f:[{p:[31,8,1565],t:7,e:"b",f:["Network Card:"]}]},{p:[32,4,1590],t:7,e:"td",f:[{p:[32,8,1594],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "0"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==0?"selected":null'},p:[32,73,1659]}]},f:["None"]}]},{p:[33,4,1726],t:7,e:"td",f:[{p:[33,8,1730],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "1"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==1?"selected":null'},p:[33,73,1795]}]},f:["Standard"]}]},{p:[34,4,1866],t:7,e:"td",f:[{p:[34,8,1870],t:7,e:"ui-button",a:{action:"hw_netcard",params:'{"netcard" : "2"}',state:[{t:2,x:{r:["data.hw_netcard"],s:'_0==2?"selected":null'},p:[34,73,1935]}]},f:["Advanced"]}]}]}," ",{p:[36,3,2014],t:7,e:"tr",f:[{p:[37,4,2023],t:7,e:"td",f:[{p:[37,8,2027],t:7,e:"b",f:["Nano Printer:"]}]},{p:[38,4,2052],t:7,e:"td",f:[{p:[38,8,2056],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "0"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==0?"selected":null'},p:[38,73,2121]}]},f:["None"]}]},{p:[39,4,2190],t:7,e:"td",f:[{p:[39,8,2194],t:7,e:"ui-button",a:{action:"hw_nanoprint",params:'{"print" : "1"}',state:[{t:2,x:{r:["data.hw_nanoprint"],s:'_0==1?"selected":null'},p:[39,73,2259]}]},f:["Standard"]}]}]}," ",{p:[41,3,2340],t:7,e:"tr",f:[{p:[42,4,2349],t:7,e:"td",f:[{p:[42,8,2353],t:7,e:"b",f:["Card Reader:"]}]},{p:[43,4,2377],t:7,e:"td",f:[{p:[43,8,2381],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "0"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==0?"selected":null'},p:[43,67,2440]}]},f:["None"]}]},{p:[44,4,2504],t:7,e:"td",f:[{p:[44,8,2508],t:7,e:"ui-button",a:{action:"hw_card",params:'{"card" : "1"}',state:[{t:2,x:{r:["data.hw_card"],s:'_0==1?"selected":null'},p:[44,67,2567]}]},f:["Standard"]}]}]}]}," ",{t:4,f:[" ",{p:[49,4,2706],t:7,e:"table",f:[{p:[50,5,2719],t:7,e:"tr",f:[{p:[51,6,2730],t:7,e:"td",f:[{p:[51,10,2734],t:7,e:"b",f:["Processor Unit:"]}]},{p:[52,6,2763],t:7,e:"td",f:[{p:[52,10,2767],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "1"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==1?"selected":null'},p:[52,67,2824]}]},f:["Standard"]}]},{p:[53,6,2893],t:7,e:"td",f:[{p:[53,10,2897],t:7,e:"ui-button",a:{action:"hw_cpu",params:'{"cpu" : "2"}',state:[{t:2,x:{r:["data.hw_cpu"],s:'_0==2?"selected":null'},p:[53,67,2954]}]},f:["Advanced"]}]}]}," ",{p:[55,5,3033],t:7,e:"tr",f:[{p:[56,6,3044],t:7,e:"td",f:[{p:[56,10,3048],t:7,e:"b",f:["Tesla Relay:"]}]},{p:[57,6,3074],t:7,e:"td",f:[{p:[57,10,3078],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "0"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==0?"selected":null'},p:[57,71,3139]}]},f:["None"]}]},{p:[58,6,3206],t:7,e:"td",f:[{p:[58,10,3210],t:7,e:"ui-button",a:{action:"hw_tesla",params:'{"tesla" : "1"}',state:[{t:2,x:{r:["data.hw_tesla"],s:'_0==1?"selected":null'},p:[58,71,3271]}]},f:["Standard"]}]}]}]}],n:50,x:{r:["data.devtype"],s:"_0!=2"},p:[48,3,2659]}," ",{p:[62,3,3374],t:7,e:"table",f:[{p:[63,4,3386],t:7,e:"tr",f:[{p:[64,5,3396],t:7,e:"td",f:[{p:[64,9,3400],t:7,e:"b",f:["Confirm Order:"]}]},{p:[65,5,3427],t:7,e:"td",f:[{p:[65,9,3431],t:7,e:"ui-button",a:{action:"confirm_order"},f:["CONFIRM"]}]}]}]}," ",{p:[69,2,3512],t:7,e:"hr"}," ",{p:[70,2,3519],t:7,e:"b",f:["Battery"]}," allows your device to operate without external utility power source. Advanced batteries increase battery life.",{p:[70,127,3644],t:7,e:"br"}," ",{p:[71,2,3651],t:7,e:"b",f:["Hard Drive"]}," stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.",{p:[71,130,3779],t:7,e:"br"}," ",{p:[72,2,3786],t:7,e:"b",f:["Network Card"]}," allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.",{p:[72,233,4017],t:7,e:"br"}," ",{p:[73,2,4024],t:7,e:"b",f:["Processor Unit"]}," is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.",{p:[73,208,4230],t:7,e:"br"}," ",{p:[74,2,4237],t:7,e:"b",f:["Tesla Relay"]}," is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.",{p:[74,246,4481],t:7,e:"br"}," ",{p:[75,2,4488],t:7,e:"b",f:["Nano Printer"]}," is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.",{p:[75,241,4727],t:7,e:"br"}," ",{p:[76,2,4734],t:7,e:"b",f:["Card Reader"]}," adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards."]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&(_0==2)"},f:[" ",{p:[79,2,4981],t:7,e:"h2",f:["Step 3: Payment"]}," ",{p:[80,2,5008],t:7,e:"b",f:["Your device is now ready for fabrication.."]},{p:[80,51,5057],t:7,e:"br"}," ",{p:[81,2,5064],t:7,e:"i",f:["Please ensure the required amount of credits are in the machine, then press purchase."]},{p:[81,94,5156],t:7,e:"br"}," ",{p:[82,2,5163],t:7,e:"i",f:["Current credits: ",{p:[82,22,5183],t:7,e:"b",f:[{t:2,r:"data.credits",p:[82,25,5186]},"C"]}]},{p:[82,50,5211],t:7,e:"br"}," ",{p:[83,2,5218],t:7,e:"i",f:["Total price: ",{p:[83,18,5234],t:7,e:"b",f:[{t:2,r:"data.totalprice",p:[83,21,5237]},"C"]}]},{p:[83,49,5265],t:7,e:"br"},{p:[83,53,5269],t:7,e:"br"}," ",{p:[84,2,5276],t:7,e:"ui-button",a:{action:"purchase",state:[{t:2,x:{r:["data.credits","data.totalprice"],s:'_0>=_1?null:"disabled"'},p:[84,38,5312]}]},f:["PURCHASE"]}]},{t:4,n:50,x:{r:["data.state"],s:"(!(_0==1))&&((!(_0==2))&&(_0==3))"},f:[" ",{p:[87,2,5423],t:7,e:"h2",f:["Step 4: Thank you for your purchase"]},{p:[87,46,5467],t:7,e:"br"}," ",{p:[88,2,5474],t:7,e:"b",f:["Should you experience any issues with your new device, contact your local network admin for assistance."]}]}],x:{r:["data.state"],s:"_0==0"}}]},e.exports=a.extend(r.exports)},{205:205}],244:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,1,22],t:7,e:"ui-display",f:[{p:[3,2,37],t:7,e:"ui-section",a:{label:"Cap"},f:[{p:[4,3,65],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.is_capped"],s:'_0?"power-off":"close"'},p:[4,20,82]}],style:[{t:2,x:{r:["data.is_capped"],s:'_0?null:"selected"'},p:[4,71,133]}],action:"toggle_cap"},f:[{t:2,x:{r:["data.is_capped"],s:'_0?"On":"Off"'},p:[6,4,202]}]}]}]}],n:50,r:"data.has_cap",p:[1,1,0]},{p:[10,1,288],t:7,e:"ui-display",f:[{t:4,f:[{p:[14,2,419],t:7,e:"ui-section",f:[{p:[15,3,435],t:7,e:"ui-button",a:{action:"select_colour"},f:["Select New Colour"]}]}],n:50,r:"data.can_change_colour",p:[13,1,386]}]}," ",{p:[19,1,540],t:7,e:"ui-display",a:{title:"Stencil"},f:[{t:4,f:[{p:[21,2,599],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[21,21,618]}]},f:[{t:4,f:[{p:[23,7,655],t:7,e:"ui-button",a:{action:"select_stencil",params:['{"item":"',{t:2,r:"item",p:[23,59,707]},'"}'],style:[{t:2,x:{r:["item","data.selected_stencil"],s:'_0==_1?"selected":null'},p:[24,12,731]}]},f:[{t:2,r:"item",p:[25,4,791]}]}],n:52,r:"items",p:[22,3,632]}]}],n:52,r:"data.drawables",p:[20,3,572]}]}," ",{p:[31,1,874],t:7,e:"ui-display",a:{title:"Text Mode"},f:[{p:[32,2,907],t:7,e:"ui-section",a:{label:"Current Buffer"},f:[{t:2,r:"text_buffer",p:[32,37,942]}]}," ",{p:[34,2,976],t:7,e:"ui-section",f:[{p:[34,14,988],t:7,e:"ui-button",a:{action:"enter_text"},f:["New Text"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],245:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{temperatureStatus:function(t){return 225>t?"good":273.15>t?"average":"bad"}},computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[22,1,466],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[23,3,499],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[24,3,532],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[24,9,538]}]}]}," ",{t:4,f:[{p:[27,5,655],t:7,e:"ui-section",a:{label:"State"},f:[{p:[28,7,689],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[28,20,702]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[28,43,725]}]}]}," ",{p:[30,4,846],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[31,6,885],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.occupant.bodyTemperature"],s:"_0(_1)"},p:[31,19,898]}]},f:[{t:2,x:{r:["adata.occupant.bodyTemperature"],s:"Math.round(_0)"},p:[31,74,953]}," K"]}]}," ",{p:[33,5,1032],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[34,7,1067],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[34,20,1080]}],max:[{t:2,r:"data.occupant.maxHealth",p:[34,54,1114]}],value:[{t:2,r:"data.occupant.health",p:[34,90,1150]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[35,16,1192]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[35,68,1244]}]}]}," ",{t:4,f:[{p:[38,7,1481],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[38,26,1500]}]},f:[{p:[39,9,1521],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[39,30,1542]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[39,66,1578]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[39,103,1615]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[37,5,1315]}],n:50,r:"data.hasOccupant",p:[26,3,625]}]}," ",{p:[44,1,1724],t:7,e:"ui-display",a:{title:"Cell"},f:[{p:[45,3,1753],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[46,5,1785],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[46,22,1802]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[47,14,1862]}],state:[{t:2,x:{r:["data.isOpen"],s:'_0?"disabled":null'},p:[48,14,1918]}],action:"power"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[49,22,1977]}]}]}," ",{p:[51,3,2045],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[52,3,2081],t:7,e:"span",a:{"class":[{t:2,x:{r:["temperatureStatus","adata.cellTemperature"],s:"_0(_1)"},p:[52,16,2094]}]},f:[{t:2,x:{r:["adata.cellTemperature"],s:"Math.round(_0)"},p:[52,62,2140]}," K"]}]}," ",{p:[54,2,2205],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[55,5,2236],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOpen"],s:'_0?"unlock":"lock"'},p:[55,22,2253]}],action:"door"},f:[{t:2,x:{r:["data.isOpen"],s:'_0?"Open":"Closed"'},p:[55,73,2304]}]}," ",{p:[56,5,2357],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoEject"],s:'_0?"sign-out":"sign-in"'},p:[56,22,2374]}],action:"autoeject"},f:[{t:2,x:{r:["data.autoEject"],s:'_0?"Auto":"Manual"'},p:[56,86,2438]}]}]}]}," ",{p:{button:[{p:[61,5,2584],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[61,36,2615]}],action:"ejectbeaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[63,3,2718],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{t:4,f:[{p:[66,9,2828],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[66,52,2871]}," units of ",{t:2,r:"name",p:[66,87,2906]}]},{p:[66,102,2921],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[65,7,2788]},{t:4,n:51,f:[{p:[68,9,2952],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[64,5,2753]},{t:4,n:51,f:[{p:[71,7,3028],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],246:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"ui-section",a:{label:"State"},f:[{t:4,f:[{p:[4,4,76],t:7,e:"span",a:{"class":"good"},f:["Ready"]}],n:50,r:"data.full_pressure",p:[3,3,45]},{t:4,n:51,f:[{t:4,f:[{p:[7,5,153],t:7,e:"span",a:{"class":"bad"},f:["Power Disabled"]}],n:50,r:"data.panel_open",p:[6,4,124]},{t:4,n:51,f:[{t:4,f:[{p:[10,6,248],t:7,e:"span",a:{"class":"average"},f:["Pressurizing"]}],n:50,r:"data.pressure_charging",p:[9,5,211]},{t:4,n:51,f:[{p:[12,6,310],t:7,e:"span",a:{"class":"bad"},f:["Off"]}],r:"data.pressure_charging"}],r:"data.panel_open"}],r:"data.full_pressure"}]}," ",{p:[17,2,393],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[18,3,426],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.per",p:[18,36,459]}],state:"good"},f:[{t:2,r:"data.per",p:[18,63,486]},"%"]}]}," ",{p:[20,5,530],t:7,e:"ui-section",a:{label:"Handle"},f:[{p:[21,9,567],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.flush"],s:'_0?"toggle-on":"toggle-off"'},p:[22,10,589]}],state:[{t:2,x:{r:["data.isai","data.panel_open"],s:'_0||_1?"disabled":null'},p:[23,11,647]}],action:[{t:2,x:{r:["data.flush"],s:'_0?"handle-0":"handle-1"'},p:[24,12,714]}]},f:[{t:2,x:{r:["data.flush"],s:'_0?"Disengage":"Engage"'},p:[25,5,763]}]}]}," ",{p:[27,2,837],t:7,e:"ui-section",a:{label:"Eject"},f:[{p:[28,3,867],t:7,e:"ui-button",a:{icon:"sign-out",state:[{t:2,x:{r:["data.isai"],s:'_0?"disabled":null'},p:[28,37,901]}],action:"eject"},f:["Eject Contents"]},{p:[28,114,978],t:7,e:"br"}]}," ",{p:[30,2,1002],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,3,1032],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["data.panel_open"],s:'_0?"disabled":null'},p:[31,38,1067]}],action:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"pump-0":"pump-1"'},p:[31,87,1116]}],style:[{t:2,x:{r:["data.pressure_charging"],s:'_0?"selected":null'},p:[31,145,1174]}]}},{p:[31,206,1235],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],247:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"DNA Vault Database"},f:[{p:[2,3,43],t:7,e:"ui-section",a:{label:"Human DNA"},f:[{p:[3,7,81],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.dna_max",p:[3,28,102]}],value:[{t:2,r:"data.dna",p:[3,53,127]}]},f:[{t:2,r:"data.dna",p:[3,67,141]},"/",{t:2,r:"data.dna_max",p:[3,80,154]}," Samples"]}]}," ",{p:[5,3,208],t:7,e:"ui-section",a:{label:"Plant Data"},f:[{p:[6,5,245],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.plants_max",p:[6,26,266]}],value:[{t:2,r:"data.plants",p:[6,54,294]}]},f:[{t:2,r:"data.plants",p:[6,71,311]},"/",{t:2,r:"data.plants_max",p:[6,87,327]}," Samples"]}]}," ",{p:[8,3,384],t:7,e:"ui-section",a:{label:"Animal Data"},f:[{p:[9,5,422],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.animals_max",p:[9,26,443]}],value:[{t:2,r:"data.animals",p:[9,55,472]}]},f:[{t:2,r:"data.animals",p:[9,73,490]},"/",{t:2,r:"data.animals_max",p:[9,90,507]}," Samples"]}]}]}," ",{t:4,f:[{p:[13,1,616],t:7,e:"ui-display",a:{title:"Personal Gene Therapy"},f:[{p:[14,3,663],t:7,e:"ui-section",f:[{p:[15,2,678],t:7,e:"span",f:["Applicable gene therapy treatments:"]}]}," ",{p:[17,3,747],t:7,e:"ui-section",f:[{p:[18,2,762],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceA",p:[18,47,807]},'"}']},f:[{t:2,r:"data.choiceA",p:[18,67,827]}]}," ",{p:[19,2,858],t:7,e:"ui-button",a:{action:"gene",params:['{"choice": "',{t:2,r:"data.choiceB",p:[19,47,903]},'"}']},f:[{t:2,r:"data.choiceB",p:[19,67,923]}]}]}]}],n:50,x:{r:["data.completed","data.used"],s:"_0&&!_1"},p:[12,1,578]}]},e.exports=a.extend(r.exports)},{205:205}],248:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,24],t:7,e:"ui-display",a:{title:[{t:2,r:"data.question",p:[2,21,42]}]},f:[{p:[3,5,66],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,9,118],t:7,e:"ui-button",a:{action:"vote",params:['{"answer": "',{t:2,r:"answer",p:[6,45,174]},'"}'],style:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[7,18,206]}]},f:[{t:2,r:"answer",p:[7,53,241]}," (",{t:2,r:"amount",p:[7,65,253]},")"]}],n:52,r:"data.answers",p:[4,7,86]}]}]}],n:50,r:"data.shaking",p:[1,1,0]},{t:4,n:51,f:[{p:[13,3,353],t:7,e:"ui-notice",f:["The eightball is not currently being shaken."]}],r:"data.shaking"}]},e.exports=a.extend(r.exports)},{205:205}],249:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,5,17],t:7,e:"span",f:["Time Until Launch: ",{t:2,r:"data.timer_str",p:[2,30,42]}]}]}," ",{p:[4,1,83],t:7,e:"ui-notice",f:[{p:[5,3,98],t:7,e:"span",f:["Engines: ",{t:2,x:{r:["data.engines_started"],s:'_0?"Online":"Idle"'},p:[5,18,113]}]}]}," ",{p:[7,1,180],t:7,e:"ui-display",a:{title:"Early Launch"},f:[{p:[8,2,216],t:7,e:"span",f:["Authorizations Remaining: ",{t:2,x:{r:["data.emagged","data.authorizations_remaining"],s:'_0?"ERROR":_1'},p:[9,2,250]}]}," ",{p:[10,2,318],t:7,e:"ui-button",a:{icon:"exclamation-triangle",action:"authorize",style:"danger",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[12,10,404]}]},f:["AUTHORIZE"]}," ",{p:[15,2,473],t:7,e:"ui-button",a:{icon:"minus",action:"repeal",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[16,10,523]}]},f:["Repeal"]}," ",{p:[19,2,589],t:7,e:"ui-button",a:{icon:"close",action:"abort",state:[{t:2,x:{r:["data.enabled"],s:'_0?null:"disabled"'},p:[20,10,638]}]},f:["Repeal All"]}]}," ",{p:[24,1,722],t:7,e:"ui-display",a:{title:"Authorizations"},f:[{t:4,f:[{p:[26,3,793],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{t:2,r:"name",p:[26,34,824]}," (",{t:2,r:"job",p:[26,44,834]},")"]}],n:52,r:"data.authorizations",p:[25,2,760]},{t:4,n:51,f:[{p:[28,3,870],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:["No authorizations."]}],r:"data.authorizations"}]}]},e.exports=a.extend(r.exports)},{205:205}],250:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,3,16],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.hidden_message",p:[3,5,50]}]}," ",{p:[5,3,94],t:7,e:"ui-section",a:{label:"Created On"},f:[{t:2,r:"data.realdate",p:[6,5,131]}]}," ",{p:[8,3,169],t:7,e:"ui-section",a:{label:"Approval"},f:[{p:[9,5,204],t:7,e:"ui-button",a:{icon:"arrow-up",state:[{t:2,x:{r:["data.is_creator","data.has_liked"],s:'_0?"disabled":_1?"selected":null'},p:[11,14,252]}],action:"like"},f:[{t:2,r:"data.num_likes",p:[12,21,344]}]}," ",{p:[13,5,380],t:7,e:"ui-button",a:{icon:"circle",state:[{t:2,x:{r:["data.is_creator","data.has_liked","data.has_disliked"],s:'_0?"disabled":!_1&&!_2?"selected":null'},p:[15,14,426]}],action:"neutral"}}," ",{p:[17,5,562],t:7,e:"ui-button",a:{icon:"arrow-down",state:[{t:2,x:{r:["data.is_creator","data.has_disliked"],s:'_0?"disabled":_1?"selected":null'},p:[19,14,612]}],action:"dislike"},f:[{t:2,r:"data.num_dislikes",p:[20,24,710]}]}]}]}," ",{t:4,f:[{p:[24,3,805],t:7,e:"ui-display",a:{title:"Admin Panel"},f:[{p:[25,5,843],t:7,e:"ui-section",a:{label:"Creator Ckey"},f:[{t:2,r:"data.creator_key",p:[25,38,876]}]}," ",{p:[26,5,915],t:7,e:"ui-section",a:{label:"Creator Character Name"},f:[{t:2,r:"data.creator_name",p:[26,48,958]}]}," ",{p:[27,5,998],t:7,e:"ui-button",a:{icon:"remove",action:"delete",style:"danger"},f:["Delete"]}]}],n:50,r:"data.admin_mode",p:[23,1,778]}]},e.exports=a.extend(r.exports)},{205:205}],251:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The requested interface (",{t:2,r:"config.interface",p:[2,34,46]},") was not found. Does it exist?"]}]}]},e.exports=a.extend(r.exports)},{205:205}],252:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{seclevelState:function(){switch(this.get("data.seclevel")){case"blue":return"average";case"red":return"bad";case"delta":return"bad bold";default:return"good"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[16,1,323],t:7,e:"ui-display",f:[{p:[17,5,341],t:7,e:"ui-section",a:{label:"Alert Level"},f:[{p:[18,9,383],t:7,e:"span",a:{"class":[{t:2,r:"seclevelState",p:[18,22,396]}]},f:[{t:2,x:{r:["text","data.seclevel"],s:"_0.titleCase(_1)"},p:[18,41,415]}]}]}," ",{p:[20,5,480],t:7,e:"ui-section",a:{label:"Controls"},f:[{p:[21,9,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.alarm"],s:'_0?"close":"bell-o"'},p:[21,26,536]}],action:[{t:2,x:{r:["data.alarm"],s:'_0?"reset":"alarm"'},p:[21,71,581]}]},f:[{t:2,x:{r:["data.alarm"],s:'_0?"Reset":"Activate"'},p:[22,13,631]}]}]}," ",{t:4,f:[{p:[25,7,733],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[26,9,771],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[24,5,705]}]}]},e.exports=a.extend(r.exports)},{205:205}],253:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[2,1,31],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,2,60],t:7,e:"ui-button",a:{icon:"power-off",style:[{t:2,x:{r:["data.power"],s:'_0?"selected":"danger"'},p:[3,37,95]}],action:"power"},f:[{t:2,x:{r:["data.power"],s:'_0?"Enabled":"Disabled"'},p:[3,92,150]}]}]}," ",{p:[5,1,218],t:7,e:"ui-section",a:{label:"Tag"},f:[{p:[6,2,245],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:[{t:2,r:"data.tag",p:[6,43,286]}]}]}," ",{p:[8,1,327],t:7,e:"ui-section",a:{label:"Scanning mode"},f:[{p:[9,2,364],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.updating"],s:'_0?"unlock":"lock"'},p:[9,18,380]}],style:[{t:2,x:{r:["data.updating"],s:'_0?null:"danger"'},p:[9,63,425]}],action:"updating",tooltip:"Toggle between automatic scanning or scan only when a button is pressed.","tooltip-side":"right"},f:[{t:2,x:{r:["data.updating"],s:'_0?"AUTO":"MANUAL"'},p:[9,221,583]}]}]}," ",{p:[11,1,649],t:7,e:"ui-section",a:{label:"Detection range"},f:[{p:[12,2,688],t:7,e:"ui-button",a:{icon:"refresh",style:[{t:2,x:{r:["data.globalmode"],s:'_0?null:"selected"'},p:[12,35,721]}],action:"globalmode",tooltip:"Local sector or whole region scanning.","tooltip-side":"right"},f:[{t:2,x:{r:["data.globalmode"],s:'_0?"MAXIMUM":"LOCAL"'},p:[12,165,851]}]}]}]}," ",{t:4,f:[{p:[16,2,957],t:7,e:"ui-display",a:{title:"Current Location"},f:[{p:[17,3,998],t:7,e:"span",f:[{t:2,r:"data.current",p:[17,9,1004]}]}]}," ",{p:[20,2,1048],t:7,e:"ui-display",a:{title:"Detected Signals"},f:[{t:4,f:[{p:[22,3,1114],t:7,e:"ui-section",a:{label:[{t:2,r:"entrytag",p:[22,21,1132]}]},f:[{p:[23,3,1149],t:7,e:"span",f:[{t:2,r:"area",p:[23,9,1155]}," (",{t:2,r:"coord",p:[23,19,1165]},")"]}," ",{t:4,f:[{p:[25,4,1209],t:7,e:"span",f:["Dist: ",{t:2,r:"dist",p:[25,16,1221]},"m Dir: ",{t:2,r:"degrees",p:[25,31,1236]},"° (",{t:2,r:"direction",p:[25,45,1250]},")"]}],n:50,r:"direction",p:[24,3,1187]}]}],n:52,r:"data.signals",p:[21,2,1088]}]}],n:50,r:"data.power",p:[15,1,936]}]},e.exports=a.extend(r.exports)},{205:205}],254:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Labor Camp Teleporter"},f:[{p:[2,2,45],t:7,e:"ui-section",a:{label:"Teleporter Status"},f:[{p:[3,3,87],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.teleporter"],s:'_0?"good":"bad"'},p:[3,16,100]}]},f:[{t:2,x:{r:["data.teleporter"],s:'_0?"Connected":"Not connected"'},p:[3,54,138]}]}]}," ",{t:4,f:[{p:[6,4,244],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[7,5,279],t:7,e:"span",f:[{t:2,r:"data.teleporter_location",p:[7,11,285]}]}]}," ",{p:[9,4,343],t:7,e:"ui-section",a:{label:"Locked status"},f:[{p:[10,5,383],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"lock":"unlock"'},p:[10,22,400]}],action:"teleporter_lock"},f:[{t:2,x:{r:["data.teleporter_lock"],s:'_0?"Locked":"Unlocked"'},p:[10,93,471]}]}," ",{p:[11,5,537],t:7,e:"ui-button",a:{action:"toggle_open"},f:[{t:2,x:{r:["data.teleporter_state_open"],s:'_0?"Open":"Closed"'},p:[11,37,569]}]}]}],n:50,r:"data.teleporter",p:[5,3,216]},{t:4,n:51,f:[{p:[14,4,666],t:7,e:"span",f:[{p:[14,10,672],t:7,e:"ui-button",a:{action:"scan_teleporter"},f:["Scan Teleporter"]}]}],r:"data.teleporter"}]}," ",{p:[17,1,770],t:7,e:"ui-display",a:{title:"Labor Camp Beacon"},f:[{p:[18,2,811],t:7,e:"ui-section",a:{label:"Beacon Status"},f:[{p:[19,3,849],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.beacon"],s:'_0?"good":"bad"'},p:[19,16,862]}]},f:[{t:2,x:{r:["data.beacon"],s:'_0?"Connected":"Not connected"'},p:[19,50,896]}]}]}," ",{t:4,f:[{p:[22,3,992],t:7,e:"ui-section",a:{label:"Location"},f:[{p:[23,4,1026],t:7,e:"span",f:[{t:2,r:"data.beacon_location",p:[23,10,1032]}]}]}],n:50,r:"data.beacon",p:[21,2,969]},{t:4,n:51,f:[{p:[26,4,1097],t:7,e:"span",f:[{p:[26,10,1103],t:7,e:"ui-button",a:{action:"scan_beacon"},f:["Scan Beacon"]}]}],r:"data.beacon"}]}," ",{p:[29,1,1193],t:7,e:"ui-display",a:{title:"Prisoner details"},f:[{p:[30,2,1233],t:7,e:"ui-section",a:{label:"Prisoner ID"},f:[{p:[31,3,1269],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[31,33,1299]}]}]}," ",{t:4,f:[{p:[34,2,1392],t:7,e:"ui-section",a:{label:"Set ID goal"},f:[{p:[35,4,1429],t:7,e:"ui-button",a:{action:"set_goal"},f:[{t:2,r:"data.goal",p:[35,33,1458]}]}]}],n:50,r:"data.id",p:[33,2,1374]}," ",{p:[38,2,1512],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[39,3,1545],t:7,e:"span",f:[{t:2,x:{r:["data.prisoner.name"],s:'_0?_0:"No Occupant"'},p:[39,9,1551]}]}]}," ",{t:4,f:[{p:[42,3,1661],t:7,e:"ui-section",a:{label:"Criminal Status"},f:[{p:[43,4,1702],t:7,e:"span",f:[{t:2,r:"data.prisoner.crimstat",p:[43,10,1708]}]}]}],n:50,r:"data.prisoner",p:[41,2,1636]}]}," ",{p:[47,1,1785],t:7,e:"ui-display",f:[{p:[48,2,1800],t:7,e:"center",f:[{p:[48,10,1808],t:7,e:"ui-button",a:{action:"teleport",state:[{t:2,x:{r:["data.can_teleport"],s:'_0?null:"disabled"'},p:[48,45,1843]}]},f:["Process Prisoner"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],255:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,2,15],t:7,e:"center",f:[{p:[2,10,23],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[2,40,53]}]}]}]}," ",{p:[4,1,135],t:7,e:"ui-display",a:{title:"Stored Items"},f:[{t:4,f:[{p:[6,3,194],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[6,22,213]}]},f:[{p:[7,4,228],t:7,e:"ui-button",a:{action:"release_items",params:['{"mobref":',{t:2,r:"mob",p:[7,56,280]},"}"],state:[{t:2,x:{r:["data.can_reclaim"],s:'_0?null:"disabled"'},p:[7,72,296]}]},f:["Drop Items"]}]}],n:52,r:"data.mobs",p:[5,2,171]}]}]},e.exports=a.extend(r.exports)},{205:205}],256:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average"; - default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[25,1,680],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[26,2,712],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[27,5,743],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[27,22,760]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[27,71,809]}]}]}," ",{p:[29,3,874],t:7,e:"ui-section",a:{label:"Uses"},f:[{t:2,r:"data.ready_implants",p:[30,5,905]}," ",{t:4,f:[{p:[32,7,969],t:7,e:"span",a:{"class":"fa fa-cog fa-spin"}}],n:50,r:"data.replenishing",p:[31,5,936]}]}," ",{p:[35,3,1036],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[36,7,1073],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.occupied","data.ready_implants","data.ready"],s:'_0&&_1>0&&_2?null:"disabled"'},p:[36,25,1091]}],action:"implant"},f:[{t:2,x:{r:["data.ready","data.special_name"],s:'_0?(_1?_1:"Implant"):"Recharging"'},p:[37,9,1198]}," "]},{p:[38,19,1302],t:7,e:"br"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],257:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[15,3,296],t:7,e:"ui-notice",f:[{p:[16,5,313],t:7,e:"span",f:["Wipe in progress!"]}]}],n:50,r:"data.wiping",p:[14,1,273]},{p:{button:[{t:4,f:[{p:[22,7,479],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.isDead"],s:'_0?"disabled":null'},p:[22,38,510]}],action:"wipe"},f:[{t:2,x:{r:["data.wiping"],s:'_0?"Stop Wiping":"Wipe"'},p:[22,89,561]}," AI"]}],n:50,r:"data.name",p:[21,5,454]}]},t:7,e:"ui-display",a:{title:[{t:2,x:{r:["data.name"],s:'_0||"Empty Card"'},p:[19,19,388]}],button:0},f:[" ",{t:4,f:[{p:[26,5,672],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[27,9,709],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"bad":"good"'},p:[27,22,722]}]},f:[{t:2,x:{r:["data.isDead","data.isBraindead"],s:'_0||_1?"Offline":"Operational"'},p:[27,76,776]}]}]}," ",{p:[29,5,871],t:7,e:"ui-section",a:{label:"Software Integrity"},f:[{p:[30,7,918],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[30,40,951]}],state:[{t:2,r:"healthState",p:[30,64,975]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[30,81,992]},"%"]}]}," ",{p:[32,5,1055],t:7,e:"ui-section",a:{label:"Laws"},f:[{t:4,f:[{p:[34,9,1117],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[34,33,1141]}]},{p:[34,45,1153],t:7,e:"br"}],n:52,r:"data.laws",p:[33,7,1088]}]}," ",{p:[37,5,1200],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[38,7,1237],t:7,e:"ui-button",a:{icon:"signal",style:[{t:2,x:{r:["data.wireless"],s:'_0?"selected":null'},p:[38,39,1269]}],action:"wireless"},f:["Wireless Activity"]}," ",{p:[39,7,1363],t:7,e:"ui-button",a:{icon:"microphone",style:[{t:2,x:{r:["data.radio"],s:'_0?"selected":null'},p:[39,43,1399]}],action:"radio"},f:["Subspace Radio"]}]}],n:50,r:"data.name",p:[25,3,649]}]}]},e.exports=a.extend(r.exports)},{205:205}],258:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,23],t:7,e:"ui-notice",f:[{p:[3,3,38],t:7,e:"span",f:["Waiting for another device to confirm your request..."]}]}],n:50,r:"data.waiting",p:[1,1,0]},{t:4,n:51,f:[{p:[6,2,132],t:7,e:"ui-display",f:[{p:[7,3,148],t:7,e:"ui-section",f:[{t:4,f:[{p:[9,5,197],t:7,e:"ui-button",a:{icon:"check",action:"auth_swipe"},f:["Authorize ",{t:2,r:"data.auth_required",p:[9,59,251]}]}],n:50,r:"data.auth_required",p:[8,4,165]},{t:4,n:51,f:[{p:[11,5,304],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.red_alert"],s:'_0?"disabled":null'},p:[11,38,337]}],action:"red_alert"},f:["Red Alert"]}," ",{p:[12,5,423],t:7,e:"ui-button",a:{icon:"wrench",state:[{t:2,x:{r:["data.emergency_maint"],s:'_0?"disabled":null'},p:[12,37,455]}],action:"emergency_maint"},f:["Emergency Maintenance Access"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},e.exports=a.extend(r.exports)},{205:205}],259:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Ore values"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"ui-section",a:{label:[{t:2,r:"ore",p:[3,22,76]}]},f:[{p:[4,4,90],t:7,e:"span",f:[{t:2,r:"value",p:[4,10,96]}]}]}],n:52,r:"data.ores",p:[2,2,34]}]}," ",{p:[8,1,158],t:7,e:"ui-display",a:{title:"Points"},f:[{p:[9,2,188],t:7,e:"ui-section",a:{label:"ID"},f:[{p:[10,3,215],t:7,e:"ui-button",a:{action:"handle_id"},f:[{t:2,x:{r:["data.id","data.id_name"],s:'_0?_1:"-------------"'},p:[10,33,245]}]}]}," ",{t:4,f:[{p:[13,3,339],t:7,e:"ui-section",a:{label:"Points collected"},f:[{p:[14,4,381],t:7,e:"span",f:[{t:2,r:"data.points",p:[14,10,387]}]}]}," ",{p:[16,3,430],t:7,e:"ui-section",a:{label:"Goal"},f:[{p:[17,4,460],t:7,e:"span",f:[{t:2,r:"data.goal",p:[17,10,466]}]}]}," ",{p:[19,3,507],t:7,e:"ui-section",a:{label:"Unclaimed points"},f:[{p:[20,4,549],t:7,e:"span",f:[{t:2,r:"data.unclaimed_points",p:[20,10,555]}]}," ",{p:[21,4,592],t:7,e:"ui-button",a:{action:"claim_points",state:[{t:2,x:{r:["data.unclaimed_points"],s:'_0?null:"disabled"'},p:[21,43,631]}]},f:["Claim points"]}]}],n:50,r:"data.id",p:[12,2,320]}]}," ",{p:[25,1,745],t:7,e:"ui-display",f:[{p:[26,2,760],t:7,e:"center",f:[{p:[27,3,772],t:7,e:"ui-button",a:{action:"move_shuttle",state:[{t:2,x:{r:["data.can_go_home"],s:'_0?null:"disabled"'},p:[27,42,811]}]},f:["Move shuttle"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],260:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Known Languages"},f:[{t:4,f:[{p:[3,5,70],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[3,23,88]}]},f:[{p:[4,7,105],t:7,e:"span",f:[{t:2,r:"desc",p:[4,13,111]}]}," ",{p:[5,7,134],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[5,19,146]}]}," ",{t:4,f:[{p:[7,9,192],t:7,e:"span",f:["(gained from mob)"]}],n:50,r:"shadow",p:[6,7,168]}," ",{p:[9,7,245],t:7,e:"span",f:[{t:2,x:{r:["can_speak"],s:'_0?"Can Speak":"Cannot Speak"'},p:[9,13,251]}]}," ",{t:4,f:[{p:[11,9,342],t:7,e:"ui-button",a:{action:"select_default",params:['{"language_name":"',{t:2,r:"name",p:[13,37,425]},'"}'],style:[{t:2,x:{r:["is_default","can_speak"],s:'_0?"selected":_1?null:"disabled"'},p:[14,18,455]}]},f:[{t:2,x:{r:["is_default"],s:'_0?"Default Language":"Select as Default"'},p:[15,10,526]}]}],n:50,r:"data.is_living",p:[10,7,310]}," ",{t:4,f:[{t:4,f:[{p:[20,11,685],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[20,72,746]},'"}']},f:["Grant"]}],n:50,r:"shadow",p:[19,9,659]},{t:4,n:51,f:[{p:[22,11,805],t:7,e:"ui-button",a:{action:"remove_language",params:['{"language_name":"',{t:2,r:"name",p:[22,73,867]},'"}']},f:["Remove"]}],r:"shadow"}],n:50,r:"data.admin_mode",p:[18,7,626]}]}],n:52,r:"data.languages",p:[2,3,40]}]}," ",{t:4,f:[{t:4,f:[{p:[30,5,1033],t:7,e:"ui-button",a:{action:"toggle_omnitongue",style:[{t:2,x:{r:["data.omnitongue"],s:'_0?"selected":null'},p:[32,14,1092]}]},f:["Omnitongue ",{t:2,x:{r:["data.omnitongue"],s:'_0?"Enabled":"Disabled"'},p:[33,19,1152]}]}],n:50,r:"data.is_living",p:[29,3,1005]}," ",{p:[36,3,1231],t:7,e:"ui-display",a:{title:"Unknown Languages"},f:[{t:4,f:[{p:[38,7,1315],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[38,25,1333]}]},f:[{p:[39,9,1352],t:7,e:"span",f:[{t:2,r:"desc",p:[39,15,1358]}]}," ",{p:[40,9,1383],t:7,e:"span",f:["Key: ,",{t:2,r:"key",p:[40,21,1395]}]}," ",{p:[41,9,1419],t:7,e:"ui-button",a:{action:"grant_language",params:['{"language_name":"',{t:2,r:"name",p:[43,37,1502]},'"}']},f:["Grant"]}]}],n:52,r:"data.unknown_languages",p:[37,5,1275]}]}],n:50,r:"data.admin_mode",p:[28,1,978]}]},e.exports=a.extend(r.exports)},{205:205}],261:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Controls"},f:[{t:4,f:[{t:4,f:[{p:[4,4,84],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[5,5,118],t:7,e:"span",f:["Launchpad closed."]}]}],n:50,r:"data.pad_closed",p:[3,3,56]},{t:4,n:51,f:[{p:[8,4,183],t:7,e:"ui-section",a:{label:"Launchpad"},f:[{p:[9,4,218],t:7,e:"span",f:[{p:[9,10,224],t:7,e:"b",f:[{t:2,r:"data.pad_name",p:[9,13,227]}]}]},{p:[9,41,255],t:7,e:"br"}," ",{p:[10,4,264],t:7,e:"ui-button",a:{icon:"pencil",action:"rename"},f:["Rename"]}," ",{p:[11,4,328],t:7,e:"ui-button",a:{icon:"remove",style:"danger",action:"remove"},f:["Remove"]}]}," ",{p:[14,4,427],t:7,e:"ui-section",a:{label:"Set Target"},f:[{p:[15,4,463],t:7,e:"table",f:[{p:[16,4,475],t:7,e:"tr",f:[{p:[17,5,485],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[17,38,518],t:7,e:"ui-button",a:{action:"up-left"},f:["↖"]}]}," ",{p:[18,5,570],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[18,57,622],t:7,e:"ui-button",a:{action:"up"},f:["↑"]}]}," ",{p:[19,5,669],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[19,56,720],t:7,e:"ui-button",a:{action:"up-right"},f:["↗"]}]}]}," ",{p:[21,4,782],t:7,e:"tr",f:[{p:[22,5,792],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[22,38,825],t:7,e:"ui-button",a:{action:"left",style:"width:35px!important"},f:["←"]}]}," ",{p:[23,5,903],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[23,57,955],t:7,e:"ui-button",a:{action:"reset"},f:["R"]}]}," ",{p:[24,5,1005],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[24,56,1056],t:7,e:"ui-button",a:{action:"right"},f:["→"]}]}]}," ",{p:[26,4,1115],t:7,e:"tr",f:[{p:[27,5,1125],t:7,e:"td",a:{style:"width:25px!important"},f:[{p:[27,38,1158],t:7,e:"ui-button",a:{action:"down-left"},f:["↙"]}]}," ",{p:[28,5,1212],t:7,e:"td",a:{style:"width:25px!important; text-align:center"},f:[{p:[28,57,1264],t:7,e:"ui-button",a:{action:"down"},f:["↓"]}]}," ",{p:[29,5,1313],t:7,e:"td",a:{style:"width:25px!important; text-align:right"},f:[{p:[29,56,1364],t:7,e:"ui-button",a:{action:"down-right"},f:["↘"]}]}]}]}]}," ",{p:[33,4,1459],t:7,e:"ui-section",a:{label:"Current Target"},f:[{p:[34,5,1500],t:7,e:"span",f:[{t:2,r:"data.abs_y",p:[34,11,1506]}," ",{t:2,r:"data.north_south",p:[34,26,1521]}]},{p:[34,53,1548],t:7,e:"br"}," ",{p:[35,5,1558],t:7,e:"span",f:[{t:2,r:"data.abs_x",p:[35,11,1564]}," ",{t:2,r:"data.east_west",p:[35,26,1579]}]}]}," ",{p:[37,4,1627],t:7,e:"ui-section",a:{label:"Activate"},f:[{p:[38,5,1662],t:7,e:"ui-button",a:{action:"launch",tooltip:"Teleport everything on the pad to the target.","tooltip-side":"down"},f:["Launch"]}," ",{p:[39,5,1789],t:7,e:"ui-button",a:{action:"pull",tooltip:"Teleport everything from the target to the pad.","tooltip-side":"down"},f:["Pull"]}]}],r:"data.pad_closed"}],n:50,r:"data.has_pad",p:[2,2,32]},{t:4,n:51,f:[{p:[45,3,1956],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[46,4,1989],t:7,e:"span",f:["No launchpad found. Link the remote to a launchpad."]}]}],r:"data.has_pad"}]}]},e.exports=a.extend(r.exports)},{205:205}],262:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{mechChargeState:function(t){var e=this.get("data.recharge_port.mech.cell.maxcharge");return t>=e/1.5?"good":t>=e/3?"average":"bad"},mechHealthState:function(t){var e=this.get("data.recharge_port.mech.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[20,1,545],t:7,e:"ui-display",a:{title:"Mech Status"},f:[{t:4,f:[{t:4,f:[{p:[23,4,646],t:7,e:"ui-section",a:{label:"Integrity"},f:[{p:[24,6,683],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,27,704]}],value:[{t:2,r:"adata.recharge_port.mech.health",p:[24,74,751]}],state:[{t:2,x:{r:["mechHealthState","adata.recharge_port.mech.health"],s:"_0(_1)"},p:[24,117,794]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.health"],s:"Math.round(_0)"},p:[24,171,848]},"/",{t:2,r:"adata.recharge_port.mech.maxhealth",p:[24,219,896]}]}]}," ",{t:4,f:[{t:4,f:[{p:[28,5,1061],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[28,31,1087],t:7,e:"span",a:{"class":"bad"},f:["Cell Critical Failure"]}]}],n:50,r:"data.recharge_port.mech.cell.critfail",p:[27,3,1010]},{t:4,n:51,f:[{p:[30,11,1170],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[31,13,1210],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.recharge_port.mech.cell.maxcharge",p:[31,34,1231]}],value:[{t:2,r:"adata.recharge_port.mech.cell.charge",p:[31,86,1283]}],state:[{t:2,x:{r:["mechChargeState","adata.recharge_port.mech.cell.charge"],s:"_0(_1)"},p:[31,134,1331]}]},f:[{t:2,x:{r:["adata.recharge_port.mech.cell.charge"],s:"Math.round(_0)"},p:[31,193,1390]},"/",{t:2,x:{r:["adata.recharge_port.mech.cell.maxcharge"],s:"Math.round(_0)"},p:[31,246,1443]}]}]}],r:"data.recharge_port.mech.cell.critfail"}],n:50,r:"data.recharge_port.mech.cell",p:[26,4,970]},{t:4,n:51,f:[{p:[35,3,1558],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[35,29,1584],t:7,e:"span",a:{"class":"bad"},f:["Cell Missing"]}]}],r:"data.recharge_port.mech.cell"}],n:50,r:"data.recharge_port.mech",p:[22,2,610]},{t:4,n:51,f:[{p:[38,4,1662],t:7,e:"ui-section",f:["Mech Not Found"]}],r:"data.recharge_port.mech"}],n:50,r:"data.recharge_port",p:[21,3,581]},{t:4,n:51,f:[{p:[41,5,1729],t:7,e:"ui-section",f:["Recharging Port Not Found"]}," ",{p:[42,2,1782],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}],r:"data.recharge_port"}]}]},e.exports=a.extend(r.exports)},{205:205}],263:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{t:4,f:[{p:[3,5,45],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[4,7,88],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[4,24,105]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[4,75,156]}]}]}],n:50,r:"data.siliconUser",p:[2,3,15]},{t:4,n:51,f:[{p:[7,5,247],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[7,31,273]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[10,1,358],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[11,3,389],t:7,e:"ui-section",a:{label:"Power"},f:[{t:4,f:[{p:[13,7,470],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[13,24,487]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[13,68,531]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[13,116,579]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[12,5,421]},{t:4,n:51,f:[{p:[15,7,639],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.on"],s:'_0?"good":"bad"'},p:[15,20,652]}],state:[{t:2,x:{r:["data.cell"],s:'_0?null:"disabled"'},p:[15,57,689]}]},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[15,92,724]}]}],x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"}}]}," ",{p:[18,3,791],t:7,e:"ui-section",a:{label:"Cell"},f:[{p:[19,5,822],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.cell"],s:'_0?null:"bad"'},p:[19,18,835]}]},f:[{t:2,x:{r:["data.cell","data.cellPercent"],s:'_0?_1+"%":"No Cell"'},p:[19,48,865]}]}]}," ",{p:[21,3,943],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[22,5,974],t:7,e:"span",a:{"class":[{t:2,r:"data.modeStatus",p:[22,18,987]}]},f:[{t:2,r:"data.mode",p:[22,39,1008]}]}]}," ",{p:[24,3,1049],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[25,5,1080],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.load"],s:'_0?"good":"average"'},p:[25,18,1093]}]},f:[{t:2,x:{r:["data.load"],s:'_0?_0:"None"'},p:[25,54,1129]}]}]}," ",{p:[27,3,1191],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[28,5,1229],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.destination"],s:'_0?"good":"average"'},p:[28,18,1242]}]},f:[{t:2,x:{r:["data.destination"],s:'_0?_0:"None"'},p:[28,60,1284]}]}]}]}," ",{t:4,f:[{p:{button:[{t:4,f:[{p:[35,9,1513],t:7,e:"ui-button",a:{icon:"eject",action:"unload"},f:["Unload"]}],n:50,r:"data.load",p:[34,7,1486]}," ",{t:4,f:[{p:[38,9,1623],t:7,e:"ui-button",a:{icon:"eject",action:"ejectpai"},f:["Eject PAI"]}],n:50,r:"data.haspai",p:[37,7,1594]}," ",{p:[40,7,1709],t:7,e:"ui-button",a:{icon:"pencil",action:"setid"},f:["Set ID"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[42,5,1791],t:7,e:"ui-section",a:{label:"Destination"},f:[{p:[43,7,1831],t:7,e:"ui-button",a:{icon:"pencil",action:"destination"},f:["Set Destination"]}," ",{p:[44,7,1912],t:7,e:"ui-button",a:{icon:"stop",action:"stop"},f:["Stop"]}," ",{p:[45,7,1973],t:7,e:"ui-button",a:{icon:"play",action:"go"},f:["Go"]}]}," ",{p:[47,5,2047],t:7,e:"ui-section",a:{label:"Home"},f:[{p:[48,7,2080],t:7,e:"ui-button",a:{icon:"home",action:"home"},f:["Go Home"]}," ",{p:[49,7,2144],t:7,e:"ui-button",a:{icon:"pencil",action:"sethome"},f:["Set Home"]}]}," ",{p:[51,5,2231],t:7,e:"ui-section",a:{label:"Settings"},f:[{p:[52,7,2268],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoReturn"],s:'_0?"check-square-o":"square-o"'},p:[52,24,2285]}],style:[{t:2,x:{r:["data.autoReturn"],s:'_0?"selected":null'},p:[52,84,2345]}],action:"autoret"},f:["Auto-Return Home"]}," ",{p:[54,7,2449],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.autoPickup"],s:'_0?"check-square-o":"square-o"'},p:[54,24,2466]}],style:[{t:2,x:{r:["data.autoPickup"],s:'_0?"selected":null'},p:[54,84,2526]}],action:"autopick"},f:["Auto-Pickup Crate"]}," ",{p:[56,7,2632],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"check-square-o":"square-o"'},p:[56,24,2649]}],style:[{t:2,x:{r:["data.reportDelivery"],s:'_0?"selected":null'},p:[56,88,2713]}],action:"report"},f:["Report Deliveries"]}]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[31,1,1373]}]},e.exports=a.extend(r.exports)},{205:205}],264:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Relay"},f:[{t:4,f:[{p:[3,3,57],t:7,e:"h2",f:["NETWORK BUFFERS OVERLOADED"]}," ",{p:[4,3,96],t:7,e:"h3",f:["Overload Recovery Mode"]}," ",{p:[5,3,131],t:7,e:"i",f:["This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."]}," ",{p:[6,3,484],t:7,e:"h3",f:["ADMINISTRATIVE OVERRIDE"]}," ",{p:[7,3,520],t:7,e:"b",f:["CAUTION - Data loss may occur"]}," ",{p:[8,3,562],t:7,e:"ui-button",a:{icon:"signal",action:"restart"},f:["Purge buffered traffic"]}],n:50,r:"data.dos_crashed",p:[2,2,29]},{t:4,n:51,f:[{p:[12,3,663],t:7,e:"ui-section",a:{label:"Relay status"},f:[{p:[13,4,701],t:7,e:"ui-button",a:{icon:"power-off",action:"toggle"},f:[{t:2,x:{r:["data.enabled"],s:'_0?"ENABLED":"DISABLED"'},p:[14,6,752]}]}]}," ",{p:[18,3,836],t:7,e:"ui-section",a:{label:"Network buffer status"},f:[{t:2,r:"data.dos_overload",p:[19,4,883]}," / ",{t:2,r:"data.dos_capacity",p:[19,28,907]}," GQ"]}],r:"data.dos_crashed"}]}]},e.exports=a.extend(r.exports)},{205:205}],265:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{healthState:function(){var t=this.get("data.health");return t>70?"good":t>50?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,320],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[18,3,363],t:7,e:"ui-notice",f:[{p:[19,5,380],t:7,e:"span",f:["Reconstruction in progress!"]}]}],n:50,r:"data.restoring",p:[17,1,337]},{p:[24,1,451],t:7,e:"ui-display",f:[{p:[26,1,467],t:7,e:"div",a:{"class":"item"},f:[{p:[27,3,489],t:7,e:"div",a:{"class":"itemLabel"},f:["Inserted AI:"]}," ",{p:[30,3,541],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[31,2,569],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",state:[{t:2,x:{r:["data.nocard"],s:'_0?"disabled":null'},p:[31,52,619]}]},f:[{t:2,x:{r:["data.name"],s:'_0?_0:"---"'},p:[31,89,656]}]}]}]}," ",{t:4,f:[{p:[36,2,744],t:7,e:"b",f:["ERROR: ",{t:2,r:"data.error",p:[36,12,754]}]}],n:50,r:"data.error",p:[35,1,723]},{t:4,n:51,f:[{p:[38,2,785],t:7,e:"h2",f:["System Status"]}," ",{p:[39,2,810],t:7,e:"div",a:{"class":"item"},f:[{p:[40,3,832],t:7,e:"div",a:{"class":"itemLabel"},f:["Current AI:"]}," ",{p:[43,3,885],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.name",p:[44,4,915]}]}," ",{p:[46,3,942],t:7,e:"div",a:{"class":"itemLabel"},f:["Status:"]}," ",{p:[49,3,991],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["Nonfunctional"],n:50,r:"data.isDead",p:[50,4,1021]},{t:4,n:51,f:["Functional"],r:"data.isDead"}]}," ",{p:[56,3,1114],t:7,e:"div",a:{"class":"itemLabel"},f:["System Integrity:"]}," ",{p:[59,3,1173],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[60,4,1203],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.health",p:[60,37,1236]}],state:[{t:2,r:"healthState",p:[61,11,1264]}]},f:[{t:2,x:{r:["adata.health"],s:"Math.round(_0)"},p:[61,28,1281]},"%"]}]}," ",{p:[63,3,1336],t:7,e:"div",a:{"class":"itemLabel"},f:["Active Laws:"]}," ",{p:[66,3,1390],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[67,4,1420],t:7,e:"table",f:[{t:4,f:[{p:[69,6,1462],t:7,e:"tr",f:[{p:[69,10,1466],t:7,e:"td",f:[{p:[69,14,1470],t:7,e:"span",a:{"class":"highlight"},f:[{t:2,r:".",p:[69,38,1494]}]}]}]}],n:52,r:"data.ai_laws",p:[68,5,1433]}]}]}," ",{p:[73,2,1547],t:7,e:"ui-section",a:{label:"Operations"},f:[{p:[74,3,1582],t:7,e:"ui-button",a:{icon:"plus",style:[{t:2,x:{r:["data.restoring"],s:'_0?"disabled":null'},p:[74,33,1612]}],action:"PRG_beginReconstruction"},f:["Begin Reconstruction"]}]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],266:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,1,91],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"home",params:'{"target" : "mod"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==1?"disabled":null'},p:[5,80,170]}]},f:["Access Modification"]}],n:50,r:"data.have_id_slot",p:[4,1,64]},{p:[7,1,253],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manage"}',state:[{t:2,x:{r:["data.mmode"],s:'_0==2?"disabled":null'},p:[7,90,342]}]},f:["Job Management"]}," ",{p:[8,1,411],t:7,e:"ui-button",a:{action:"PRG_switchm",icon:"folder-open",params:'{"target" : "manifest"}',state:[{t:2,x:{r:["data.mmode"],s:'!_0?"disabled":null'},p:[8,92,502]}]},f:["Crew Manifest"]}," ",{t:4,f:[{p:[10,1,593],t:7,e:"ui-button",a:{action:"PRG_print",icon:"print",state:[{t:2,x:{r:["data.has_id","data.mmode"],s:'!_1||_0&&_1==1?null:"disabled"'},p:[10,51,643]}]},f:["Print"]}],n:50,r:"data.have_printer",p:[9,1,566]},{t:4,f:[{p:[14,1,766],t:7,e:"div",a:{"class":"item"},f:[{p:[15,3,788],t:7,e:"h2",f:["Crew Manifest"]}," ",{p:[16,3,814],t:7,e:"br"},"Please use security record computer to modify entries.",{p:[16,61,872],t:7,e:"br"},{p:[16,65,876],t:7,e:"br"}]}," ",{t:4,f:[{p:[19,2,916],t:7,e:"div",a:{"class":"item"},f:[{t:2,r:"name",p:[20,2,937]}," - ",{t:2,r:"rank",p:[20,13,948]}]}],n:52,r:"data.manifest",p:[18,1,890]}],n:50,x:{r:["data.mmode"],s:"!_0"},p:[13,1,745]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.mmode"],s:"_0==2"},f:[{p:[25,1,1008],t:7,e:"div",a:{"class":"item"},f:[{p:[26,3,1030],t:7,e:"h2",f:["Job Management"]}]}," ",{p:[28,1,1063],t:7,e:"table",f:[{p:[29,1,1072],t:7,e:"tr",f:[{p:[29,5,1076],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,27,1098],t:7,e:"b",f:["Job"]}]},{p:[29,42,1113],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,64,1135],t:7,e:"b",f:["Slots"]}]},{p:[29,81,1152],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,103,1174],t:7,e:"b",f:["Open job"]}]},{p:[29,123,1194],t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,145,1216],t:7,e:"b",f:["Close job"]}]}]}," ",{t:4,f:[{p:[32,2,1269],t:7,e:"tr",f:[{p:[32,6,1273],t:7,e:"td",f:[{t:2,r:"title",p:[32,10,1277]}]},{p:[32,24,1291],t:7,e:"td",f:[{t:2,r:"current",p:[32,28,1295]},"/",{t:2,r:"total",p:[32,40,1307]}]},{p:[32,54,1321],t:7,e:"td",f:[{p:[32,58,1325],t:7,e:"ui-button",a:{action:"PRG_open_job",params:['{"target" : "',{t:2,r:"title",p:[32,112,1379]},'"}'],state:[{t:2,x:{r:["status_open"],s:'_0?null:"disabled"'},p:[32,132,1399]}]},f:[{t:2,r:"desc_open",p:[32,169,1436]}]},{p:[32,194,1461],t:7,e:"br"}]},{p:[32,203,1470],t:7,e:"td",f:[{p:[32,207,1474],t:7,e:"ui-button",a:{action:"PRG_close_job",params:['{"target" : "',{t:2,r:"title",p:[32,262,1529]},'"}'],state:[{t:2,x:{r:["status_close"],s:'_0?null:"disabled"'},p:[32,282,1549]}]},f:[{t:2,r:"desc_close",p:[32,320,1587]}]}]}]}],n:52,r:"data.slots",p:[30,1,1244]}]}]},{t:4,n:50,x:{r:["data.mmode"],s:"!(_0==2)"},f:[" ",{p:[40,1,1665],t:7,e:"div",a:{"class":"item"},f:[{p:[41,3,1687],t:7,e:"h2",f:["Access Modification"]}]}," ",{t:4,f:[{p:[45,3,1751],t:7,e:"span",a:{"class":"alert"},f:[{p:[45,23,1771],t:7,e:"i",f:["Please insert the ID into the terminal to proceed."]}]},{p:[45,87,1835],t:7,e:"br"}],n:50,x:{r:["data.has_id"],s:"!_0"},p:[44,1,1727]},{p:[48,1,1852],t:7,e:"div",a:{"class":"item"},f:[{p:[49,3,1874],t:7,e:"div",a:{"class":"itemLabel"},f:["Target Identity:"]}," ",{p:[52,3,1930],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[53,2,1958],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "id"}'},f:[{t:2,r:"data.id_name",p:[53,72,2028]}]}]}]}," ",{p:[56,1,2076],t:7,e:"div",a:{"class":"item"},f:[{p:[57,3,2098],t:7,e:"div",a:{"class":"itemLabel"},f:["Auth Identity:"]}," ",{p:[60,3,2152],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[61,2,2180],t:7,e:"ui-button",a:{icon:"eject",action:"PRG_eject",params:'{"target" : "auth"}'},f:[{t:2,r:"data.auth_name",p:[61,74,2252]}]}]}]}," ",{p:[64,1,2302],t:7,e:"hr"}," ",{t:4,f:[{t:4,f:[{p:[68,2,2362],t:7,e:"div",a:{"class":"item"},f:[{p:[69,4,2385],t:7,e:"h2",f:["Details"]}]}," ",{t:4,f:[{p:[73,2,2436],t:7,e:"div",a:{"class":"item"},f:[{p:[74,4,2459],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[77,4,2518],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_owner",p:[78,3,2547]}]}]}," ",{p:[81,2,2587],t:7,e:"div",a:{"class":"item"},f:[{p:[82,4,2610],t:7,e:"div",a:{"class":"itemLabel"},f:["Rank:"]}," ",{p:[85,4,2658],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.id_rank",p:[86,3,2687]}]}]}," ",{p:[89,2,2726],t:7,e:"div",a:{"class":"item"},f:[{p:[90,4,2749],t:7,e:"div",a:{"class":"itemLabel"},f:["Demote:"]}," ",{p:[93,4,2799],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[94,3,2828],t:7,e:"ui-button",a:{action:"PRG_terminate",icon:"gear",state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Unassigned"?"disabled":null'},p:[94,56,2881]}]},f:["Demote ",{t:2,r:"data.id_owner",p:[94,117,2942]}]}]}]}],n:50,r:"data.minor",p:[72,2,2415]},{t:4,n:51,f:[{p:[99,2,3007],t:7,e:"div",a:{"class":"item"},f:[{p:[100,4,3030],t:7,e:"div",a:{"class":"itemLabel"},f:["Registered Name:"]}," ",{p:[103,4,3089],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[104,3,3118],t:7,e:"ui-button",a:{action:"PRG_edit",icon:"pencil",params:'{"name" : "1"}'},f:[{t:2,r:"data.id_owner",p:[104,70,3185]}]}]}]}," ",{p:[108,2,3239],t:7,e:"div",a:{"class":"item"},f:[{p:[109,4,3262],t:7,e:"h2",f:["Assignment"]}]}," ",{p:[111,3,3294],t:7,e:"ui-button",a:{action:"PRG_togglea",icon:"gear"},f:[{t:2,x:{r:["data.assignments"],s:'_0?"Hide assignments":"Show assignments"'},p:[111,47,3338]}]}," ",{p:[112,2,3415],t:7,e:"div",a:{"class":"item"},f:[{p:[113,4,3438],t:7,e:"span",a:{id:"allvalue.jobsslot"},f:[]}]}," ",{p:[117,2,3495],t:7,e:"div",a:{"class":"item"},f:[{t:4,f:[{p:[119,4,3547],t:7,e:"div",a:{id:"all-value.jobs"},f:[{p:[120,3,3576],t:7,e:"table",f:[{p:[121,5,3589],t:7,e:"tr",f:[{p:[122,4,3598],t:7,e:"th",f:["Command"]}," ",{p:[123,4,3619],t:7,e:"td",f:[{p:[124,6,3630],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Captain"}',state:[{t:2,x:{r:["data.id_rank"],s:'_0=="Captain"?"selected":null'},p:[124,83,3707]}]},f:["Captain"]}]}]}," ",{p:[127,5,3804],t:7,e:"tr",f:[{p:[128,4,3813],t:7,e:"th",f:["Special"]}," ",{p:[129,4,3834],t:7,e:"td",f:[{p:[130,6,3845],t:7,e:"ui-button",a:{action:"PRG_assign",params:'{"assign_target" : "Custom"}'},f:["Custom"]}]}]}," ",{p:[133,5,3959],t:7,e:"tr",f:[{p:[134,4,3968],t:7,e:"th",a:{style:"color: '#FFA500';"},f:["Engineering"]}," ",{p:[135,4,4019],t:7,e:"td",f:[{t:4,f:[{p:[137,5,4067],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[137,64,4126]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[137,82,4144]}]},f:[{t:2,r:"display_name",p:[137,127,4189]}]}],n:52,r:"data.engineering_jobs",p:[136,6,4030]}]}]}," ",{p:[141,5,4260],t:7,e:"tr",f:[{p:[142,4,4269],t:7,e:"th",a:{style:"color: '#008000';"},f:["Medical"]}," ",{p:[143,4,4316],t:7,e:"td",f:[{t:4,f:[{p:[145,5,4360],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[145,64,4419]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[145,82,4437]}]},f:[{t:2,r:"display_name",p:[145,127,4482]}]}],n:52,r:"data.medical_jobs",p:[144,6,4327]}]}]}," ",{p:[149,5,4553],t:7,e:"tr",f:[{p:[150,4,4562],t:7,e:"th",a:{style:"color: '#800080';"},f:["Science"]}," ",{p:[151,4,4609],t:7,e:"td",f:[{t:4,f:[{p:[153,5,4653],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[153,64,4712]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[153,82,4730]}]},f:[{t:2,r:"display_name",p:[153,127,4775]}]}],n:52,r:"data.science_jobs",p:[152,6,4620]}]}]}," ",{p:[157,5,4846],t:7,e:"tr",f:[{p:[158,4,4855],t:7,e:"th",a:{style:"color: '#DD0000';"},f:["Security"]}," ",{p:[159,4,4903],t:7,e:"td",f:[{t:4,f:[{p:[161,5,4948],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[161,64,5007]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[161,82,5025]}]},f:[{t:2,r:"display_name",p:[161,127,5070]}]}],n:52,r:"data.security_jobs",p:[160,6,4914]}]}]}," ",{p:[165,5,5141],t:7,e:"tr",f:[{p:[166,4,5150],t:7,e:"th",a:{style:"color: '#cc6600';"},f:["Cargo"]}," ",{p:[167,4,5195],t:7,e:"td",f:[{t:4,f:[{p:[169,5,5237],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[169,64,5296]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[169,82,5314]}]},f:[{t:2,r:"display_name",p:[169,127,5359]}]}],n:52,r:"data.cargo_jobs",p:[168,6,5206]}]}]}," ",{p:[173,5,5430],t:7,e:"tr",f:[{p:[174,4,5439],t:7,e:"th",a:{style:"color: '#808080';"},f:["Civilian"]}," ",{p:[175,4,5487],t:7,e:"td",f:[{t:4,f:[{p:[177,5,5532],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[177,64,5591]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[177,82,5609]}]},f:[{t:2,r:"display_name",p:[177,127,5654]}]}],n:52,r:"data.civilian_jobs",p:[176,6,5498]}]}]}," ",{t:4,f:[{p:[182,4,5757],t:7,e:"tr",f:[{p:[183,6,5768],t:7,e:"th",a:{style:"color: '#A52A2A';"},f:["Centcom"]}," ",{p:[184,6,5817],t:7,e:"td",f:[{t:4,f:[{p:[186,7,5862],t:7,e:"ui-button",a:{action:"PRG_assign",params:['{"assign_target" : "',{t:2,r:"job",p:[186,66,5921]},'"}'],state:[{t:2,x:{r:["data.id_rank","job"],s:'_0==_1?"selected":null'},p:[186,84,5939]}]},f:[{t:2,r:"display_name",p:[186,129,5984]}]}],n:52,r:"data.centcom_jobs",p:[185,5,5827]}]}]}],n:50,r:"data.centcom_access",p:[181,5,5725]}]}]}],n:50,r:"data.assignments",p:[118,4,3518]}]}],r:"data.minor"}," ",{t:4,f:[{p:[198,4,6153],t:7,e:"div",a:{"class":"item"},f:[{p:[199,3,6175],t:7,e:"h2",f:["Central Command"]}]}," ",{p:[201,4,6215],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[203,5,6296],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[204,5,6331],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[204,64,6390]},'", "allowed" : "',{t:2,r:"allowed",p:[204,87,6413]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[204,109,6435] - }]},f:[{t:2,r:"desc",p:[204,140,6466]}]}]}],n:52,r:"data.all_centcom_access",p:[202,3,6257]}]}],n:50,r:"data.centcom_access",p:[197,2,6121]},{t:4,n:51,f:[{p:[209,4,6538],t:7,e:"div",a:{"class":"item"},f:[{p:[210,3,6560],t:7,e:"h2",f:[{t:2,r:"data.station_name",p:[210,7,6564]}]}]}," ",{p:[212,4,6606],t:7,e:"div",a:{"class":"item",style:"width: 100%"},f:[{t:4,f:[{p:[214,5,6676],t:7,e:"div",a:{style:"float: left; width: 175px; min-height: 250px"},f:[{p:[215,4,6739],t:7,e:"div",a:{"class":"average"},f:[{p:[215,25,6760],t:7,e:"ui-button",a:{action:"PRG_regsel",state:[{t:2,x:{r:["selected"],s:'_0?"toggle":null'},p:[215,63,6798]}],params:['{"region" : "',{t:2,r:"regid",p:[215,116,6851]},'"}']},f:[{p:[215,129,6864],t:7,e:"b",f:[{t:2,r:"name",p:[215,132,6867]}]}]}]}," ",{p:[216,4,6902],t:7,e:"br"}," ",{t:4,f:[{p:[218,6,6938],t:7,e:"div",a:{"class":"itemContentWide"},f:[{p:[219,5,6973],t:7,e:"ui-button",a:{action:"PRG_access",params:['{"access_target" : "',{t:2,r:"ref",p:[219,64,7032]},'", "allowed" : "',{t:2,r:"allowed",p:[219,87,7055]},'"}'],state:[{t:2,x:{r:["allowed"],s:'_0?"toggle":null'},p:[219,109,7077]}]},f:[{t:2,r:"desc",p:[219,140,7108]}]}]}],n:52,r:"accesses",p:[217,6,6913]}]}],n:52,r:"data.regions",p:[213,3,6648]}]}],r:"data.centcom_access"}],n:50,r:"data.has_id",p:[67,3,2340]}],n:50,r:"data.authenticated",p:[66,1,2310]}]}],x:{r:["data.mmode"],s:"!_0"}}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],267:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargeState:function(t){var e=this.get("data.battery.max");return t>e/2?"good":t>e/4?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[15,1,311],t:7,e:"ntosheader"}," ",{p:[17,1,328],t:7,e:"ui-display",f:[{p:[18,2,343],t:7,e:"i",f:["Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device."]},{p:[18,137,478],t:7,e:"hr"}," ",{p:[19,2,485],t:7,e:"ui-display",a:{title:"Power Supply"},f:[{p:[20,3,522],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"data.power_usage",p:[21,4,559]},"W"]}," ",{t:4,f:[{p:[25,4,630],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Active"]}," ",{p:[28,4,701],t:7,e:"ui-section",a:{label:"Battery Rating"},f:[{t:2,r:"data.battery.max",p:[29,5,742]}]}," ",{p:[31,4,785],t:7,e:"ui-section",a:{label:"Battery Charge"},f:[{p:[32,5,826],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.battery.max",p:[32,26,847]}],value:[{t:2,r:"adata.battery.charge",p:[32,56,877]}],state:[{t:2,x:{r:["chargeState","adata.battery.charge"],s:"_0(_1)"},p:[32,89,910]}]},f:[{t:2,x:{r:["adata.battery.charge"],s:"Math.round(_0)"},p:[32,128,949]},"/",{t:2,r:"adata.battery.max",p:[32,165,986]}]}]}],n:50,r:"data.battery",p:[24,3,605]},{t:4,n:51,f:[{p:[35,4,1051],t:7,e:"ui-section",a:{label:"Battery Status"},f:["Not Available"]}],r:"data.battery"}]}," ",{p:[41,2,1156],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,3,1192],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,4,1231],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,25,1252]}],value:[{t:2,r:"adata.disk_used",p:[43,53,1280]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,87,1314]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,123,1350]},"GQ"]}]}]}," ",{p:[47,2,1419],t:7,e:"ui-display",a:{title:"Computer Components"},f:[{t:4,f:[{p:[49,4,1491],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"name",p:[49,26,1513]}]},f:[{p:[50,5,1529],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"desc",p:[50,59,1583]}]}," ",{p:[52,5,1605],t:7,e:"ui-section",a:{label:"State"},f:[{p:[53,6,1638],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["critical"],s:'_0?"disabled":null'},p:[53,24,1656]}],action:"PC_toggle_component",params:['{"name": "',{t:2,r:"name",p:[53,105,1737]},'"}']},f:[{t:2,x:{r:["enabled"],s:'_0?"Enabled":"Disabled"'},p:[54,7,1757]}]}]}," ",{t:4,f:[{p:[59,6,1868],t:7,e:"ui-section",a:{label:"Power Usage"},f:[{t:2,r:"powerusage",p:[60,7,1908]},"W"]}],n:50,r:"powerusage",p:[58,5,1843]}]}," ",{p:[64,4,1985],t:7,e:"br"}],n:52,r:"data.hardware",p:[48,3,1463]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],268:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,3,103],t:7,e:"h2",f:["An error has occurred and this program can not continue."]}," Additional information: ",{t:2,r:"data.error",p:[8,27,196]},{p:[8,41,210],t:7,e:"br"}," ",{p:[9,3,218],t:7,e:"i",f:["Please try again. If the problem persists contact your system administrator for assistance."]}," ",{p:[10,3,320],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["Restart program"]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,f:[{p:[13,4,422],t:7,e:"h2",f:["Viewing file ",{t:2,r:"data.filename",p:[13,21,439]}]}," ",{p:[14,4,466],t:7,e:"div",a:{"class":"item"},f:[{p:[15,4,489],t:7,e:"ui-button",a:{action:"PRG_closefile"},f:["CLOSE"]}," ",{p:[16,4,545],t:7,e:"ui-button",a:{action:"PRG_edit"},f:["EDIT"]}," ",{p:[17,4,595],t:7,e:"ui-button",a:{action:"PRG_printfile"},f:["PRINT"]}," "]},{p:[18,10,657],t:7,e:"hr"}," ",{t:3,r:"data.filedata",p:[19,4,666]}],n:50,r:"data.filename",p:[12,3,396]},{t:4,n:51,f:[{p:[21,4,702],t:7,e:"h2",f:["Available files (local):"]}," ",{p:[22,4,740],t:7,e:"table",f:[{p:[23,5,753],t:7,e:"tr",f:[{p:[24,6,764],t:7,e:"th",f:["File name"]}," ",{p:[25,6,789],t:7,e:"th",f:["File type"]}," ",{p:[26,6,814],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[27,6,844],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[30,6,907],t:7,e:"tr",f:[{p:[31,7,919],t:7,e:"td",f:[{t:2,r:"name",p:[31,11,923]}]}," ",{p:[32,7,944],t:7,e:"td",f:[".",{t:2,r:"type",p:[32,12,949]}]}," ",{p:[33,7,970],t:7,e:"td",f:[{t:2,r:"size",p:[33,11,974]},"GQ"]}," ",{p:[34,7,997],t:7,e:"td",f:[{p:[35,8,1010],t:7,e:"ui-button",a:{action:"PRG_openfile",params:['{"name": "',{t:2,r:"name",p:[35,59,1061]},'"}']},f:["VIEW"]}," ",{p:[36,8,1098],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[36,26,1116]}],action:"PRG_deletefile",params:['{"name": "',{t:2,r:"name",p:[36,105,1195]},'"}']},f:["DELETE"]}," ",{p:[37,8,1234],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[37,26,1252]}],action:"PRG_rename",params:['{"name": "',{t:2,r:"name",p:[37,101,1327]},'"}']},f:["RENAME"]}," ",{p:[38,8,1366],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[38,26,1384]}],action:"PRG_clone",params:['{"name": "',{t:2,r:"name",p:[38,100,1458]},'"}']},f:["CLONE"]}," ",{t:4,f:[{p:[40,9,1531],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[40,27,1549]}],action:"PRG_copytousb",params:['{"name": "',{t:2,r:"name",p:[40,105,1627]},'"}']},f:["EXPORT"]}],n:50,r:"data.usbconnected",p:[39,8,1496]}]}]}],n:52,r:"data.files",p:[29,5,880]}]}," ",{t:4,f:[{p:[47,4,1761],t:7,e:"h2",f:["Available files (portable device):"]}," ",{p:[48,4,1809],t:7,e:"table",f:[{p:[49,5,1822],t:7,e:"tr",f:[{p:[50,6,1833],t:7,e:"th",f:["File name"]}," ",{p:[51,6,1858],t:7,e:"th",f:["File type"]}," ",{p:[52,6,1883],t:7,e:"th",f:["File size (GQ)"]}," ",{p:[53,6,1913],t:7,e:"th",f:["Operations"]}]}," ",{t:4,f:[{p:[56,6,1979],t:7,e:"tr",f:[{p:[57,7,1991],t:7,e:"td",f:[{t:2,r:"name",p:[57,11,1995]}]}," ",{p:[58,7,2016],t:7,e:"td",f:[".",{t:2,r:"type",p:[58,12,2021]}]}," ",{p:[59,7,2042],t:7,e:"td",f:[{t:2,r:"size",p:[59,11,2046]},"GQ"]}," ",{p:[60,7,2069],t:7,e:"td",f:[{p:[61,8,2082],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[61,26,2100]}],action:"PRG_usbdeletefile",params:['{"name": "',{t:2,r:"name",p:[61,108,2182]},'"}']},f:["DELETE"]}," ",{t:4,f:[{p:[63,9,2256],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["undeletable"],s:'_0?"disabled":null'},p:[63,27,2274]}],action:"PRG_copyfromusb",params:['{"name": "',{t:2,r:"name",p:[63,107,2354]},'"}']},f:["IMPORT"]}],n:50,r:"data.usbconnected",p:[62,8,2221]}]}]}],n:52,r:"data.usbfiles",p:[55,5,1949]}]}],n:50,r:"data.usbconnected",p:[46,4,1731]}," ",{p:[70,4,2470],t:7,e:"ui-button",a:{action:"PRG_newtextfile"},f:["NEW DATA FILE"]}],r:"data.filename"}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],269:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["No program loaded. Please select program from list below."]}," ",{p:[6,2,146],t:7,e:"table",f:[{t:4,f:[{p:[8,4,185],t:7,e:"tr",f:[{p:[8,8,189],t:7,e:"td",f:[{p:[8,12,193],t:7,e:"ui-button",a:{action:"PC_runprogram",params:['{"name": "',{t:2,r:"name",p:[8,64,245]},'"}']},f:[{t:2,r:"desc",p:[9,5,263]}]}]},{p:[11,4,293],t:7,e:"td",f:[{p:[11,8,297],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["running"],s:'_0?null:"disabled"'},p:[11,26,315]}],icon:"close",action:"PC_killprogram",params:['{"name": "',{t:2,r:"name",p:[11,114,403]},'"}']}}]}]}],n:52,r:"data.programs",p:[7,3,157]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],270:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[6,3,105],t:7,e:"h1",f:["ADMINISTRATIVE MODE"]}],n:50,r:"data.adminmode",p:[5,2,79]}," ",{t:4,f:[{p:[10,3,170],t:7,e:"div",a:{"class":"itemLabel"},f:["Current channel:"]}," ",{p:[13,3,229],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.title",p:[14,4,259]}]}," ",{p:[16,3,287],t:7,e:"div",a:{"class":"itemLabel"},f:["Operator access:"]}," ",{p:[19,3,346],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:[{p:[21,5,406],t:7,e:"b",f:["Enabled"]}],n:50,r:"data.is_operator",p:[20,4,376]},{t:4,n:51,f:[{p:[23,5,439],t:7,e:"b",f:["Disabled"]}],r:"data.is_operator"}]}," ",{p:[26,3,480],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[29,3,532],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[30,4,562],t:7,e:"table",f:[{p:[31,5,575],t:7,e:"tr",f:[{p:[31,9,579],t:7,e:"td",f:[{p:[31,13,583],t:7,e:"ui-button",a:{action:"PRG_speak"},f:["Send message"]}]}]},{p:[32,5,643],t:7,e:"tr",f:[{p:[32,9,647],t:7,e:"td",f:[{p:[32,13,651],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[33,5,719],t:7,e:"tr",f:[{p:[33,9,723],t:7,e:"td",f:[{p:[33,13,727],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]},{p:[34,5,807],t:7,e:"tr",f:[{p:[34,9,811],t:7,e:"td",f:[{p:[34,13,815],t:7,e:"ui-button",a:{action:"PRG_leavechannel"},f:["Leave channel"]}]}]},{p:[35,5,883],t:7,e:"tr",f:[{p:[35,9,887],t:7,e:"td",f:[{p:[35,13,891],t:7,e:"ui-button",a:{action:"PRG_savelog"},f:["Save log to local drive"]}," ",{t:4,f:[{p:[37,6,995],t:7,e:"tr",f:[{p:[37,10,999],t:7,e:"td",f:[{p:[37,14,1003],t:7,e:"ui-button",a:{action:"PRG_renamechannel"},f:["Rename channel"]}]}]},{p:[38,6,1074],t:7,e:"tr",f:[{p:[38,10,1078],t:7,e:"td",f:[{p:[38,14,1082],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}]}]},{p:[39,6,1149],t:7,e:"tr",f:[{p:[39,10,1153],t:7,e:"td",f:[{p:[39,14,1157],t:7,e:"ui-button",a:{action:"PRG_deletechannel"},f:["Delete channel"]}]}]}],n:50,r:"data.is_operator",p:[36,5,964]}]}]}]}]}," ",{p:[43,3,1263],t:7,e:"b",f:["Chat Window"]}," ",{p:[44,4,1286],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[45,4,1342],t:7,e:"div",a:{"class":"item"},f:[{p:[46,5,1366],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"msg",p:[48,7,1450]},{p:[48,14,1457],t:7,e:"br"}],n:52,r:"data.messages",p:[47,6,1419]}]}]}]}," ",{p:[53,3,1516],t:7,e:"b",f:["Connected Users"]},{p:[53,25,1538],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"name",p:[55,4,1573]},{p:[55,12,1581],t:7,e:"br"}],n:52,r:"data.clients",p:[54,3,1546]}],n:50,r:"data.title",p:[9,2,148]},{t:4,n:51,f:[{p:[58,3,1613],t:7,e:"b",f:["Controls:"]}," ",{p:[59,3,1633],t:7,e:"table",f:[{p:[60,4,1645],t:7,e:"tr",f:[{p:[60,8,1649],t:7,e:"td",f:[{p:[60,12,1653],t:7,e:"ui-button",a:{action:"PRG_changename"},f:["Change nickname"]}]}]},{p:[61,4,1720],t:7,e:"tr",f:[{p:[61,8,1724],t:7,e:"td",f:[{p:[61,12,1728],t:7,e:"ui-button",a:{action:"PRG_newchannel"},f:["New Channel"]}]}]},{p:[62,4,1791],t:7,e:"tr",f:[{p:[62,8,1795],t:7,e:"td",f:[{p:[62,12,1799],t:7,e:"ui-button",a:{action:"PRG_toggleadmin"},f:["Toggle administration mode"]}]}]}]}," ",{p:[64,3,1889],t:7,e:"b",f:["Available channels:"]}," ",{p:[65,3,1919],t:7,e:"table",f:[{t:4,f:[{p:[67,4,1964],t:7,e:"tr",f:[{p:[67,8,1968],t:7,e:"td",f:[{p:[67,12,1972],t:7,e:"ui-button",a:{action:"PRG_joinchannel",params:['{"id": "',{t:2,r:"id",p:[67,64,2024]},'"}']},f:[{t:2,r:"chan",p:[67,74,2034]}]},{p:[67,94,2054],t:7,e:"br"}]}]}],n:52,r:"data.all_channels",p:[66,3,1930]}]}],r:"data.title"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],271:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:["##SYSTEM ERROR: ",{t:2,r:"data.error",p:[6,19,117]},{p:[6,33,131],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["RESET"]}],n:50,r:"data.error",p:[5,2,79]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.target"],s:"_0"},f:["##DoS traffic generator active. Tx: ",{t:2,r:"data.speed",p:[8,39,243]},"GQ/s",{p:[8,57,261],t:7,e:"br"}," ",{t:4,f:[{t:2,r:"nums",p:[10,4,300]},{p:[10,12,308],t:7,e:"br"}],n:52,r:"data.dos_strings",p:[9,3,269]}," ",{p:[12,3,329],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["ABORT"]}]},{t:4,n:50,x:{r:["data.target"],s:"!(_0)"},f:[" ##DoS traffic generator ready. Select target device.",{p:[14,55,443],t:7,e:"br"}," ",{t:4,f:["Targeted device ID: ",{t:2,r:"data.focus",p:[16,24,494]}],n:50,r:"data.focus",p:[15,3,451]},{t:4,n:51,f:["Targeted device ID: None"],r:"data.focus"}," ",{p:[20,3,564],t:7,e:"ui-button",a:{action:"PRG_execute"},f:["EXECUTE"]},{p:[20,54,615],t:7,e:"div",a:{style:"clear:both"}}," Detected devices on network:",{p:[21,31,677],t:7,e:"br"}," ",{t:4,f:[{p:[23,4,711],t:7,e:"ui-button",a:{action:"PRG_target_relay",params:['{"targid": "',{t:2,r:"id",p:[23,61,768]},'"}']},f:[{t:2,r:"id",p:[23,71,778]}]}],n:52,r:"data.relays",p:[22,3,685]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],272:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"i",f:["Welcome to software download utility. Please select which software you wish to download."]},{p:[5,97,174],t:7,e:"hr"}," ",{t:4,f:[{p:[7,3,203],t:7,e:"ui-display",a:{title:"Download Error"},f:[{p:[8,4,243],t:7,e:"ui-section",a:{label:"Information"},f:[{t:2,r:"data.error",p:[9,5,281]}]}," ",{p:[11,4,318],t:7,e:"ui-section",a:{label:"Reset Program"},f:[{p:[12,5,358],t:7,e:"ui-button",a:{icon:"times",action:"PRG_reseterror"},f:["RESET"]}]}]}],n:50,r:"data.error",p:[6,2,181]},{t:4,n:51,f:[{t:4,f:[{p:[19,4,516],t:7,e:"ui-display",a:{title:"Download Running"},f:[{p:[20,5,559],t:7,e:"i",f:["Please wait..."]}," ",{p:[21,5,586],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"data.downloadname",p:[22,6,623]}]}," ",{p:[24,5,669],t:7,e:"ui-section",a:{label:"File description"},f:[{t:2,r:"data.downloaddesc",p:[25,6,713]}]}," ",{p:[27,5,759],t:7,e:"ui-section",a:{label:"File size"},f:[{t:2,r:"data.downloadsize",p:[28,6,796]},"GQ"]}," ",{p:[30,5,844],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{t:2,r:"data.downloadspeed",p:[31,6,885]}," GQ/s"]}," ",{p:[33,5,937],t:7,e:"ui-section",a:{label:"Download progress"},f:[{p:[34,6,982],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.downloadsize",p:[34,27,1003]}],value:[{t:2,r:"adata.downloadcompletion",p:[34,58,1034]}],state:"good"},f:[{t:2,x:{r:["adata.downloadcompletion"],s:"Math.round(_0)"},p:[34,101,1077]},"GQ / ",{t:2,r:"adata.downloadsize",p:[34,146,1122]},"GQ"]}]}]}],n:50,r:"data.downloadname",p:[18,3,486]}],r:"data.error"}," ",{t:4,f:[{t:4,f:[{p:[41,4,1270],t:7,e:"ui-display",a:{title:"File System"},f:[{p:[42,5,1308],t:7,e:"ui-section",a:{label:"Used Capacity"},f:[{p:[43,6,1349],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.disk_size",p:[43,27,1370]}],value:[{t:2,r:"adata.disk_used",p:[43,55,1398]}],state:"good"},f:[{t:2,x:{r:["adata.disk_used"],s:"Math.round(_0)"},p:[43,89,1432]},"GQ / ",{t:2,r:"adata.disk_size",p:[43,125,1468]},"GQ"]}]}]}," ",{p:[47,4,1545],t:7,e:"ui-display",a:{title:"Primary Software Repository"},f:[{t:4,f:[{p:[49,6,1642],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[49,28,1664]}]},f:[{p:[50,7,1686],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[50,61,1740]}]}," ",{p:[52,7,1774],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[53,8,1813]}," (",{t:2,r:"size",p:[53,22,1827]}," GQ)"]}," ",{p:[55,7,1868],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[56,8,1911]}]}," ",{p:[58,7,1957],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[58,80,2030]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[62,6,2113],t:7,e:"br"}],n:52,r:"data.downloadable_programs",p:[48,5,1599]}]}," ",{t:4,f:[{p:[67,5,2194],t:7,e:"ui-display",a:{title:"UNKNOWN Software Repository"},f:[{p:[68,6,2249],t:7,e:"i",f:["Please note that NanoTrasen does not recommend download of software from non-official servers."]}," ",{t:4,f:[{p:[70,7,2395],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"filedesc",p:[70,29,2417]}]},f:[{p:[71,8,2440],t:7,e:"div",a:{style:"display: table-caption; margin-left: 3px"},f:[{t:2,r:"fileinfo",p:[71,62,2494]}]}," ",{p:[73,8,2530],t:7,e:"ui-section",a:{label:"File name"},f:[{t:2,r:"filename",p:[74,9,2570]}," (",{t:2,r:"size",p:[74,23,2584]}," GQ)"]}," ",{p:[76,8,2627],t:7,e:"ui-section",a:{label:"Compatibility"},f:[{t:2,r:"compatibility",p:[77,9,2671]}]}," ",{p:[79,8,2719],t:7,e:"ui-button",a:{icon:"signal",action:"PRG_downloadfile",params:['{"filename": "',{t:2,r:"filename",p:[79,81,2792]},'"}']},f:["DOWNLOAD"]}]}," ",{p:[83,7,2879],t:7,e:"br"}],n:52,r:"data.hacked_programs",p:[69,6,2357]}]}],n:50,r:"data.hackedavailable",p:[66,4,2160]}],n:50,x:{r:["data.error"],s:"!_0"},p:[40,3,1246]}],n:50,x:{r:["data.downloadname"],s:"!_0"},p:[39,2,1216]}," ",{p:[89,2,2954],t:7,e:"br"},{p:[89,6,2958],t:7,e:"br"},{p:[89,10,2962],t:7,e:"hr"},{p:[89,14,2966],t:7,e:"i",f:["NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559"]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],273:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[6,2,81],t:7,e:"ui-display",a:{title:"WIRELESS CONNECTIVITY"},f:[{p:[8,3,129],t:7,e:"ui-section",a:{label:"Active NTNetRelays"},f:[{p:[9,4,173],t:7,e:"b",f:[{t:2,r:"data.ntnetrelays",p:[9,7,176]}]}]}," ",{t:4,f:[{p:[12,4,250],t:7,e:"ui-section",a:{label:"System status"},f:[{p:[13,6,291],t:7,e:"b",f:[{t:2,x:{r:["data.ntnetstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[13,9,294]}]}]}," ",{p:[15,4,366],t:7,e:"ui-section",a:{label:"Control"},f:[{p:[17,4,401],t:7,e:"ui-button",a:{icon:"plus",action:"toggleWireless"},f:["TOGGLE"]}]}," ",{p:[21,4,500],t:7,e:"br"},{p:[21,8,504],t:7,e:"br"}," ",{p:[22,4,513],t:7,e:"i",f:["Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!"]}],n:50,r:"data.ntnetrelays",p:[11,3,221]},{t:4,n:51,f:[{p:[24,4,650],t:7,e:"br"},{p:[24,8,654],t:7,e:"p",f:["Wireless coverage unavailable, no relays are connected."]}],r:"data.ntnetrelays"}]}," ",{p:[29,2,750],t:7,e:"ui-display",a:{title:"FIREWALL CONFIGURATION"},f:[{p:[31,2,798],t:7,e:"table",f:[{p:[32,3,809],t:7,e:"tr",f:[{p:[33,4,818],t:7,e:"th",f:["PROTOCOL"]},{p:[34,4,835],t:7,e:"th",f:["STATUS"]},{p:[35,4,850],t:7,e:"th",f:["CONTROL"]}]},{p:[36,3,865],t:7,e:"tr",f:[" ",{p:[37,4,874],t:7,e:"td",f:["Software Downloads"]},{p:[38,4,901],t:7,e:"td",f:[{t:2,x:{r:["data.config_softwaredownload"],s:'_0?"ENABLED":"DISABLED"'},p:[38,8,905]}]},{p:[39,4,967],t:7,e:"td",f:[" ",{p:[39,9,972],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "1"}'},f:["TOGGLE"]}]}]},{p:[40,3,1051],t:7,e:"tr",f:[" ",{p:[41,4,1060],t:7,e:"td",f:["Peer to Peer Traffic"]},{p:[42,4,1089],t:7,e:"td",f:[{t:2,x:{r:["data.config_peertopeer"],s:'_0?"ENABLED":"DISABLED"'},p:[42,8,1093]}]},{p:[43,4,1149],t:7,e:"td",f:[{p:[43,8,1153],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "2"}'},f:["TOGGLE"]}]}]},{p:[44,3,1232],t:7,e:"tr",f:[" ",{p:[45,4,1241],t:7,e:"td",f:["Communication Systems"]},{p:[46,4,1271],t:7,e:"td",f:[{t:2,x:{r:["data.config_communication"],s:'_0?"ENABLED":"DISABLED"'},p:[46,8,1275]}]},{p:[47,4,1334],t:7,e:"td",f:[{p:[47,8,1338],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "3"}'},f:["TOGGLE"]}]}]},{p:[48,3,1417],t:7,e:"tr",f:[" ",{p:[49,4,1426],t:7,e:"td",f:["Remote System Control"]},{p:[50,4,1456],t:7,e:"td",f:[{t:2,x:{r:["data.config_systemcontrol"],s:'_0?"ENABLED":"DISABLED"'},p:[50,8,1460]}]},{p:[51,4,1519],t:7,e:"td",f:[{p:[51,8,1523],t:7,e:"ui-button",a:{action:"toggle_function",params:'{"id": "4"}'},f:["TOGGLE"]}]}]}]}]}," ",{p:[55,2,1630],t:7,e:"ui-display",a:{title:"SECURITY SYSTEMS"},f:[{t:4,f:[{p:[58,4,1699],t:7,e:"ui-notice",f:[{p:[59,5,1716],t:7,e:"h1",f:["NETWORK INCURSION DETECTED"]}]}," ",{p:[61,5,1774],t:7,e:"i",f:["An abnormal activity has been detected in the network. Please verify system logs for more information"]}],n:50,r:"data.idsalarm",p:[57,3,1673]}," ",{p:[64,3,1902],t:7,e:"ui-section",a:{label:"Intrusion Detection System"},f:[{p:[65,4,1954],t:7,e:"b",f:[{t:2,x:{r:["data.idsstatus"],s:'_0?"ENABLED":"DISABLED"'},p:[65,7,1957]}]}]}," ",{p:[68,3,2029],t:7,e:"ui-section",a:{label:"Maximal Log Count"},f:[{p:[69,4,2072],t:7,e:"b",f:[{t:2,r:"data.ntnetmaxlogs",p:[69,7,2075]}]}]}," ",{p:[72,3,2125],t:7,e:"ui-section",a:{label:"Controls"},f:[]}," ",{p:[74,4,2176],t:7,e:"table",f:[{p:[75,4,2188],t:7,e:"tr",f:[{p:[75,8,2192],t:7,e:"td",f:[{p:[75,12,2196],t:7,e:"ui-button",a:{action:"resetIDS"},f:["RESET IDS"]}]}]},{p:[76,4,2251],t:7,e:"tr",f:[{p:[76,8,2255],t:7,e:"td",f:[{p:[76,12,2259],t:7,e:"ui-button",a:{action:"toggleIDS"},f:["TOGGLE IDS"]}]}]},{p:[77,4,2316],t:7,e:"tr",f:[{p:[77,8,2320],t:7,e:"td",f:[{p:[77,12,2324],t:7,e:"ui-button",a:{action:"updatemaxlogs"},f:["SET LOG LIMIT"]}]}]},{p:[78,4,2388],t:7,e:"tr",f:[{p:[78,8,2392],t:7,e:"td",f:[{p:[78,12,2396],t:7,e:"ui-button",a:{action:"purgelogs"},f:["PURGE LOGS"]}]}]}]}," ",{p:[81,3,2467],t:7,e:"ui-subdisplay",a:{title:"System Logs"},f:[{p:[82,3,2506],t:7,e:"div",a:{"class":"statusDisplay",style:"overflow: auto;"},f:[{p:[83,3,2561],t:7,e:"div",a:{"class":"item"},f:[{p:[84,4,2584],t:7,e:"div",a:{"class":"itemContent",style:"width: 100%;"},f:[{t:4,f:[{t:2,r:"entry",p:[86,6,2667]},{p:[86,15,2676],t:7,e:"br"}],n:52,r:"data.ntnetlogs",p:[85,5,2636]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],274:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{t:4,f:[{p:[7,2,102],t:7,e:"div",a:{"class":"item"},f:[{p:[8,3,124],t:7,e:"h2",f:["An error has occurred during operation..."]}," ",{p:[9,3,178],t:7,e:"b",f:["Additional information:"]},{t:2,r:"data.error",p:[9,34,209]},{p:[9,48,223],t:7,e:"br"}," ",{p:[10,3,231],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Clear"]}]}],n:50,r:"data.error",p:[6,2,81]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.downloading"],s:"_0"},f:[{p:[13,3,321],t:7,e:"h2",f:["Download in progress..."]}," ",{p:[14,3,357],t:7,e:"div",a:{"class":"itemLabel"},f:["Downloaded file:"]}," ",{p:[17,3,416],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_name",p:[18,4,446]}]}," ",{p:[20,3,483],t:7,e:"div",a:{"class":"itemLabel"},f:["Download progress:"]}," ",{p:[23,3,544],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_progress",p:[24,4,574]}," / ",{t:2,r:"data.download_size",p:[24,33,603]}," GQ"]}," ",{p:[26,3,642],t:7,e:"div",a:{"class":"itemLabel"},f:["Transfer speed:"]}," ",{p:[29,3,700],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.download_netspeed",p:[30,4,730]},"GQ/s"]}," ",{p:[32,3,774],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[35,3,826],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[36,4,856],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Abort download"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading"],s:"(!(_0))&&(_1)"},f:[" ",{p:[39,3,954],t:7,e:"h2",f:["Server enabled"]}," ",{p:[40,3,981],t:7,e:"div",a:{"class":"itemLabel"},f:["Connected clients:"]}," ",{p:[43,3,1042],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_clients",p:[44,4,1072]}]}," ",{p:[46,3,1109],t:7,e:"div",a:{"class":"itemLabel"},f:["Provided file:"]}," ",{p:[49,3,1166],t:7,e:"div",a:{"class":"itemContent"},f:[{t:2,r:"data.upload_filename",p:[50,4,1196]}]}," ",{p:[52,3,1234],t:7,e:"div",a:{"class":"itemLabel"},f:["Server password:"]}," ",{p:[55,3,1293],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ENABLED"],n:50,r:"data.upload_haspassword",p:[56,4,1323]},{t:4,n:51,f:["DISABLED"],r:"data.upload_haspassword"}]}," ",{p:[62,3,1420],t:7,e:"div",a:{"class":"itemLabel"},f:["Commands:"]}," ",{p:[65,3,1472],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[66,4,1502],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[67,4,1567],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Exit server"]}]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(_2))"},f:[" ",{p:[70,3,1668],t:7,e:"h2",f:["File transfer server ready. Select file to upload:"]}," ",{p:[71,3,1732],t:7,e:"table",f:[{p:[72,3,1743],t:7,e:"tr",f:[{p:[72,7,1747],t:7,e:"th",f:["File name"]},{p:[72,20,1760],t:7,e:"th",f:["File size"]},{p:[72,33,1773],t:7,e:"th",f:["Controls ",{t:4,f:[{p:[74,4,1824],t:7,e:"tr",f:[{p:[74,8,1828],t:7,e:"td",f:[{t:2,r:"filename",p:[74,12,1832]}]},{p:[75,4,1849],t:7,e:"td",f:[{t:2,r:"size",p:[75,8,1853]},"GQ"]},{p:[76,4,1868],t:7,e:"td",f:[{p:[76,8,1872],t:7,e:"ui-button",a:{action:"PRG_uploadfile",params:['{"id": "',{t:2,r:"uid",p:[76,59,1923]},'"}']},f:["Select"]}]}]}],n:52,r:"data.upload_filelist",p:[73,3,1789]}]}]}]}," ",{p:[79,3,1981],t:7,e:"hr"}," ",{p:[80,3,1989],t:7,e:"ui-button",a:{action:"PRG_setpassword"},f:["Set password"]}," ",{p:[81,3,2053],t:7,e:"ui-button",a:{action:"PRG_reset"},f:["Return"]}]},{t:4,n:50,x:{r:["data.downloading","data.uploading","data.upload_filelist"],s:"(!(_0))&&((!(_1))&&(!(_2)))"},f:[" ",{p:[83,3,2116],t:7,e:"h2",f:["Available files:"]}," ",{p:[84,3,2145],t:7,e:"table",a:{border:"1",style:"border-collapse: collapse"},f:[{p:[84,55,2197],t:7,e:"tr",f:[{p:[84,59,2201],t:7,e:"th",f:["Server UID"]},{p:[84,73,2215],t:7,e:"th",f:["File Name"]},{p:[84,86,2228],t:7,e:"th",f:["File Size"]},{p:[84,99,2241],t:7,e:"th",f:["Password Protection"]},{p:[84,122,2264],t:7,e:"th",f:["Operations ",{t:4,f:[{p:[86,5,2311],t:7,e:"tr",f:[{p:[86,9,2315],t:7,e:"td",f:[{t:2,r:"uid",p:[86,13,2319]}]},{p:[87,5,2332],t:7,e:"td",f:[{t:2,r:"filename",p:[87,9,2336]}]},{p:[88,5,2354],t:7,e:"td",f:[{t:2,r:"size",p:[88,9,2358]},"GQ ",{t:4,f:[{p:[90,6,2400],t:7,e:"td",f:["Enabled"]}],n:50,r:"haspassword",p:[89,5,2374]}," ",{t:4,f:[{p:[93,6,2457],t:7,e:"td",f:["Disabled"]}],n:50,x:{r:["haspassword"],s:"!_0"},p:[92,5,2430]}]},{p:[96,5,2494],t:7,e:"td",f:[{p:[96,9,2498],t:7,e:"ui-button",a:{action:"PRG_downloadfile",params:['{"id": "',{t:2,r:"uid",p:[96,62,2551]},'"}']},f:["Download"]}]}]}],n:52,r:"data.servers",p:[85,4,2283]}]}]}]}," ",{p:[99,3,2612],t:7,e:"hr"}," ",{p:[100,3,2620],t:7,e:"ui-button",a:{action:"PRG_uploadmenu"},f:["Send file"]}]}],r:"data.error"}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],275:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[43,1,1082],t:7,e:"ntosheader"}," ",{p:[45,1,1099],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[47,5,1157],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[47,27,1179]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[49,38,1331]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[50,15,1387]}],yinc:"9"}}],n:50,r:"config.fancy",p:[46,3,1131]},{t:4,n:51,f:[{p:[52,5,1437],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[53,7,1475],t:7,e:"span",f:[{t:2,r:"data.supply",p:[53,13,1481]}," W"]}]}," ",{p:[55,5,1530],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[56,9,1565],t:7,e:"span",f:[{t:2,r:"data.demand",p:[56,15,1571]}," W"]}]}],r:"config.fancy"}]}," ",{p:[60,1,1642],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[61,3,1672],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[62,5,1697],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[63,5,1734],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[64,5,1773],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[65,5,1810],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[66,5,1849],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[67,5,1891],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[68,5,1932],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[71,5,2017],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[71,24,2036]}],nowrap:0},f:[{p:[72,7,2061],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[72,28,2082]}," %"]}," ",{p:[73,7,2140],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[73,28,2161]}," W"]}," ",{p:[74,7,2217],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2238],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[74,41,2251]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[74,70,2280]}]}]}," ",{p:[75,7,2327],t:7,e:"div",a:{"class":"content"},f:[{p:[75,28,2348],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[75,41,2361]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[75,64,2384]}," [",{p:[75,87,2407],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[75,93,2413]}]},"]"]}]}," ",{p:[76,7,2462],t:7,e:"div",a:{"class":"content"},f:[{p:[76,28,2483],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[76,41,2496]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[76,64,2519]}," [",{p:[76,87,2542],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"], --s:"_0(_1)"},p:[76,93,2548]}]},"]"]}]}," ",{p:[77,7,2597],t:7,e:"div",a:{"class":"content"},f:[{p:[77,28,2618],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[77,41,2631]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[77,64,2654]}," [",{p:[77,87,2677],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[77,93,2683]}]},"]"]}]}]}],n:52,r:"data.areas",p:[70,3,1991]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],276:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{p:[4,1,64],t:7,e:"ui-display",f:[{p:[5,2,79],t:7,e:"div",a:{"class":"item"},f:[{p:[6,3,101],t:7,e:"div",a:{"class":"itemLabel"},f:["Payload status:"]}," ",{p:[9,3,158],t:7,e:"div",a:{"class":"itemContent"},f:[{t:4,f:["ARMED"],n:50,r:"data.armed",p:[10,4,188]},{t:4,n:51,f:["DISARMED"],r:"data.armed"}]}," ",{p:[16,3,270],t:7,e:"div",a:{"class":"itemLabel"},f:["Controls:"]}," ",{p:[19,3,321],t:7,e:"div",a:{"class":"itemContent"},f:[{p:[20,4,351],t:7,e:"table",f:[{p:[21,4,363],t:7,e:"tr",f:[{p:[21,8,367],t:7,e:"td",f:[{p:[21,12,371],t:7,e:"ui-button",a:{action:"PRG_obfuscate"},f:["OBFUSCATE PROGRAM NAME"]}]}]},{p:[22,4,444],t:7,e:"tr",f:[{p:[22,8,448],t:7,e:"td",f:[{p:[22,12,452],t:7,e:"ui-button",a:{action:"PRG_arm",state:[{t:2,x:{r:["data.armed"],s:'_0?"danger":null'},p:[22,47,487]}]},f:[{t:2,x:{r:["data.armed"],s:'_0?"DISARM":"ARM"'},p:[22,81,521]}]}," ",{p:[23,4,571],t:7,e:"ui-button",a:{icon:"radiation",state:[{t:2,x:{r:["data.armed"],s:'_0?null:"disabled"'},p:[23,39,606]}],action:"PRG_activate"},f:["ACTIVATE"]}]}]}]}]}]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],277:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[2,1,47],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[5,3,95],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[5,22,114]}," Alarms"]},f:[{p:[6,5,138],t:7,e:"ul",f:[{t:4,f:[{p:[8,9,171],t:7,e:"li",f:[{t:2,r:".",p:[8,13,175]}]}],n:52,r:".",p:[7,7,150]},{t:4,n:51,f:[{p:[10,9,211],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[4,1,64]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(278)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,278:278}],278:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"div",a:{"class":"item",style:"float: left"},f:[{p:[2,2,41],t:7,e:"table",f:[{p:[2,9,48],t:7,e:"tr",f:[{t:4,f:[{p:[4,3,113],t:7,e:"td",f:[{p:[4,7,117],t:7,e:"img",a:{src:[{t:2,r:"data.PC_batteryicon",p:[4,17,127]}]}}]}],n:50,x:{r:["data.PC_batteryicon","data.PC_showbatteryicon"],s:"_0&&_1"},p:[3,2,55]}," ",{t:4,f:[{p:[7,3,226],t:7,e:"td",f:[{p:[7,7,230],t:7,e:"b",f:[{t:2,r:"data.PC_batterypercent",p:[7,10,233]}]}]}],n:50,x:{r:["data.PC_batterypercent","data.PC_showbatteryicon"],s:"_0&&_1"},p:[6,2,165]}," ",{t:4,f:[{p:[10,3,305],t:7,e:"td",f:[{p:[10,7,309],t:7,e:"img",a:{src:[{t:2,r:"data.PC_ntneticon",p:[10,17,319]}]}}]}],n:50,r:"data.PC_ntneticon",p:[9,2,276]}," ",{t:4,f:[{p:[13,3,386],t:7,e:"td",f:[{p:[13,7,390],t:7,e:"img",a:{src:[{t:2,r:"data.PC_apclinkicon",p:[13,17,400]}]}}]}],n:50,r:"data.PC_apclinkicon",p:[12,2,355]}," ",{t:4,f:[{p:[16,3,469],t:7,e:"td",f:[{p:[16,7,473],t:7,e:"b",f:[{t:2,r:"data.PC_stationtime",p:[16,10,476]}]}]}],n:50,r:"data.PC_stationtime",p:[15,2,438]}," ",{t:4,f:[{p:[19,3,552],t:7,e:"td",f:[{p:[19,7,556],t:7,e:"img",a:{src:[{t:2,r:"icon",p:[19,17,566]}]}}]}],n:52,r:"data.PC_programheaders",p:[18,2,516]}]}]}]}," ",{p:[23,1,609],t:7,e:"div",a:{style:"float: right; margin-top: 5px"},f:[{p:[24,2,655],t:7,e:"ui-button",a:{action:"PC_shutdown"},f:["Shutdown"]}," ",{t:4,f:[{p:[26,3,745],t:7,e:"ui-button",a:{action:"PC_exit"},f:["EXIT PROGRAM"]}," ",{p:[27,3,801],t:7,e:"ui-button",a:{action:"PC_minimize"},f:["Minimize Program"]}],n:50,r:"data.PC_showexitprogram",p:[25,2,710]}]}," ",{p:[30,1,881],t:7,e:"div",a:{style:"clear: both"}}]},e.exports=a.extend(r.exports)},{205:205}],279:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Auth. Disk:"},f:[{t:4,f:[{p:[3,7,69],t:7,e:"ui-button",a:{icon:"eject",style:"selected",action:"eject_disk"},f:["++++++++++"]}],n:50,r:"data.disk_present",p:[2,3,36]},{t:4,n:51,f:[{p:[5,7,172],t:7,e:"ui-button",a:{icon:"plus",action:"insert_disk"},f:["----------"]}],r:"data.disk_present"}]}," ",{p:[8,1,266],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[9,3,297],t:7,e:"span",f:[{t:2,r:"data.status1",p:[9,9,303]},"-",{t:2,r:"data.status2",p:[9,26,320]}]}]}," ",{p:[11,1,360],t:7,e:"ui-display",a:{title:"Timer"},f:[{p:[12,3,390],t:7,e:"ui-section",a:{label:"Time to Detonation"},f:[{p:[13,5,435],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[13,11,441]}]}]}," ",{t:4,f:[{p:[16,5,540],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[17,7,581],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_default"],s:'_0&&_1&&_2?null:"disabled"'},p:[17,40,614]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[19,7,786],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_min"],s:'_0&&_1&&_2?null:"disabled"'},p:[19,38,817]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[21,7,991],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[21,39,1023]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[22,7,1155],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.timer_is_not_max"],s:'_0&&_1&&_2?null:"disabled"'},p:[22,37,1185]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[15,3,518]}," ",{p:[26,3,1394],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[27,5,1426],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[27,38,1459]}],action:"toggle_timer",state:[{t:2,x:{r:["data.disk_present","data.code_approved","data.safety"],s:'_0&&_1&&!_2?null:"disabled"'},p:[29,14,1542]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[30,7,1631]}]}]}]}," ",{p:[34,1,1713],t:7,e:"ui-display",a:{title:"Anchoring"},f:[{p:[35,3,1747],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[36,12,1770]}],icon:[{t:2,x:{r:["data.anchored"],s:'_0?"lock":"unlock"'},p:[37,11,1846]}],style:[{t:2,x:{r:["data.anchored"],s:'_0?null:"caution"'},p:[38,12,1897]}],action:"anchor"},f:[{t:2,x:{r:["data.anchored"],s:'_0?"Engaged":"Off"'},p:[39,21,1956]}]}]}," ",{p:[41,1,2022],t:7,e:"ui-display",a:{title:"Safety"},f:[{p:[42,3,2053],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.disk_present","data.code_approved"],s:'_0&&_1?null:"disabled"'},p:[43,12,2076]}],icon:[{t:2,x:{r:["data.safety"],s:'_0?"lock":"unlock"'},p:[44,11,2152]}],action:"safety",style:[{t:2,x:{r:["data.safety"],s:'_0?"caution":"danger"'},p:[45,12,2217]}]},f:[{p:[46,7,2265],t:7,e:"span",f:[{t:2,x:{r:["data.safety"],s:'_0?"On":"Off"'},p:[46,13,2271]}]}]}]}," ",{p:[49,1,2341],t:7,e:"ui-display",a:{title:"Code"},f:[{p:[50,3,2370],t:7,e:"ui-section",a:{label:"Message"},f:[{t:2,r:"data.message",p:[50,31,2398]}]}," ",{p:[51,3,2431],t:7,e:"ui-section",a:{label:"Keypad"},f:[{p:[52,5,2464],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[52,39,2498]}],params:'{"digit":"1"}'},f:["1"]}," ",{p:[53,5,2583],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[53,39,2617]}],params:'{"digit":"2"}'},f:["2"]}," ",{p:[54,5,2702],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[54,39,2736]}],params:'{"digit":"3"}'},f:["3"]}," ",{p:[55,5,2821],t:7,e:"br"}," ",{p:[56,5,2831],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[56,39,2865]}],params:'{"digit":"4"}'},f:["4"]}," ",{p:[57,5,2950],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[57,39,2984]}],params:'{"digit":"5"}'},f:["5"]}," ",{p:[58,5,3069],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[58,39,3103]}],params:'{"digit":"6"}'},f:["6"]}," ",{p:[59,5,3188],t:7,e:"br"}," ",{p:[60,5,3198],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[60,39,3232]}],params:'{"digit":"7"}'},f:["7"]}," ",{p:[61,5,3317],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[61,39,3351]}],params:'{"digit":"8"}'},f:["8"]}," ",{p:[62,5,3436],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[62,39,3470]}],params:'{"digit":"9"}'},f:["9"]}," ",{p:[63,5,3555],t:7,e:"br"}," ",{p:[64,5,3565],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[64,39,3599]}],params:'{"digit":"R"}'},f:["R"]}," ",{p:[65,5,3684],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[65,39,3718]}],params:'{"digit":"0"}'},f:["0"]}," ",{p:[66,5,3803],t:7,e:"ui-button",a:{action:"keypad",state:[{t:2,x:{r:["data.disk_present"],s:'_0?null:"disabled"'},p:[66,39,3837]}],params:'{"digit":"E"}'},f:["E"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],280:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,60],t:7,e:"ui-button",a:{icon:"remove",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[3,35,92]}],action:"empty_eject_beaker"},f:["Empty and eject"]}," ",{p:[6,3,201],t:7,e:"ui-button",a:{icon:"trash",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[6,34,232]}],action:"empty_beaker"},f:["Empty"]}," ",{p:[9,3,325],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.has_beaker"],s:'_0?null:"disabled"'},p:[9,34,356]}],action:"eject_beaker"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{t:4,f:[{p:[14,3,490],t:7,e:"ui-section",f:[{t:4,f:[{p:[16,5,538],t:7,e:"span",a:{"class":"bad"},f:["The beaker is empty!"]}],n:50,r:"data.beaker_empty",p:[15,4,507]},{t:4,n:51,f:[{p:[18,5,602],t:7,e:"ui-subdisplay",a:{title:"Blood"},f:[{t:4,f:[{p:[20,7,668],t:7,e:"ui-section",a:{label:"Blood DNA"},f:[{t:2,r:"data.blood.dna",p:[20,37,698]}]}," ",{p:[21,7,737],t:7,e:"ui-section",a:{label:"Blood type"},f:[{t:2,r:"data.blood.type",p:[21,38,768]}]}],n:50,r:"data.has_blood",p:[19,6,638]},{t:4,n:51,f:[{p:[23,7,823],t:7,e:"ui-section",f:[{p:[24,8,844],t:7,e:"span",a:{"class":"average"},f:["No blood sample detected."]}]}],r:"data.has_blood"}]}],r:"data.beaker_empty"}]}],n:50,r:"data.has_beaker",p:[13,2,463]},{t:4,n:51,f:[{p:[31,3,999],t:7,e:"ui-section",f:[{p:[32,4,1016],t:7,e:"span",a:{"class":"bad"},f:["No beaker loaded."]}]}],r:"data.has_beaker"}]}," ",{t:4,f:[{p:[37,2,1127],t:7,e:"ui-display",a:{title:"Diseases"},f:[{t:4,f:[{p:{button:[{t:4,f:[{p:[42,7,1277],t:7,e:"ui-button",a:{icon:"pencil",action:"rename_disease",state:[{t:2,x:{r:["can_rename"],s:'_0?"":"disabled"'},p:[42,63,1333]}],params:['{"index": ',{t:2,r:"index",p:[42,115,1385]},"}"]},f:["Name advanced disease"]}],n:50,r:"is_adv",p:[41,6,1255]}," ",{p:[46,6,1468],t:7,e:"ui-button",a:{icon:"flask",action:"create_culture_bottle",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[46,68,1530]}],params:['{"index": ',{t:2,r:"index",p:[46,123,1585]},"}"]},f:["Create virus culture bottle"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[39,23,1206]}],button:0},f:[" ",{p:[50,5,1675],t:7,e:"ui-section",a:{label:"Disease agent"},f:[{t:2,r:"agent",p:[50,39,1709]}]}," ",{p:[51,5,1737],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[51,37,1769]}]}," ",{p:[52,5,1803],t:7,e:"ui-section",a:{label:"Spread"},f:[{t:2,r:"spread",p:[52,32,1830]}]}," ",{p:[53,5,1859],t:7,e:"ui-section",a:{label:"Possible cure"},f:[{t:2,r:"cure",p:[53,39,1893]}]}," ",{t:4,f:[{p:[55,6,1942],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[55,37,1973]}]}," ",{p:[56,6,2007],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[56,34,2035]}]}," ",{p:[57,6,2066],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[57,38,2098]}]}," ",{p:[58,6,2133],t:7,e:"ui-section",a:{label:"Symptoms"},f:[{t:4,f:[{p:[60,8,2197],t:7,e:"span",f:[{t:2,r:"name",p:[60,14,2203]}]},{p:[60,29,2218],t:7,e:"br"}],n:52,r:"symptoms",p:[59,7,2170]}]}],n:50,r:"is_adv",p:[54,5,1921]}]}],n:52,r:"data.viruses",p:[38,3,1160]},{t:4,n:51,f:[{p:[66,4,2309],t:7,e:"ui-section",f:[{p:[67,5,2327],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[71,2,2446],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[73,4,2512],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[73,23,2531]}]},f:[{p:[74,6,2548],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[74,42,2584]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[74,128,2670]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[72,3,2481]},{t:4,n:51,f:[{p:[79,4,2762],t:7,e:"ui-section",f:[{p:[80,5,2780],t:7,e:"span",a:{"class":"average"},f:["No antibodies detected in the blood sample."]}]}],r:"data.resistances"}]}],n:50,r:"data.has_blood",p:[36,1,1102]}]},e.exports=a.extend(r.exports)},{205:205}],281:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1342],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1361]},{t:4,f:[" : ",{t:2,r:"data.subcategory",p:[48,64,1405]}],n:50,r:"data.subcategory",p:[48,37,1378]}]},f:[{t:4,f:[{p:[50,3,1459],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1488],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1438]},{t:4,n:51,f:[{p:[54,3,1557],t:7,e:"ui-section",f:[{p:[55,4,1574],t:7,e:"table",f:[{p:[56,5,1587],t:7,e:"tr",f:[{p:[57,6,1598],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1640],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1699]}]}]}," ",{p:[62,6,1755],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1797],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1855]}]}]}," ",{p:[67,6,1911],t:7,e:"td",f:[{t:4,f:[{p:[69,7,1965],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes",style:"float:right!important"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1922]},{t:4,n:51,f:[{p:[73,7,2119],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes",style:"float:right!important"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2279],t:7,e:"td",f:[{p:[79,7,2291],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2308]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2455],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2496],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2538],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2600]}]}]}," ",{p:[91,6,2659],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2701],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2763]}]}]}],n:50,r:"data.subcategory",p:[85,5,2465]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2973],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,2990]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2883]}],n:50,r:"config.fancy",p:[99,4,2857]}]}," ",{t:4,f:[{p:[106,5,3125],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3174],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3193]}]},f:[{p:[109,7,3211],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[109,27,3231]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3339]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3143]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3548],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3567]}]},f:[{p:[117,8,3586],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[117,28,3606]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3515]}],n:51,r:"data.display_craftable_only",p:[114,5,3476]}]}],n:50,r:"data.display_compact",p:[105,4,3091]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3928],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3947]}]},f:[{t:4,f:[{p:[128,8,3990],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4033]}]}],n:50,r:"req_text",p:[127,7,3965]}," ",{t:4,f:[{p:[133,8,4120],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4160]}]}],n:50,r:"catalyst_text",p:[132,7,4090]}," ",{t:4,f:[{p:[138,8,4248],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4284]}]}],n:50,r:"tool_text",p:[137,7,4222]}," ",{p:[142,7,4342],t:7,e:"ui-section",f:[{p:[143,8,4363],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4421]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3897]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4602],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4621]}]},f:[{t:4,f:[{p:[153,9,4666],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4710]}]}],n:50,r:"req_text",p:[152,8,4640]}," ",{t:4,f:[{p:[158,9,4801],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4842]}]}],n:50,r:"catalyst_text",p:[157,8,4770]}," ",{t:4,f:[{p:[163,9,4934],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4971]}]}],n:50,r:"tool_text",p:[162,8,4907]}]}],n:52,r:"data.cant_craft",p:[150,6,4569]}],n:51,r:"data.display_craftable_only",p:[149,5,4530]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,309:309}],282:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Pump"},f:[{p:[13,3,459],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,491],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,508]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,559]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,616]}]}]}," ",{p:[18,3,675],t:7,e:"ui-section",a:{label:"Direction"},f:[{p:[19,5,711],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"sign-out":"sign-in"'},p:[19,22,728]}],action:"direction"},f:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"Out":"In"'},p:[20,26,808]}]}]}," ",{p:[22,3,883],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,5,925],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.min_pressure",p:[23,18,938]}],max:[{t:2,r:"data.max_pressure",p:[23,46,966]}],value:[{t:2,r:"data.target_pressure",p:[24,14,1003]}]},f:[{t:2,x:{r:["adata.target_pressure"],s:"Math.round(_0)"},p:[24,40,1029]}," kPa"]}]}," ",{p:[26,3,1100],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,1145],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.target_pressure","data.default_pressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,1178]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1328],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.target_pressure","data.min_pressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],283:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[13,3,461],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,493],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,510]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,561]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,618]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[22,7,787],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[22,38,818]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[21,5,759]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[26,3,938],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[27,4,969]}]}," ",{p:[29,3,1011],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[30,4,1045]}," kPa"]}],n:50,r:"data.holding",p:[25,3,914]},{t:4,n:51,f:[{p:[33,3,1119],t:7,e:"ui-section",f:[{p:[34,4,1136],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}," W"]}]}," ",{p:[52,5,1466],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1501],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1507]}," W"]}]}],r:"config.fancy"}]}," ",{p:[57,1,1578],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1608],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1633],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1670],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1709],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1746],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1785],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1827],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1868],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1953],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1972]}],nowrap:0},f:[{p:[69,7,1997],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2018]}," %"]}," ",{p:[70,7,2076],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[70,28,2097]}," W"]}," ",{p:[71,7,2153],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2174],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2187]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2216]}]}]}," ",{p:[72,7,2263],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2284],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2297]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2320]}," [",{p:[72,87,2343],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2349]}]},"]"]}]}," ",{p:[73,7,2398],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2419],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2432]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2455]}," [",{p:[73,87,2478],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2484]}]},"]"]}]}," ",{p:[74,7,2533],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2554],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2567]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2590]}," [",{p:[74,87,2613],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2619]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1927]}]}]},e.exports=a.extend(r.exports)},{205:205}],285:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,177],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,236],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,270],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,287]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,338]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,413]}]}]}],n:50,r:"data.headset",p:[12,3,210]},{t:4,n:51,f:[{p:[19,5,494],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,533],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,550]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,604]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,685]}]}]}," ",{p:[24,5,769],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,805],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,822]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,873]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,948]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1064],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1121]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1173]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1250]}]}]}],n:50,r:"data.command",p:[30,3,1038]}]}," ",{p:[38,1,1342],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1374],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1439],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1445]}]}],n:50,r:"data.freqlock",p:[40,5,1410]},{t:4,n:51,f:[{p:[43,7,1495],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1534]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1646],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1680]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1793],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1864]}]}," ",{p:[46,7,1905],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1938]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2050],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2088]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2262],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2312],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2329]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2379]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2447]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2225]}," ",{t:4,f:[{p:[57,5,2578],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2673]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2730]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2806]},'"}']},f:[{t:2,r:"channel",p:[62,11,2833]}]},{p:[62,34,2856],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2615]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2534]}]}]},e.exports=a.extend(r.exports)},{205:205}],286:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={ --v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,168],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,209],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,231]}]}," ",{p:[10,9,253],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,274]}]}," ",{p:[11,9,298],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,331],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,374]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,384]}]}]}]}],n:52,r:"data.satellites",p:[7,2,138]}]}," ",{t:4,f:[{p:[18,1,528],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,576],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,597]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,641]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,674]}," %"]}," ",{p:[20,1,758],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,500]}]},e.exports=a.extend(r.exports)},{205:205}],287:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,200],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,215]}]},f:[{p:[6,2,233],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,256],t:7,e:"status"}]}," ",{p:[9,2,277],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,303],t:7,e:"templates"}]}," ",{p:[12,2,327],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,381],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,356]}," ",{t:4,f:[{p:[17,3,437],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,411]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(288),templates:t(290),status:t(289)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,288:288,289:289,290:290}],288:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,96],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,128]}]}],n:50,r:"data.selected.description",p:[2,3,57]}," ",{t:4,f:[{p:[6,5,224],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,256]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,185]}]}," ",{t:4,f:[{p:[11,3,361],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,398]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,444]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,526]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,482]}," ",{p:[16,5,580],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,649]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,328]},{t:4,f:[{p:[24,3,778],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,744]},{p:[27,1,847],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,902]},'"}']},f:["Preview"]}," ",{p:[31,1,961],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,1013]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1089],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{205:205}],289:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,27],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,46]}," (",{t:2,r:"id",p:[2,32,56]},")"]},f:[{t:2,r:"status",p:[3,5,71]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,109]},")"],n:50,r:"timer",p:[4,5,87]}," ",{p:[7,5,141],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,203]},'"}']},f:["Jump To"]}," ",{p:[10,5,252],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,300]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,317]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],290:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,74],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,85]}]},f:[{t:4,f:[{p:[5,9,135],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,154]}]},f:[{t:4,f:[{p:[7,13,209],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,241]}]}],n:50,r:"description",p:[6,11,176]}," ",{t:4,f:[{p:[10,13,333],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,365]}]}],n:50,r:"admin_notes",p:[9,11,300]}," ",{p:[13,11,426],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,499]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,537]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,630]}]}]}],n:52,r:"templates",p:[4,7,106]}]}],n:52,r:"data.templates",p:[2,3,44]}]}]},e.exports=a.extend(r.exports)},{205:205}],291:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}," ",{p:[23,5,658],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,7,693],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[24,20,706]}],max:[{t:2,r:"data.occupant.maxHealth",p:[24,54,740]}],value:[{t:2,r:"data.occupant.health",p:[24,90,776]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[25,16,818]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[25,68,870]}]}]}," ",{t:4,f:[{p:[28,7,1107],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[28,26,1126]}]},f:[{p:[29,9,1147],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[29,30,1168]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[29,66,1204]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[29,103,1241]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[27,5,941]}," ",{p:[32,5,1328],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[33,9,1364],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[33,22,1377]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[33,68,1423]}]}]}," ",{p:[35,5,1506],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[36,9,1542],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[36,22,1555]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[36,68,1601]}]}]}," ",{p:[38,5,1685],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[40,11,1772],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[40,54,1815]}," units of ",{t:2,r:"name",p:[40,89,1850]}]},{p:[40,104,1865],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[39,9,1727]},{t:4,n:51,f:[{p:[42,11,1900],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[47,1,1996],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[48,2,2028],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[49,5,2059],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[49,22,2076]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[49,71,2125]}]}]}," ",{p:[51,3,2190],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[53,7,2251],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[53,38,2282]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[53,122,2366]},'"}']},f:[{t:2,r:"name",p:[53,132,2376]}]},{p:[53,152,2396],t:7,e:"br"}],n:52,r:"data.chems",p:[52,5,2223]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,44]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,66]}],candystripe:0,right:0},f:[{p:[3,5,105],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,132],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,145]}]},f:[{t:2,r:"status",p:[3,132,232]}]}]}," ",{p:[4,5,268],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,294]}]}," ",{p:[5,5,328],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,357]}]}," ",{p:[7,5,386],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,411]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,472]},'"}']},f:[{t:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,491]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],293:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,663],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,695],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,735],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,768]}],state:[{t:2,r:"capacityPercentState",p:[26,71,801]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,827]},"%"]}]}]}," ",{p:[29,1,908],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,938],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,976],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,993]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1045]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1113]}]},"   [",{p:[34,6,1182],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1195]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1211]}]},"]"]}," ",{p:[36,3,1335],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1374],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1395]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1426]}]},f:[{t:2,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1447]},"W"]}]}," ",{p:[39,3,1509],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1548],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1587]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1682],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1716]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1812],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1902],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1935]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2047],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2085]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2212],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2246],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2252]},"W"]}]}]}," ",{p:[50,1,2329],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2360],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2398],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2415]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2470]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2540]}]},"   [",{p:[55,6,2608],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2621]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2638]}]},"]"]}," ",{p:[57,3,2745],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2785],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2806]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2838]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2860]},"W"]}]}," ",{p:[60,3,2923],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2963],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,3002]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3099],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3133]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3231],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3322],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3355]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3470],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3508]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3638],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3673],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3679]},"W"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],294:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,73]},"W"]}," ",{p:[5,3,126],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,164],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,170]},"° (",{t:2,r:"data.direction",p:[6,45,204]},")"]}]}," ",{p:[8,3,251],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,290],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,387],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,477],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,565],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,687],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,720],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,759],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,790]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,907],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,940]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1059],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1092]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1262],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1300],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1306]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1350]},")"]}]}," ",{p:[27,3,1399],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1437],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1535],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1631],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1720],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1807],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1901],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2088],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2169],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2222]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2267]},"Found"]}]}," ",{p:[43,2,2338],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2375],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2388]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2432]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],295:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,87],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,118]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,62]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,226],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,258],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,275]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,326]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,366]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,431]}]}]}," ",{p:[12,3,490],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,554],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,587]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,608]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,521]},{t:4,n:51,f:[{p:[16,4,667],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,744],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,779],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,823],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,829]},"°C"]}]}," ",{p:[24,2,894],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,937],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,943]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1031],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1073],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1112]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1218],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1252]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1357],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1450],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1483]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1587],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1625]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,1008]}," ",{p:[36,3,1754],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1808],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1847]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1956],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1997]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2106],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2140]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1783]},{t:4,n:51,f:[{p:[42,4,2258],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2264]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],296:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],297:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,42],t:7,e:"ui-notice",f:[{p:[3,5,59],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,179],t:7,e:"ui-notice",f:[{p:[8,5,196],t:7,e:"span",f:["Contents are being disinfected. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,153]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,369],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,386]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,437]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,351]}," ",{t:4,f:[{p:[14,27,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,536]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,590]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,499]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,692],t:7,e:"ui-notice",f:[{p:[18,9,713],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,665]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,793],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,832],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,849]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,896]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,992]}]}]}," ",{p:[25,9,1063],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1100],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1117]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1163]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1255]}]}]}," ",{p:[29,9,1324],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1378]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1424]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1516]}]}]}," ",{p:[33,9,1585],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1625],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1642]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1691]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1789]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1873],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1906]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],298:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],299:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,295],t:7,e:"ui-notice",f:[{p:[15,3,310],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,330]}," connected to a mask."]}]}," ",{p:[17,1,409],t:7,e:"ui-display",f:[{p:[18,3,425],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,467],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,501]}],state:[{t:2,r:"tankPressureState",p:[20,16,540]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,563]}," kPa"]}]}," ",{p:[22,3,631],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,674],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,687]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,721]}],value:[{t:2,r:"data.releasePressure",p:[24,14,764]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,790]}," kPa"]}]}," ",{p:[26,3,861],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,906],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,939]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1095],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1126]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1273],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1368],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1398]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],300:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{205:205}],301:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{205:205}],302:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,292],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,333],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,373],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,404]}]}," ",{p:[20,4,450],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,483]}]}," ",{p:[23,4,531],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,564],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,585]}],value:[{t:2,r:"adata.vr_avatar.health",p:[24,64,623]}],state:[{ --t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,658]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,699]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,738]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,307]},{t:4,n:51,f:[{p:[28,3,826],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,922],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,958],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,975]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1042]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1144],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1116]}," ",{t:4,f:[{p:[42,4,1267],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1240]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],303:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,42],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,61]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,70]}],labelcolor:[{t:2,r:"color",p:[3,80,117]}],candystripe:0,right:0},f:[{p:[4,7,154],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,195]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,208]}]}," ",{p:[5,7,252],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,295]},'"}']},f:["Pulse"]}," ",{p:[6,7,333],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,377]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,390]}]}]}],n:52,r:"data.wires",p:[2,3,16]}]}," ",{t:4,f:[{p:[11,3,508],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,555],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,567]}]}],n:52,r:"data.status",p:[12,5,526]}]}],n:50,r:"data.status",p:[10,1,485]}]},e.exports=a.extend(r.exports)},{205:205}],304:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(194),t(1),t(190),t(193);var r=t(305),i=e.interopRequireDefault(r),o=t(306),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(310)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(307),text:t(311),config:n.config,data:n.data,adata:n.data}}}))};var c=document.getElementById("data"),l=c.textContent,f=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(f,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var d=new p["default"]("FontAwesome");d.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,190:190,191:191,192:192,193:193,194:194,205:205,305:305,306:306,307:307,310:310,311:311,"babel/external-helpers":"babel/external-helpers"}],305:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(306),a=t(308);e.exports={components:{"ui-bar":t(206),"ui-button":t(207),"ui-display":t(208),"ui-input":t(209),"ui-linegraph":t(210),"ui-notice":t(211),"ui-section":t(213),"ui-subdisplay":t(214),"ui-tabs":t(215)},events:{enter:t(203).enter,space:t(203).space},transitions:{fade:t(204)},onconfig:function(){var e=this.get("config.interface"),n={airalarm:t(219),"airalarm/back":t(220),"airalarm/modes":t(221),"airalarm/scrubbers":t(222),"airalarm/status":t(223),"airalarm/thresholds":t(224),"airalarm/vents":t(225),airlock_electronics:t(226),apc:t(227),atmos_alert:t(228),atmos_control:t(229),atmos_filter:t(230),atmos_mixer:t(231),atmos_pump:t(232),brig_timer:t(233),bsa:t(234),canister:t(235),cargo:t(236),cellular_emporium:t(237),chem_dispenser:t(238),chem_heater:t(239),chem_master:t(240),clockwork_slab:t(241),codex_gigas:t(242),computer_fabricator:t(243),crayon:t(244),cryo:t(245),disposal_unit:t(246),dna_vault:t(247),eightball:t(248),emergency_shuttle_console:t(249),engraved_message:t(250),error:t(251),firealarm:t(252),gps:t(253),gulag_console:t(254),gulag_item_reclaimer:t(255),implantchair:t(256),intellicard:t(257),keycard_auth:t(258),labor_claim_console:t(259),language_menu:t(260),launchpad_remote:t(261),mech_bay_power_console:t(262),mulebot:t(263),ntnet_relay:t(264),ntos_ai_restorer:t(265),ntos_card:t(266),ntos_configuration:t(267),ntos_file_manager:t(268),ntos_main:t(269),ntos_net_chat:t(270),ntos_net_dos:t(271),ntos_net_downloader:t(272),ntos_net_monitor:t(273),ntos_net_transfer:t(274),ntos_power_monitor:t(275),ntos_revelation:t(276),ntos_station_alert:t(277),ntosheader:t(278),nuclear_bomb:t(279),pandemic:t(280),personal_crafting:t(281),portable_pump:t(282),portable_scrubber:t(283),power_monitor:t(284),radio:t(285),sat_control:t(286),shuttle_manipulator:t(287),"shuttle_manipulator/modification":t(288),"shuttle_manipulator/status":t(289),"shuttle_manipulator/templates":t(290),sleeper:t(291),slime_swap_body:t(292),smes:t(293),solar_control:t(294),space_heater:t(295),station_alert:t(296),suit_storage_unit:t(297),tank_dispenser:t(298),tanks:t(299),thermomachine:t(300),uplink:t(301),vr_sleeper:t(302),wires:t(303)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1874],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1884]}]}," ",{p:[57,1,1915],t:7,e:"main",f:[{p:[58,3,1925],t:7,e:"warnings"}," ",{p:[59,3,1940],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1990],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1963]}]},r.exports.components=r.exports.components||{};var i={warnings:t(218),titlebar:t(217),resize:t(212)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,306:306,308:308}],306:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],307:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],308:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(306)},{306:306}],309:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var u=s;a||u.textContent.toLowerCase().includes(e)?u.style.display="":u.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],310:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],311:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var u=Array(o),p=0;o>p;p++)u[p]=arguments[p+3];n.children=u}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(u){r("throw",u)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(u){return void n(u)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],283:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[13,3,461],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,493],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,510]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,561]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,618]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[22,7,787],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[22,38,818]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[21,5,759]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[26,3,938],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[27,4,969]}]}," ",{p:[29,3,1011],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[30,4,1045]}," kPa"]}],n:50,r:"data.holding",p:[25,3,914]},{t:4,n:51,f:[{p:[33,3,1119],t:7,e:"ui-section",f:[{p:[34,4,1136],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{205:205}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}," W"]}]}," ",{p:[52,5,1466],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1501],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1507]}," W"]}]}],r:"config.fancy"}]}," ",{p:[57,1,1578],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1608],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1633],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1670],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1709],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1746],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1785],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1827],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1868],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1953],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1972]}],nowrap:0},f:[{p:[69,7,1997],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2018]}," %"]}," ",{p:[70,7,2076],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].load)"},p:[70,28,2097]}," W"]}," ",{p:[71,7,2153],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2174],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2187]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2216]}]}]}," ",{p:[72,7,2263],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2284],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2297]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2320]}," [",{p:[72,87,2343],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2349]}]},"]"]}]}," ",{p:[73,7,2398],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2419],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2432]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2455]}," [",{p:[73,87,2478],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2484]}]},"]"]}]}," ",{p:[74,7,2533],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2554],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2567]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2590]}," [",{p:[74,87,2613],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2619]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1927]}]}]},e.exports=a.extend(r.exports)},{205:205}],285:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,177],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,236],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,270],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,287]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,338]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,413]}]}]}],n:50,r:"data.headset",p:[12,3,210]},{t:4,n:51,f:[{p:[19,5,494],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,533],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,550]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,604]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,685]}]}]}," ",{p:[24,5,769],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,805],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,822]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,873]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,948]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1064],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1121]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1173]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1250]}]}]}],n:50,r:"data.command",p:[30,3,1038]}]}," ",{p:[38,1,1342],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1374],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1439],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1445]}]}],n:50,r:"data.freqlock",p:[40,5,1410]},{t:4,n:51,f:[{p:[43,7,1495],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1534]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1646],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1680]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1793],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1864]}]}," ",{p:[46,7,1905],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1938]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2050],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2088]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2262],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2312],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2329]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2379]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2447]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2225]}," ",{t:4,f:[{p:[57,5,2578],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2673]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2730]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2806]},'"}']},f:[{t:2,r:"channel",p:[62,11,2833]}]},{p:[62,34,2856],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2615]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2534]}]}]},e.exports=a.extend(r.exports)},{205:205}],286:[function(t,e,n){ -+var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,168],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,209],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,231]}]}," ",{p:[10,9,253],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,274]}]}," ",{p:[11,9,298],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,331],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,374]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,384]}]}]}]}],n:52,r:"data.satellites",p:[7,2,138]}]}," ",{t:4,f:[{p:[18,1,528],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,576],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,597]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,641]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,674]}," %"]}," ",{p:[20,1,758],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,500]}]},e.exports=a.extend(r.exports)},{205:205}],287:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,200],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,215]}]},f:[{p:[6,2,233],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,256],t:7,e:"status"}]}," ",{p:[9,2,277],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,303],t:7,e:"templates"}]}," ",{p:[12,2,327],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,381],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,356]}," ",{t:4,f:[{p:[17,3,437],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,411]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(288),templates:t(290),status:t(289)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,288:288,289:289,290:290}],288:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,96],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,128]}]}],n:50,r:"data.selected.description",p:[2,3,57]}," ",{t:4,f:[{p:[6,5,224],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,256]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,185]}]}," ",{t:4,f:[{p:[11,3,361],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,398]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,444]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,526]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,482]}," ",{p:[16,5,580],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,649]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,328]},{t:4,f:[{p:[24,3,778],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,744]},{p:[27,1,847],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,902]},'"}']},f:["Preview"]}," ",{p:[31,1,961],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,1013]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1089],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{205:205}],289:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,27],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,46]}," (",{t:2,r:"id",p:[2,32,56]},")"]},f:[{t:2,r:"status",p:[3,5,71]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[5,8,109]},")"],n:50,r:"timer",p:[4,5,87]}," ",{p:[7,5,141],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[7,67,203]},'"}']},f:["Jump To"]}," ",{p:[10,5,252],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[10,53,300]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[10,70,317]}]},f:["Fast Travel"]}]}],n:52,r:"data.shuttles",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],290:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,74],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,85]}]},f:[{t:4,f:[{p:[5,9,135],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,154]}]},f:[{t:4,f:[{p:[7,13,209],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,241]}]}],n:50,r:"description",p:[6,11,176]}," ",{t:4,f:[{p:[10,13,333],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,365]}]}],n:50,r:"admin_notes",p:[9,11,300]}," ",{p:[13,11,426],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,499]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,537]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,630]}]}]}],n:52,r:"templates",p:[4,7,106]}]}],n:52,r:"data.templates",p:[2,3,44]}]}]},e.exports=a.extend(r.exports)},{205:205}],291:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{occupantStatState:function(){switch(this.get("data.occupant.stat")){case 0:return"good";case 1:return"average";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[15,1,280],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[16,3,313],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[17,3,346],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[17,9,352]}]}]}," ",{t:4,f:[{p:[20,5,466],t:7,e:"ui-section",a:{label:"State"},f:[{p:[21,7,500],t:7,e:"span",a:{"class":[{t:2,r:"occupantStatState",p:[21,20,513]}]},f:[{t:2,x:{r:["data.occupant.stat"],s:'_0==0?"Conscious":_0==1?"Unconcious":"Dead"'},p:[21,43,536]}]}]}," ",{p:[23,5,658],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,7,693],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[24,20,706]}],max:[{t:2,r:"data.occupant.maxHealth",p:[24,54,740]}],value:[{t:2,r:"data.occupant.health",p:[24,90,776]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[25,16,818]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[25,68,870]}]}]}," ",{t:4,f:[{p:[28,7,1107],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[28,26,1126]}]},f:[{p:[29,9,1147],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[29,30,1168]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[29,66,1204]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[29,103,1241]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[27,5,941]}," ",{p:[32,5,1328],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[33,9,1364],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[33,22,1377]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[33,68,1423]}]}]}," ",{p:[35,5,1506],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[36,9,1542],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[36,22,1555]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[36,68,1601]}]}]}," ",{p:[38,5,1685],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[40,11,1772],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[40,54,1815]}," units of ",{t:2,r:"name",p:[40,89,1850]}]},{p:[40,104,1865],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[39,9,1727]},{t:4,n:51,f:[{p:[42,11,1900],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[19,3,439]}]}," ",{p:[47,1,1996],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[48,2,2028],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[49,5,2059],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[49,22,2076]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[49,71,2125]}]}]}," ",{p:[51,3,2190],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[53,7,2251],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[53,38,2282]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[53,122,2366]},'"}']},f:[{t:2,r:"name",p:[53,132,2376]}]},{p:[53,152,2396],t:7,e:"br"}],n:52,r:"data.chems",p:[52,5,2223]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],292:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,44]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,66]}],candystripe:0,right:0},f:[{p:[3,5,105],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,132],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,145]}]},f:[{t:2,r:"status",p:[3,132,232]}]}]}," ",{p:[4,5,268],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,294]}]}," ",{p:[5,5,328],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,357]}]}," ",{p:[7,5,386],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,411]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,472]},'"}']},f:[{t:2,x:{r:["is_current"],s:'_0?"You Are Here":"Swap"'},p:[10,7,491]}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],293:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,663],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,695],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,735],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,768]}],state:[{t:2,r:"capacityPercentState",p:[26,71,801]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,827]},"%"]}]}]}," ",{p:[29,1,908],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,938],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,976],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,993]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1045]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1113]}]},"   [",{p:[34,6,1182],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1195]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1211]}]},"]"]}," ",{p:[36,3,1335],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1374],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1395]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1426]}]},f:[{t:2,x:{r:["adata.inputLevel"],s:"Math.round(_0)"},p:[37,78,1447]},"W"]}]}," ",{p:[39,3,1509],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1548],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1587]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1682],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1716]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1812],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1902],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1935]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2047],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2085]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2212],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2246],t:7,e:"span",f:[{t:2,x:{r:["adata.inputAvailable"],s:"Math.round(_0)"},p:[47,9,2252]},"W"]}]}]}," ",{p:[50,1,2329],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2360],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2398],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2415]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2470]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2540]}]},"   [",{p:[55,6,2608],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2621]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2638]}]},"]"]}," ",{p:[57,3,2745],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2785],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2806]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2838]}]},f:[{t:2,x:{r:["adata.outputLevel"],s:"Math.round(_0)"},p:[58,80,2860]},"W"]}]}," ",{p:[60,3,2923],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2963],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,3002]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3099],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3133]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3231],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3322],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3355]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3470],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3508]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3638],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3673],t:7,e:"span",f:[{t:2,x:{r:["adata.outputUsed"],s:"Math.round(_0)"},p:[68,9,3679]},"W"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],294:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,73]},"W"]}," ",{p:[5,3,126],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,164],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,170]},"° (",{t:2,r:"data.direction",p:[6,45,204]},")"]}]}," ",{p:[8,3,251],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,290],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,387],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,477],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,565],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,687],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,720],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,759],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,790]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,907],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,940]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1059],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1092]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1262],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1300],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1306]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1350]},")"]}]}," ",{p:[27,3,1399],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1437],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1535],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1631],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1720],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1807],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1901],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2088],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2169],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2222]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2267]},"Found"]}]}," ",{p:[43,2,2338],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2375],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2388]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2432]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],295:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,87],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,118]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,62]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,226],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,258],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,275]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,326]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,366]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,431]}]}]}," ",{p:[12,3,490],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,554],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,587]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,608]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,521]},{t:4,n:51,f:[{p:[16,4,667],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,744],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,779],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,823],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,829]},"°C"]}]}," ",{p:[24,2,894],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,937],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,943]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1031],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1073],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1112]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1218],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1252]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1357],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1450],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1483]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1587],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1625]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,1008]}," ",{p:[36,3,1754],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1808],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1847]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1956],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1997]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2106],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2140]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1783]},{t:4,n:51,f:[{p:[42,4,2258],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2264]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],296:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],297:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,42],t:7,e:"ui-notice",f:[{p:[3,5,59],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,179],t:7,e:"ui-notice",f:[{p:[8,5,196],t:7,e:"span",f:["Contents are being disinfected. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,153]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,369],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,386]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,437]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,351]}," ",{t:4,f:[{p:[14,27,519],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,536]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,590]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,499]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,692],t:7,e:"ui-notice",f:[{p:[18,9,713],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,665]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,793],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,832],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,849]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,896]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,992]}]}]}," ",{p:[25,9,1063],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1100],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1117]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1163]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1255]}]}]}," ",{p:[29,9,1324],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1378]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1424]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1516]}]}]}," ",{p:[33,9,1585],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1625],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1642]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1691]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1789]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1873],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1906]}],action:"uv"},f:["Disinfect"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{205:205}],298:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],299:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,295],t:7,e:"ui-notice",f:[{p:[15,3,310],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,330]}," connected to a mask."]}]}," ",{p:[17,1,409],t:7,e:"ui-display",f:[{p:[18,3,425],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,467],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,501]}],state:[{t:2,r:"tankPressureState",p:[20,16,540]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,563]}," kPa"]}]}," ",{p:[22,3,631],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,674],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,687]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,721]}],value:[{t:2,r:"data.releasePressure",p:[24,14,764]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,790]}," kPa"]}]}," ",{p:[26,3,861],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,906],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,939]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1095],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1126]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1273],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1368],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1398]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],300:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",style:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",style:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{205:205}],301:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{205:205}],302:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,292],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,333],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[17,4,373],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[18,5,404]}]}," ",{p:[20,4,450],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[21,5,483]}]}," ",{p:[23,4,531],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[24,5,564],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[24,26,585]}],value:[{t:2,r:"adata.vr_avatar.health", -+p:[24,64,623]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[24,99,658]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[24,140,699]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[24,179,738]}]}]}]}],n:50,r:"data.vr_avatar",p:[15,2,307]},{t:4,n:51,f:[{p:[28,3,826],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[32,2,922],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[33,3,958],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[33,20,975]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[34,4,1042]}," the VR Sleeper"]}," ",{t:4,f:[{p:[37,4,1144],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[36,3,1116]}," ",{t:4,f:[{p:[42,4,1267],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[41,3,1240]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],303:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,42],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,61]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,70]}],labelcolor:[{t:2,r:"color",p:[3,80,117]}],candystripe:0,right:0},f:[{p:[4,7,154],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,195]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,208]}]}," ",{p:[5,7,252],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,295]},'"}']},f:["Pulse"]}," ",{p:[6,7,333],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,377]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,390]}]}]}],n:52,r:"data.wires",p:[2,3,16]}]}," ",{t:4,f:[{p:[11,3,508],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,555],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,567]}]}],n:52,r:"data.status",p:[12,5,526]}]}],n:50,r:"data.status",p:[10,1,485]}]},e.exports=a.extend(r.exports)},{205:205}],304:[function(t,e,n){(function(e){"use strict";var n=t(205),a=e.interopRequireDefault(n);t(194),t(1),t(190),t(193);var r=t(305),i=e.interopRequireDefault(r),o=t(306),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(310)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(307),text:t(311),config:n.config,data:n.data,adata:n.data}}}))};var c=document.getElementById("data"),l=c.textContent,f=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(f,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var d=new p["default"]("FontAwesome");d.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,190:190,191:191,192:192,193:193,194:194,205:205,305:305,306:306,307:307,310:310,311:311,"babel/external-helpers":"babel/external-helpers"}],305:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(306),a=t(308);e.exports={components:{"ui-bar":t(206),"ui-button":t(207),"ui-display":t(208),"ui-input":t(209),"ui-linegraph":t(210),"ui-notice":t(211),"ui-section":t(213),"ui-subdisplay":t(214),"ui-tabs":t(215)},events:{enter:t(203).enter,space:t(203).space},transitions:{fade:t(204)},onconfig:function(){var e=this.get("config.interface"),n={airalarm:t(219),"airalarm/back":t(220),"airalarm/modes":t(221),"airalarm/scrubbers":t(222),"airalarm/status":t(223),"airalarm/thresholds":t(224),"airalarm/vents":t(225),airlock_electronics:t(226),apc:t(227),atmos_alert:t(228),atmos_control:t(229),atmos_filter:t(230),atmos_mixer:t(231),atmos_pump:t(232),brig_timer:t(233),bsa:t(234),canister:t(235),cargo:t(236),cellular_emporium:t(237),chem_dispenser:t(238),chem_heater:t(239),chem_master:t(240),clockwork_slab:t(241),codex_gigas:t(242),computer_fabricator:t(243),crayon:t(244),cryo:t(245),disposal_unit:t(246),dna_vault:t(247),eightball:t(248),emergency_shuttle_console:t(249),engraved_message:t(250),error:t(251),firealarm:t(252),gps:t(253),gulag_console:t(254),gulag_item_reclaimer:t(255),implantchair:t(256),intellicard:t(257),keycard_auth:t(258),labor_claim_console:t(259),language_menu:t(260),launchpad_remote:t(261),mech_bay_power_console:t(262),mulebot:t(263),ntnet_relay:t(264),ntos_ai_restorer:t(265),ntos_card:t(266),ntos_configuration:t(267),ntos_file_manager:t(268),ntos_main:t(269),ntos_net_chat:t(270),ntos_net_dos:t(271),ntos_net_downloader:t(272),ntos_net_monitor:t(273),ntos_net_transfer:t(274),ntos_power_monitor:t(275),ntos_revelation:t(276),ntos_station_alert:t(277),ntosheader:t(278),nuclear_bomb:t(279),pandemic:t(280),personal_crafting:t(281),portable_pump:t(282),portable_scrubber:t(283),power_monitor:t(284),radio:t(285),sat_control:t(286),shuttle_manipulator:t(287),"shuttle_manipulator/modification":t(288),"shuttle_manipulator/status":t(289),"shuttle_manipulator/templates":t(290),sleeper:t(291),slime_swap_body:t(292),smes:t(293),solar_control:t(294),space_heater:t(295),station_alert:t(296),suit_storage_unit:t(297),tank_dispenser:t(298),tanks:t(299),thermomachine:t(300),uplink:t(301),vr_sleeper:t(302),wires:t(303)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1874],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1884]}]}," ",{p:[57,1,1915],t:7,e:"main",f:[{p:[58,3,1925],t:7,e:"warnings"}," ",{p:[59,3,1940],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1990],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1963]}]},r.exports.components=r.exports.components||{};var i={warnings:t(218),titlebar:t(217),resize:t(212)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294,295:295,296:296,297:297,298:298,299:299,300:300,301:301,302:302,303:303,306:306,308:308}],306:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],307:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],308:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(306)},{306:306}],309:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var u=s;a||u.textContent.toLowerCase().includes(e)?u.style.display="":u.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],310:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],311:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var u=Array(o),p=0;o>p;p++)u[p]=arguments[p+3];n.children=u}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(u){r("throw",u)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(u){return void n(u)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(u){r=!0,i=u}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e Date: Mon, 5 Jun 2017 23:10:02 -0500 Subject: [PATCH 037/215] cleanup --- code/__DEFINES/status_effects.dm | 9 +++++++++ code/__DEFINES/status_effects.dm.rej | 13 ------------- 2 files changed, 9 insertions(+), 13 deletions(-) delete mode 100644 code/__DEFINES/status_effects.dm.rej diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 3b3736b4b5..6735ef95e9 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -40,3 +40,12 @@ #define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes #define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage + + +///////////// +// NEUTRAL // +///////////// + +#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark + +#define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target diff --git a/code/__DEFINES/status_effects.dm.rej b/code/__DEFINES/status_effects.dm.rej deleted file mode 100644 index b02f09d005..0000000000 --- a/code/__DEFINES/status_effects.dm.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm (rejected hunks) -@@ -42,3 +41,11 @@ - #define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes - - #define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage -+ -+///////////// -+// NEUTRAL // -+///////////// -+ -+#define STATUS_EFFECT_SIGILMARK /datum/status_effect/sigil_mark -+ -+#define STATUS_EFFECT_CRUSHERDAMAGETRACKING /datum/status_effect/crusher_damage //tracks total kinetic crusher damage on a target From 5f74de6bdf3084fbafaedb7bde77aa8638e6d107 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 23:12:15 -0500 Subject: [PATCH 038/215] cleanup --- code/datums/emotes.dm | 2 ++ code/datums/emotes.dm.rej | 10 ---------- 2 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 code/datums/emotes.dm.rej diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 47f3ccbe4f..d82e691622 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -38,6 +38,8 @@ if(findtext(msg, "%s")) msg = replacetext(msg, "%s", user.p_s()) + msg = replace_pronoun(user, msg) + var/mob/living/L = user for(var/obj/item/weapon/implant/I in L.implants) I.trigger(key, L) diff --git a/code/datums/emotes.dm.rej b/code/datums/emotes.dm.rej deleted file mode 100644 index b0f0f50adc..0000000000 --- a/code/datums/emotes.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/datums/emotes.dm b/code/datums/emotes.dm (rejected hunks) -@@ -35,6 +35,8 @@ - if(params && message_param) - msg = select_param(user, params) - -+ msg = replace_pronoun(user, msg) -+ - var/mob/living/L = user - for(var/obj/item/weapon/implant/I in L.implants) - I.trigger(key, L) From 2feab0a4110262b235fb86d376a402e25ae6a0fd Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 5 Jun 2017 23:18:40 -0500 Subject: [PATCH 039/215] cleanup --- code/game/objects/items/weapons/storage/belt.dm | 10 +++++----- .../objects/items/weapons/storage/belt.dm.rej | 10 ---------- tgstation.dme | 2 ++ tgstation.dme.rej | 15 --------------- 4 files changed, 7 insertions(+), 30 deletions(-) delete mode 100644 code/game/objects/items/weapons/storage/belt.dm.rej delete mode 100644 tgstation.dme.rej diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index f2e9ca9fc6..53e1a591de 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -200,7 +200,7 @@ /obj/item/weapon/storage/pill_bottle, /obj/item/weapon/ore, /obj/item/weapon/reagent_containers/food/drinks, - /obj/item/organ/hivelord_core, + /obj/item/organ/regenerative_core, /obj/item/device/wormhole_jaunter, /obj/item/weapon/storage/bag/plants, @@ -247,10 +247,10 @@ ) /obj/item/weapon/storage/belt/military - name = "chest rig" - desc = "A set of tactical webbing worn by Syndicate boarding parties." - icon_state = "explorer1" - item_state = "explorer1" + name = "chest rig" + desc = "A set of tactical webbing worn by Syndicate boarding parties." + icon_state = "explorer1" + item_state = "explorer1" max_w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/storage/belt/military/abductor diff --git a/code/game/objects/items/weapons/storage/belt.dm.rej b/code/game/objects/items/weapons/storage/belt.dm.rej deleted file mode 100644 index 7057ccddec..0000000000 --- a/code/game/objects/items/weapons/storage/belt.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm (rejected hunks) -@@ -200,7 +200,7 @@ - /obj/item/weapon/storage/pill_bottle, - /obj/item/weapon/ore, - /obj/item/weapon/reagent_containers/food/drinks, -- /obj/item/organ/hivelord_core, -+ /obj/item/organ/regenerative_core, - /obj/item/device/wormhole_jaunter, - /obj/item/weapon/storage/bag/plants, - /obj/item/stack/marker_beacon diff --git a/tgstation.dme b/tgstation.dme index b3613ec1f9..642499895a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1487,9 +1487,11 @@ #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mining\shelters.dm" #include "code\modules\mining\equipment\explorer_gear.dm" +#include "code\modules\mining\equipment\goliath_hide.dm" #include "code\modules\mining\equipment\kinetic_crusher.dm" #include "code\modules\mining\equipment\lazarus_injector.dm" #include "code\modules\mining\equipment\mineral_scanner.dm" +#include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\vendor_items.dm" #include "code\modules\mining\equipment\wormhole_jaunter.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index 6df2de4244..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -1446,11 +1446,13 @@ - #include "code\modules\mining\satchel_ore_boxdm.dm" - #include "code\modules\mining\shelters.dm" - #include "code\modules\mining\equipment\explorer_gear.dm" -+#include "code\modules\mining\equipment\goliath_hide.dm" - #include "code\modules\mining\equipment\kinetic_crusher.dm" - #include "code\modules\mining\equipment\lazarus_injector.dm" - #include "code\modules\mining\equipment\marker_beacons.dm" - #include "code\modules\mining\equipment\mineral_scanner.dm" - #include "code\modules\mining\equipment\mining_tools.dm" -+#include "code\modules\mining\equipment\regenerative_core.dm" - #include "code\modules\mining\equipment\resonator.dm" - #include "code\modules\mining\equipment\survival_pod.dm" - #include "code\modules\mining\equipment\vendor_items.dm" From 905bd168aae41aee17d534c8337c938b4c924400 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 6 Jun 2017 07:13:04 -0500 Subject: [PATCH 040/215] commit --- code/__HELPERS/files.dm | 12 ++++++++---- code/controllers/subsystem/blackbox.dm | 5 +++-- code/modules/admin/DB_ban/functions.dm | 2 +- code/modules/client/client_procs.dm | 3 ++- code/world.dm | 3 +-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index 83a026665e..fba6a6001d 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -3,7 +3,7 @@ for(var/file in args) src << browse_rsc(file) -/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list(".txt",".log",".htm")) +/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html")) var/path = root for(var/i=0, iError: browse_files(): File not found/Invalid file([path]).") return diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index f13f8f69ec..7dd384e697 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -27,7 +27,8 @@ SUBSYSTEM_DEF(blackbox) if(M.client) playercount += 1 var/admincount = GLOB.admins.len - var/datum/DBQuery/query_record_playercount = SSdbcore.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', COALESCE(INET_ATON('[world.internet_address]'), 0), '[world.port]')") + var/datum/DBQuery/query_record_playercount = SSdbcore.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]')") + query_record_playercount.Execute() query_record_playercount.Execute() /datum/controller/subsystem/blackbox/Recover() @@ -176,7 +177,7 @@ SUBSYSTEM_DEF(blackbox) var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") var/map = sanitizeSQL(SSmapping.config.map_name) - var/datum/DBQuery/query_report_death = SSdbcore.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', COALESCE(INET_ATON('[world.internet_address]'), 0), '[world.port]')") + var/datum/DBQuery/query_report_death = SSdbcore.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]')") query_report_death.Execute() diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index 3af5e31687..33baff0834 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -122,7 +122,7 @@ computerid = "0" if(!ip) ip = "0.0.0.0" - var/sql = "INSERT INTO [format_table_name("ban")] (`bantime`,`server_ip`,`server_port`,`round_id`,`bantype`,`reason`,`job`,`duration`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`) VALUES (Now(), COALESCE(INET_ATON('[world.internet_address]'), 0), '[world.port]', '[GLOB.round_id]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', INET_ATON('[ip]'), '[a_ckey]', '[a_computerid]', INET_ATON('[a_ip]'), '[who]', '[adminwho]')" + var/sql = "INSERT INTO [format_table_name("ban")] (`bantime`,`server_ip`,`server_port`,`round_id`,`bantype`,`reason`,`job`,`duration`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`) VALUES (Now(), INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]', '[GLOB.round_id]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', INET_ATON('[ip]'), '[a_ckey]', '[a_computerid]', INET_ATON('[a_ip]'), '[who]', '[adminwho]')" var/datum/DBQuery/query_add_ban = SSdbcore.NewQuery(sql) if(!query_add_ban.warn_execute()) return diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index fc21e9e0d2..d5fb4cf771 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -430,7 +430,8 @@ GLOBAL_LIST(external_rsc_urls) if(!SSdbcore.Connect()) return var/sql_ckey = sanitizeSQL(src.ckey) - var/datum/DBQuery/query_get_related_ip = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ip = INET_ATON('[address]') AND ckey != '[sql_ckey]'") + var/datum/DBQuery/query_log_connection = SSdbcore.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`server_ip`,`server_port`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')),'[world.port]','[sql_ckey]',INET_ATON('[sql_ip]'),'[sql_computerid]')") + query_log_connection.Execute() query_get_related_ip.Execute() related_accounts_ip = "" while(query_get_related_ip.NextRow()) diff --git a/code/world.dm b/code/world.dm index d0a353946a..b7beb52d4d 100644 --- a/code/world.dm +++ b/code/world.dm @@ -60,9 +60,8 @@ /world/proc/SetRoundID() if(config.sql_enabled) if(SSdbcore.Connect()) - log_world("Database connection established.") - var/datum/DBQuery/query_round_start = SSdbcore.NewQuery("INSERT INTO [format_table_name("round")] (start_datetime, server_ip, server_port) VALUES (Now(), COALESCE(INET_ATON('[world.internet_address]'), 0), '[world.port]')") + var/datum/DBQuery/query_round_start = SSdbcore.NewQuery("INSERT INTO [format_table_name("round")] (start_datetime, server_ip, server_port) VALUES (Now(), INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]')") query_round_start.Execute() var/datum/DBQuery/query_round_last_id = SSdbcore.NewQuery("SELECT LAST_INSERT_ID()") query_round_last_id.Execute() From 369d8f114247d0fb872b00c27aa24b32c54798d6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 07:13:05 -0500 Subject: [PATCH 041/215] Fixes 28060 : emergency shields have a hit effect instead of setting opacity to 1 --- code/game/machinery/shieldgen.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 19fcb0e675..c54b6fab77 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -49,9 +49,7 @@ /obj/structure/emergency_shield/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() if(.) //damage was dealt - set_opacity(1) - spawn(20) - set_opacity(0) + new /obj/effect/temp_visual/impact_effect/ion(loc) /obj/structure/emergency_shield/sanguine name = "sanguine barrier" From 7ef70f6c952c3ff0cd4625fa3177cbf8be831e8f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 07:15:12 -0500 Subject: [PATCH 042/215] Fixes projectile fields blocking clicks --- code/modules/fields/peaceborg_dampener.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/fields/peaceborg_dampener.dm b/code/modules/fields/peaceborg_dampener.dm index 5d2d2829a9..ed7a3737ee 100644 --- a/code/modules/fields/peaceborg_dampener.dm +++ b/code/modules/fields/peaceborg_dampener.dm @@ -54,6 +54,7 @@ var/obj/effect/abstract/proximity_checker/advanced/F = edge_turfs[T] F.appearance = I.appearance F.invisibility = 0 + F.mouse_opacity = 0 F.layer = 5 /datum/proximity_monitor/advanced/peaceborg_dampener/cleanup_edge_turf(turf/T) From dbb233b874fc47e8ec76db7d6d069c1d1c3ceb95 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 6 Jun 2017 07:49:18 -0500 Subject: [PATCH 043/215] missed a few things --- code/controllers/subsystem/blackbox.dm | 1 - code/modules/client/client_procs.dm | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 7dd384e697..287e04abd9 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -28,7 +28,6 @@ SUBSYSTEM_DEF(blackbox) playercount += 1 var/admincount = GLOB.admins.len var/datum/DBQuery/query_record_playercount = SSdbcore.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]')") - query_record_playercount.Execute() query_record_playercount.Execute() /datum/controller/subsystem/blackbox/Recover() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index d5fb4cf771..fc21e9e0d2 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -430,8 +430,7 @@ GLOBAL_LIST(external_rsc_urls) if(!SSdbcore.Connect()) return var/sql_ckey = sanitizeSQL(src.ckey) - var/datum/DBQuery/query_log_connection = SSdbcore.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`server_ip`,`server_port`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')),'[world.port]','[sql_ckey]',INET_ATON('[sql_ip]'),'[sql_computerid]')") - query_log_connection.Execute() + var/datum/DBQuery/query_get_related_ip = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ip = INET_ATON('[address]') AND ckey != '[sql_ckey]'") query_get_related_ip.Execute() related_accounts_ip = "" while(query_get_related_ip.NextRow()) From f9bb31b5e7ef28379c05c054dbd5b998777e2be0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 09:00:34 -0500 Subject: [PATCH 044/215] Automatic changelog generation for PR #1244 [ci skip] --- html/changelogs/AutoChangeLog-pr-1244.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1244.yml diff --git a/html/changelogs/AutoChangeLog-pr-1244.yml b/html/changelogs/AutoChangeLog-pr-1244.yml new file mode 100644 index 0000000000..cb3ce07ed9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1244.yml @@ -0,0 +1,5 @@ +author: "Joan" +delete-after: True +changes: + - rscadd: "The kinetic crusher can now gain bonus effects via trophy items gained by killing bosses with it." + - rscadd: "Yes, you do have to kill the boss primarily doing damage via the kinetic crusher, or you won't get the trophy item and the bonus effect it grants." From 629a4171777428375b99ed3b3a36a689a10791f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 09:01:35 -0500 Subject: [PATCH 045/215] Automatic changelog generation for PR #1274 [ci skip] --- html/changelogs/AutoChangeLog-pr-1274.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1274.yml diff --git a/html/changelogs/AutoChangeLog-pr-1274.yml b/html/changelogs/AutoChangeLog-pr-1274.yml new file mode 100644 index 0000000000..498a1c03ea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1274.yml @@ -0,0 +1,5 @@ +author: "Steelpoint" +delete-after: True +changes: + - rscadd: "Central Command has listened to complaints and, as such, has now stationed \"real\" Private Security Officers at centcom docks." + - rscadd: "A new Nanotrasen Security Officer NPC variant is available to admins, this 'peaceful' version will only attack people who attack it first. Great for keeping order." From 98e2a659f4224e98874c2bf243182624571f3974 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 10:34:58 -0500 Subject: [PATCH 046/215] Hang up holocalls with an action --- code/datums/holocall.dm | 15 +++++++++++++++ code/datums/holocall.dm.rej | 10 ++++++++++ code/game/machinery/hologram.dm | 15 --------------- 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 code/datums/holocall.dm.rej diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 8ad760ef8e..ccfb39637c 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -16,6 +16,7 @@ var/mob/camera/aiEye/remote/holo/eye //user's eye, once connected var/obj/effect/overlay/holo_pad_hologram/hologram //user's hologram, once connected + var/datum/action/innate/end_holocall/hangup //hangup action var/call_start_time @@ -140,6 +141,8 @@ user.reset_perspective(eye) eye.setLoc(H.loc) + hangup = new(eye, src) + //Checks the validity of a holocall and qdels itself if it's not. Returns TRUE if valid, FALSE otherwise /datum/holocall/proc/Check() for(var/I in dialed_holopads) @@ -162,3 +165,15 @@ if(!.) testing("Holocall Check fail") qdel(src) + +/datum/action/innate/end_holocall + name = "End Holocall" + button_icon_state = "camera_off" + var/datum/holocall/hcall + +/datum/action/innate/end_holocall/New(Target, datum/holocall/HC) + ..() + hcall = HC + +/datum/action/innate/end_holocall/Activate() + hcall.Disconnect(hcall.calling_holopad) diff --git a/code/datums/holocall.dm.rej b/code/datums/holocall.dm.rej new file mode 100644 index 0000000000..08110adedc --- /dev/null +++ b/code/datums/holocall.dm.rej @@ -0,0 +1,10 @@ +diff a/code/datums/holocall.dm b/code/datums/holocall.dm (rejected hunks) +@@ -42,6 +43,8 @@ + + //cleans up ALL references :) + /datum/holocall/Destroy() ++ QDEL_NULL(hangup) ++ + var/user_good = !QDELETED(user) + if(user_good) + user.reset_perspective() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index e58b5e8468..d0303d47f6 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -105,26 +105,11 @@ Possible to do for anyone motivated enough: return return ..() -/obj/machinery/holopad/proc/CheckCallClose() - for(var/I in holo_calls) - var/datum/holocall/HC = I - if(usr == HC.eye) - HC.Disconnect(HC.calling_holopad) //disconnect via clicking the called holopad - return TRUE - return FALSE - -/obj/machinery/holopad/Click(location,control,params) - if(!CheckCallClose()) - return ..() - /obj/machinery/holopad/AltClick(mob/living/carbon/human/user) if(isAI(user)) hangup_all_calls() return - if(!CheckCallClose()) - interact(user) - /obj/machinery/holopad/interact(mob/living/carbon/human/user) //Carn: Hologram requests. if(!istype(user)) return From 5b535144524b64b7179a7f060543bbc502049d8c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 10:40:10 -0500 Subject: [PATCH 047/215] Hulks now take 10 hits to destroy dominators up from 2 --- code/game/gamemodes/gang/dominator.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 772db77d63..8b0903f4a6 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -1,5 +1,6 @@ #define DOM_BLOCKED_SPAM_CAP 6 #define DOM_REQUIRED_TURFS 30 +#define DOM_HULK_HITS_REQUIRED 10 /obj/machinery/dominator name = "dominator" @@ -20,6 +21,9 @@ var/datum/effect_system/spark_spread/spark_system var/obj/effect/countdown/dominator/countdown +/obj/machinery/dominator/hulk_damage() + return (max_integrity - integrity_failure) / DOM_HULK_HITS_REQUIRED + /proc/dominator_excessive_walls(atom/A) var/open = 0 for(var/turf/T in view(3, A)) From 8273877b23a44f7e52578173deeef9d8a6f2baa9 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 6 Jun 2017 13:05:38 -0500 Subject: [PATCH 048/215] Update holocall.dm --- code/datums/holocall.dm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index ccfb39637c..4e7490f8ee 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -1,4 +1,3 @@ - #define HOLOPAD_MAX_DIAL_TIME 200 /mob/camera/aiEye/remote/holo/setLoc() @@ -44,15 +43,22 @@ //cleans up ALL references :) /datum/holocall/Destroy() - if(!QDELETED(user)) + QDEL_NULL(hangup) + + var/user_good = !QDELETED(user) + if(user_good) user.reset_perspective() - if(user.client) + user.remote_control = null + + if(!QDELETED(eye)) + if(user_good && user.client) for(var/datum/camerachunk/chunk in eye.visibleCameraChunks) chunk.remove(eye) - user.remote_control = null - user = null - QDEL_NULL(eye) - + qdel(eye) + eye = null + + user = null + if(hologram) hologram.HC = null hologram = null From 60f759e67489bd92b4ee3f1c2a0305cac10a3fba Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 13:26:07 -0500 Subject: [PATCH 049/215] Graceful shutdown now asks the server to kill it --- code/modules/server_tools/server_tools.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm index 0594ee810f..b9af612cc7 100644 --- a/code/modules/server_tools/server_tools.dm +++ b/code/modules/server_tools/server_tools.dm @@ -10,18 +10,20 @@ GLOBAL_PROTECT(reboot_mode) /world/proc/IRCBroadcast(msg) ExportService("[SERVICE_REQUEST_IRC_BROADCAST] [msg]") +/world/proc/ServiceEndProcess() + log_world("Sending shutdown request!"); + sleep(1) //flush the buffers + ExportService(SERVICE_REQUEST_KILL_PROCESS) + //called at the exact moment the world is supposed to reboot /world/proc/ServiceReboot() switch(GLOB.reboot_mode) if(REBOOT_MODE_HARD) to_chat(src, "Hard reboot triggered, you will automatically reconnect...") - log_world("Sending shutdown request!"); - sleep(1) //flush the buffers - ExportService(SERVICE_REQUEST_KILL_PROCESS) + ServiceEndProcess() if(REBOOT_MODE_SHUTDOWN) to_chat(src, "The server is shutting down...") - log_world("Deleting world") - qdel(src) + ServiceEndProcess() /world/proc/ServiceCommand(list/params) var/sCK = RunningService() From d9d9c985480bda49c35d0f64aa4a23f2908cce64 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 13:28:19 -0500 Subject: [PATCH 050/215] Adds temp index to query for converting to rounds --- SQL/database_changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index d28b33a8eb..5d3c3ccec2 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -5,11 +5,13 @@ Once created this table is populated with rows from the `feedback` table. START TRANSACTION; CREATE TABLE `feedback`.`round` (`id` INT(11) NOT NULL AUTO_INCREMENT, `start_datetime` DATETIME NOT NULL, `end_datetime` DATETIME NULL, `server_ip` INT(10) UNSIGNED NOT NULL, `server_port` SMALLINT(5) UNSIGNED NOT NULL, `commit_hash` CHAR(40) NULL, `game_mode` VARCHAR(32) NULL, `game_mode_result` VARCHAR(64) NULL, `end_state` VARCHAR(64) NULL, `shuttle_name` VARCHAR(64) NULL, `map_name` VARCHAR(32) NULL, `station_name` VARCHAR(80) NULL, PRIMARY KEY (`id`)); +ALTER TABLE `feedback`.`feedback` ADD INDEX `tmp` (`round_id` ASC, `var_name` ASC); INSERT INTO `feedback`.`round` (`id`, `start_datetime`, `end_datetime`, `server_ip`, `server_port`, `commit_hash`, `game_mode`, `game_mode_result`, `end_state`, `shuttle_name`, `map_name`, `station_name`) SELECT DISTINCT ri.round_id, IFNULL(STR_TO_DATE(st.details,'%a %b %e %H:%i:%s %Y'), TIMESTAMP(0)), STR_TO_DATE(et.details,'%a %b %e %H:%i:%s %Y'), IFNULL(INET_ATON(SUBSTRING_INDEX(IF(si.details = '', '0', IF(SUBSTRING_INDEX(si.details, ':', 1) LIKE '%_._%', si.details, '0')), ':', 1)), INET_ATON(0)), IFNULL(IF(si.details LIKE '%:_%', CAST(SUBSTRING_INDEX(si.details, ':', -1) AS UNSIGNED), '0'), '0'), ch.details, gm.details, mr.details, IFNULL(es.details, ep.details), ss.details, mn.details, sn.details FROM `feedback`.`feedback`AS ri LEFT JOIN `feedback`.`feedback` AS st ON ri.round_id = st.round_id AND st.var_name = "round_start" LEFT JOIN `feedback`.`feedback` AS et ON ri.round_id = et.round_id AND et.var_name = "round_end" LEFT JOIN `feedback`.`feedback` AS si ON ri.round_id = si.round_id AND si.var_name = "server_ip" LEFT JOIN `feedback`.`feedback` AS ch ON ri.round_id = ch.round_id AND ch.var_name = "revision" LEFT JOIN `feedback`.`feedback` AS gm ON ri.round_id = gm.round_id AND gm.var_name = "game_mode" LEFT JOIN `feedback`.`feedback` AS mr ON ri.round_id = mr.round_id AND mr.var_name = "round_end_result" LEFT JOIN `feedback`.`feedback` AS es ON ri.round_id = es.round_id AND es.var_name = "end_state" LEFT JOIN `feedback`.`feedback` AS ep ON ri.round_id = ep.round_id AND ep.var_name = "end_proper" LEFT JOIN `feedback`.`feedback` AS ss ON ri.round_id = ss.round_id AND ss.var_name = "emergency_shuttle" LEFT JOIN `feedback`.`feedback` AS mn ON ri.round_id = mn.round_id AND mn.var_name = "map_name" LEFT JOIN `feedback`.`feedback` AS sn ON ri.round_id = sn.round_id AND sn.var_name = "station_renames"; +ALTER TABLE `feedback`.`feedback` DROP INDEX `tmp`; COMMIT; It's not necessary to delete the rows from the `feedback` table but henceforth these datapoints will be in the `round` table. From c5143880d2de455bd83131731cd87267b58d9c19 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 6 Jun 2017 13:28:23 -0500 Subject: [PATCH 051/215] Fixes logged out spawning new_players --- code/controllers/subsystem/ticker.dm | 2 +- code/modules/mob/dead/new_player/new_player.dm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index ab0c39832f..863cd11957 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -438,7 +438,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/transfer_characters() var/list/livings = list() - for(var/mob/dead/new_player/player in GLOB.player_list) + for(var/mob/dead/new_player/player in GLOB.mob_list) var/mob/living = player.transfer_character() if(living) qdel(player) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index dab0cca302..cb76cb29f1 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -140,8 +140,7 @@ observer.name = observer.real_name observer.update_icon() observer.stop_sound_channel(CHANNEL_LOBBYMUSIC) - qdel(mind) - + QDEL_NULL(mind) qdel(src) return 1 @@ -352,7 +351,6 @@ if(SHUTTLE_CALL) if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) SSticker.mode.make_antag_chance(humanc) - qdel(src) /mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee) //TODO: figure out a way to exclude wizards/nukeops/demons from this. @@ -451,6 +449,8 @@ if(.) new_character.key = key //Manually transfer the key to log them in new_character.stop_sound_channel(CHANNEL_LOBBYMUSIC) + new_character = null + qdel(src) /mob/dead/new_player/proc/ViewManifest() var/dat = "" From ccd1235599877ac77563c635262f12baa4e846b4 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 6 Jun 2017 14:48:19 -0500 Subject: [PATCH 052/215] testing --- code/modules/admin/whitelist.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/whitelist.dm b/code/modules/admin/whitelist.dm index 934e47aa23..d6e8fc908f 100644 --- a/code/modules/admin/whitelist.dm +++ b/code/modules/admin/whitelist.dm @@ -1,11 +1,11 @@ -#define WHITELISTFILE "config/whitelist.txt" +#define WHITELISTFILE "config/whitelist.txt, gamedata/config/whitelist.txt" GLOBAL_LIST(whitelist) GLOBAL_PROTECT(whitelist) /proc/load_whitelist() GLOB.whitelist = list() - for(var/line in world.file2list(WHITELISTFILE)) + for(var/line in world.file2list(WHITELISTFILE)) if(!line) continue if(findtextEx(line,"#",1,2)) From 2e75f2e61cb328a0c7644b9187e20cf4e03001b8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 03:06:05 -0500 Subject: [PATCH 053/215] gas miners only update overlays when they actually need to --- .../atmospherics/machinery/other/miner.dm | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index d12204d8ad..20439e5c2b 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -29,6 +29,10 @@ idle_power_usage = 150 active_power_usage = 2000 +/obj/machinery/atmospherics/miner/Initialize() + . = ..() + set_active(active) //Force overlay update. + /obj/machinery/atmospherics/miner/examine(mob/user) ..() if(broken) @@ -40,31 +44,41 @@ var/turf/T = get_turf(src) if(!isopenturf(T)) broken_message = "VENT BLOCKED" - broken = TRUE + set_broken(TRUE) return FALSE var/turf/open/OT = T if(OT.planetary_atmos) broken_message = "DEVICE NOT ENCLOSED IN A PRESSURIZED ENVIRONMENT" - broken = TRUE + set_broken(TRUE) return FALSE if(isspaceturf(T)) broken_message = "AIR VENTING TO SPACE" - broken = TRUE + set_broken(TRUE) return FALSE var/datum/gas_mixture/G = OT.return_air() if(G.return_pressure() > (max_ext_kpa - ((spawn_mol*spawn_temp*R_IDEAL_GAS_EQUATION)/(CELL_VOLUME)))) broken_message = "EXTERNAL PRESSURE OVER THRESHOLD" - broken = TRUE + set_broken(TRUE) return FALSE if(G.total_moles() > max_ext_mol) broken_message = "EXTERNAL AIR CONCENTRATION OVER THRESHOLD" - broken = TRUE + set_broken(TRUE) return FALSE if(broken) - broken = FALSE + set_broken(FALSE) broken_message = "" return TRUE +/obj/machinery/atmospherics/miner/proc/set_active(setting) + if(active != setting) + active = setting + update_icon() + +/obj/machinery/atmospherics/miner/proc/set_broken(setting) + if(broken != setting) + broken = setting + update_icon() + /obj/machinery/atmospherics/miner/proc/update_power() if(!active) active_power_usage = idle_power_usage @@ -96,7 +110,7 @@ return FALSE /obj/machinery/atmospherics/miner/update_icon() - overlays.Cut() + cut_overlays() if(broken) add_overlay("broken") else if(active) @@ -106,7 +120,6 @@ /obj/machinery/atmospherics/miner/process() update_power() - update_icon() check_operation() if(active && !broken) if(isnull(spawn_id)) From 972532926883413cb377b8f193df080dc7316049 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 03:06:15 -0500 Subject: [PATCH 054/215] A large and unasked for repath and improvement of accessories (formerly ties, but actually armbands and medals) --- _maps/RandomZLevels/centcomAway.dmm | 4 +- .../map_files/Deltastation/DeltaStation2.dmm | 12 +- _maps/map_files/MetaStation/MetaStation.dmm | 6 +- _maps/map_files/generic/Centcomm.dmm | 16 +- code/game/gamemodes/objective_items.dm | 2 +- code/game/machinery/vending.dm | 4 +- code/game/objects/effects/spawners/bundle.dm | 4 +- .../objects/items/weapons/storage/boxes.dm | 2 +- .../objects/items/weapons/storage/lockbox.dm | 17 +- .../crates_lockers/closets/job_closets.dm | 12 +- .../crates_lockers/closets/secure/security.dm | 10 +- code/modules/cargo/packs.dm | 2 +- code/modules/clothing/clothing.dm | 65 ++--- .../clothing/neck/{ties.dm => neck.dm} | 15 +- code/modules/clothing/outfits/standard.dm | 2 +- code/modules/clothing/under/accessories.dm | 256 ++++++++++++++++++ code/modules/clothing/under/ties.dm | 60 ++-- code/modules/crafting/recipes.dm | 2 +- code/modules/jobs/job_types/civilian.dm | 2 +- code/modules/jobs/job_types/security.dm | 14 +- .../mob/living/carbon/human/examine.dm | 12 +- .../modules/spells/spell_types/devil_boons.dm | 2 +- icons/mob/accessories.dmi | Bin 0 -> 7735 bytes icons/mob/ties.dmi | Bin 10864 -> 0 bytes icons/obj/clothing/accessories.dmi | Bin 0 -> 6954 bytes icons/obj/clothing/neck.dmi | Bin 2698 -> 2555 bytes icons/obj/clothing/ties.dmi | Bin 12457 -> 0 bytes tgstation.dme.rej | 10 + 28 files changed, 395 insertions(+), 136 deletions(-) rename code/modules/clothing/neck/{ties.dm => neck.dm} (92%) create mode 100644 code/modules/clothing/under/accessories.dm create mode 100644 icons/mob/accessories.dmi delete mode 100644 icons/mob/ties.dmi create mode 100644 icons/obj/clothing/accessories.dmi delete mode 100644 icons/obj/clothing/ties.dmi create mode 100644 tgstation.dme.rej diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 8fab986fdb..97b8381ff2 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -3502,7 +3502,7 @@ /area/awaymission/centcomAway/general) "kN" = ( /obj/structure/table/wood, -/obj/item/clothing/tie/medal, +/obj/item/clothing/accessory/medal, /turf/open/floor/carpet, /area/awaymission/centcomAway/general) "kO" = ( @@ -3516,7 +3516,7 @@ /area/awaymission/centcomAway/general) "kQ" = ( /obj/structure/table/wood, -/obj/item/clothing/tie/medal/gold, +/obj/item/clothing/accessory/medal/gold, /turf/open/floor/carpet, /area/awaymission/centcomAway/general) "kR" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 62311b4885..4b5ab0529d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -30611,11 +30611,11 @@ "blx" = ( /obj/structure/table/reinforced, /obj/item/weapon/clipboard, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/armband/deputy, /obj/item/weapon/reagent_containers/food/snacks/donut/jelly/cherryjelly, /turf/open/floor/plasteel/red/side{ dir = 8 @@ -103271,7 +103271,7 @@ /obj/item/weapon/wirerod, /obj/item/weapon/wrench, /obj/item/clothing/under/waiter, -/obj/item/clothing/tie/waistcoat, +/obj/item/clothing/accessory/waistcoat, /obj/structure/sign/poster/contraband/random{ pixel_x = -32 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 9290c25c95..e59ada0081 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -14011,7 +14011,7 @@ name = "Station Intercom (General)"; pixel_y = 28 }, -/obj/item/clothing/tie/waistcoat, +/obj/item/clothing/accessory/waistcoat, /obj/item/clothing/suit/toggle/lawyer/black, /obj/item/clothing/under/suit_jacket/red, /obj/item/clothing/neck/tie/black, @@ -15128,7 +15128,7 @@ contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen) }, /obj/item/weapon/storage/backpack/dufflebag{ - contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); + contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo" @@ -57182,7 +57182,7 @@ "ccz" = ( /obj/item/weapon/wrench, /obj/item/clothing/suit/apron, -/obj/item/clothing/tie/armband/hydro, +/obj/item/clothing/accessory/armband/hydro, /obj/structure/table/glass, /obj/effect/turf_decal/stripes/line{ dir = 9 diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index d7df57e8ee..ac4d218ce2 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -5590,8 +5590,8 @@ /obj/item/clothing/under/skirt/black, /obj/item/clothing/under/shorts/black, /obj/item/clothing/under/pants/track, -/obj/item/clothing/tie/armband/deputy, -/obj/item/clothing/tie/waistcoat, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/clothing/accessory/waistcoat, /obj/item/clothing/shoes/jackboots, /obj/item/clothing/shoes/laceup, /obj/item/clothing/neck/stripedredscarf, @@ -11175,7 +11175,7 @@ /obj/structure/rack, /obj/item/clothing/head/that, /obj/item/clothing/under/suit_jacket, -/obj/item/clothing/tie/waistcoat, +/obj/item/clothing/accessory/waistcoat, /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) "BI" = ( @@ -11379,7 +11379,7 @@ /obj/structure/sign/goldenplaque{ pixel_y = 32 }, -/obj/item/clothing/tie/lawyers_badge{ +/obj/item/clothing/accessory/lawyers_badge{ desc = "A badge of upmost glory."; name = "thunderdome badge" }, @@ -11400,7 +11400,7 @@ /obj/structure/sign/goldenplaque{ pixel_y = 32 }, -/obj/item/clothing/tie/medal/silver{ +/obj/item/clothing/accessory/medal/silver{ pixel_y = 5 }, /turf/open/floor/plasteel/grimy, @@ -11605,11 +11605,11 @@ name = "Thunderdome Plaque"; pixel_y = -32 }, -/obj/item/clothing/tie/medal/gold{ +/obj/item/clothing/accessory/medal/gold{ pixel_x = 3; pixel_y = 5 }, -/obj/item/clothing/tie/medal/gold, +/obj/item/clothing/accessory/medal/gold, /turf/open/floor/plasteel/grimy, /area/tdome/tdomeobserve) "CF" = ( @@ -11625,7 +11625,7 @@ name = "Thunderdome Plaque"; pixel_y = -32 }, -/obj/item/clothing/tie/medal{ +/obj/item/clothing/accessory/medal{ pixel_y = 5 }, /turf/open/floor/plasteel/grimy, diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 5dfb0b5515..29b75d75d1 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -43,7 +43,7 @@ /datum/objective_item/steal/capmedal name = "the medal of captaincy" - targetitem = /obj/item/clothing/tie/medal/gold/captain + targetitem = /obj/item/clothing/accessory/medal/gold/captain difficulty = 5 excludefromjob = list("Captain") diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 6c86899cf0..ba1717485e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -995,7 +995,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/head/helmet/gladiator = 1,/obj/item/clothing/under/gimmick/rank/captain/suit = 1,/obj/item/clothing/head/flatcap = 1, /obj/item/clothing/suit/toggle/labcoat/mad = 1,/obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/under/schoolgirl = 1,/obj/item/clothing/under/schoolgirl/red = 1,/obj/item/clothing/under/schoolgirl/green = 1,/obj/item/clothing/under/schoolgirl/orange = 1,/obj/item/clothing/head/kitty = 1,/obj/item/clothing/under/skirt/black = 1,/obj/item/clothing/head/beret = 1, - /obj/item/clothing/tie/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/tie/waistcoat = 1, + /obj/item/clothing/accessory/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/accessory/waistcoat = 1, /obj/item/clothing/glasses/monocle =1,/obj/item/clothing/head/bowler = 1,/obj/item/weapon/cane = 1,/obj/item/clothing/under/sl_suit = 1, /obj/item/clothing/mask/fakemoustache = 1,/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,/obj/item/clothing/head/plaguedoctorhat = 1,/obj/item/clothing/mask/gas/plaguedoctor = 1, /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/owl = 1,/obj/item/clothing/mask/gas/owl_mask = 1, @@ -1136,7 +1136,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/clothing/neck/scarf/purple=1,/obj/item/clothing/neck/scarf/yellow=1,/obj/item/clothing/neck/scarf/orange=1, /obj/item/clothing/neck/scarf/cyan=1,/obj/item/clothing/neck/scarf=1,/obj/item/clothing/neck/scarf/black=1, /obj/item/clothing/neck/scarf/zebra=1,/obj/item/clothing/neck/scarf/christmas=1,/obj/item/clothing/neck/stripedredscarf=1, - /obj/item/clothing/neck/stripedbluescarf=1,/obj/item/clothing/neck/stripedgreenscarf=1,/obj/item/clothing/tie/waistcoat=1, + /obj/item/clothing/neck/stripedbluescarf=1,/obj/item/clothing/neck/stripedgreenscarf=1,/obj/item/clothing/accessory/waistcoat=1, /obj/item/clothing/under/skirt/black=1,/obj/item/clothing/under/skirt/blue=1,/obj/item/clothing/under/skirt/red=1,/obj/item/clothing/under/skirt/purple=1, /obj/item/clothing/under/sundress=2,/obj/item/clothing/under/stripeddress=1, /obj/item/clothing/under/sailordress=1, /obj/item/clothing/under/redeveninggown=1, /obj/item/clothing/under/blacktango=1, /obj/item/clothing/under/plaid_skirt=1,/obj/item/clothing/under/plaid_skirt/blue=1,/obj/item/clothing/under/plaid_skirt/purple=1,/obj/item/clothing/under/plaid_skirt/green=1, diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index c272c383e9..c316b7e209 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -60,7 +60,7 @@ /obj/effect/spawner/bundle/costume/butler name = "butler costume spawner" items = list( - /obj/item/clothing/tie/waistcoat, + /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/under/suit_jacket, /obj/item/clothing/head/that) @@ -73,7 +73,7 @@ /obj/effect/spawner/bundle/costume/prig name = "prig costume spawner" items = list( - /obj/item/clothing/tie/waistcoat, + /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/glasses/monocle, /obj/effect/spawner/lootdrop/minor/bowler_or_that, /obj/item/clothing/shoes/sneakers/black, diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 646768cea8..f35cff56a9 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -568,7 +568,7 @@ /obj/item/weapon/storage/box/deputy/PopulateContents() for(var/i in 1 to 7) - new /obj/item/clothing/tie/armband/deputy(src) + new /obj/item/clothing/accessory/armband/deputy(src) /obj/item/weapon/storage/box/metalfoam name = "box of metal foam grenades" diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 2a026a8f9e..8902a1f4f6 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -100,17 +100,20 @@ w_class = WEIGHT_CLASS_NORMAL max_w_class = WEIGHT_CLASS_SMALL storage_slots = 10 + max_combined_w_class = 20 req_access = list(GLOB.access_captain) icon_locked = "medalbox+l" icon_closed = "medalbox" icon_broken = "medalbox+b" + can_hold = list(/obj/item/clothing/accessory/medal) /obj/item/weapon/storage/lockbox/medal/PopulateContents() - new /obj/item/clothing/tie/medal/silver/valor(src) - new /obj/item/clothing/tie/medal/bronze_heart(src) + new /obj/item/clothing/accessory/medal/silver/valor(src) + new /obj/item/clothing/accessory/medal/bronze_heart(src) for(var/i in 1 to 3) - new /obj/item/clothing/tie/medal/conduct(src) - new /obj/item/clothing/tie/medal/gold/captain(src) - new /obj/item/clothing/tie/medal/silver/security(src) - new /obj/item/clothing/tie/medal/nobel_science(src) - new /obj/item/clothing/tie/medal/gold/heroism(src) + new /obj/item/clothing/accessory/medal/conduct(src) + new /obj/item/clothing/accessory/medal/gold/captain(src) + new /obj/item/clothing/accessory/medal/silver/security(src) + new /obj/item/clothing/accessory/medal/plasma(src) + new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) + new /obj/item/clothing/accessory/medal/gold/heroism(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index de8d807f93..ca304dc62f 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -15,8 +15,8 @@ new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/rank/bartender(src) new /obj/item/clothing/under/rank/bartender(src) - new /obj/item/clothing/tie/waistcoat(src) - new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) new /obj/item/clothing/head/soft/black(src) new /obj/item/clothing/head/soft/black(src) new /obj/item/clothing/shoes/sneakers/black(src) @@ -39,8 +39,8 @@ new /obj/item/clothing/under/waiter(src) new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/device/radio/headset/headset_srv(src) - new /obj/item/clothing/tie/waistcoat(src) - new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) for(var/i in 1 to 3) new /obj/item/clothing/suit/apron/chef(src) new /obj/item/clothing/head/soft/mime(src) @@ -95,8 +95,8 @@ new /obj/item/clothing/suit/toggle/lawyer/black(src) new /obj/item/clothing/shoes/laceup(src) new /obj/item/clothing/shoes/laceup(src) - new /obj/item/clothing/tie/lawyers_badge(src) - new /obj/item/clothing/tie/lawyers_badge(src) + new /obj/item/clothing/accessory/lawyers_badge(src) + new /obj/item/clothing/accessory/lawyers_badge(src) /obj/structure/closet/wardrobe/chaplain_black name = "chapel wardrobe" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 9d24b44f33..d49241ff80 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -132,28 +132,28 @@ /obj/structure/closet/secure_closet/security/cargo/PopulateContents() ..() - new /obj/item/clothing/tie/armband/cargo(src) + new /obj/item/clothing/accessory/armband/cargo(src) new /obj/item/device/encryptionkey/headset_cargo(src) /obj/structure/closet/secure_closet/security/engine /obj/structure/closet/secure_closet/security/engine/PopulateContents() ..() - new /obj/item/clothing/tie/armband/engine(src) + new /obj/item/clothing/accessory/armband/engine(src) new /obj/item/device/encryptionkey/headset_eng(src) /obj/structure/closet/secure_closet/security/science /obj/structure/closet/secure_closet/security/science/PopulateContents() ..() - new /obj/item/clothing/tie/armband/science(src) + new /obj/item/clothing/accessory/armband/science(src) new /obj/item/device/encryptionkey/headset_sci(src) /obj/structure/closet/secure_closet/security/med /obj/structure/closet/secure_closet/security/med/PopulateContents() ..() - new /obj/item/clothing/tie/armband/medblue(src) + new /obj/item/clothing/accessory/armband/medblue(src) new /obj/item/device/encryptionkey/headset_med(src) /obj/structure/closet/secure_closet/detective @@ -171,7 +171,7 @@ new /obj/item/clothing/head/det_hat(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/under/rank/det/grey(src) - new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) new /obj/item/clothing/suit/det_suit/grey(src) new /obj/item/clothing/head/fedora(src) new /obj/item/clothing/shoes/laceup(src) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 421b8a057e..efda086af5 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1630,7 +1630,7 @@ /obj/item/clothing/suit/toggle/lawyer/purple, /obj/item/clothing/under/lawyer/blacksuit, /obj/item/clothing/suit/toggle/lawyer/black, - /obj/item/clothing/tie/waistcoat, + /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/neck/tie/blue, /obj/item/clothing/neck/tie/red, /obj/item/clothing/neck/tie/black, diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 8a943b4c26..fcbaace6fb 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -529,7 +529,7 @@ BLIND // can't see anything var/can_adjust = 1 var/adjusted = NORMAL_STYLE var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only - var/obj/item/clothing/tie/hastie = null + var/obj/item/clothing/accessory/attached_accessory var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. /obj/item/clothing/under/worn_overlays(isinhands = FALSE) @@ -541,14 +541,14 @@ BLIND // can't see anything . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "uniformblood") - if(hastie) - var/tie_color = hastie.item_color - if(!tie_color) - tie_color = hastie.icon_state - var/mutable_appearance/tie = mutable_appearance('icons/mob/ties.dmi', "[tie_color]") - tie.alpha = hastie.alpha - tie.color = hastie.color - . += tie + if(attached_accessory) + var/accessory_color = attached_accessory.item_color + if(!accessory_color) + accessory_color = attached_accessory.icon_state + var/mutable_appearance/accessory = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") + accessory.alpha = attached_accessory.alpha + accessory.color = attached_accessory.color + . += accessory /obj/item/clothing/under/attackby(obj/item/W, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) @@ -587,29 +587,30 @@ BLIND // can't see anything adjusted = DIGITIGRADE_STYLE H.update_inv_w_uniform() - if(hastie && slot != slot_hands) - hastie.on_uniform_equip(src, user) + if(attached_accessory && slot != slot_hands) + attached_accessory.on_uniform_equip(src, user) /obj/item/clothing/under/dropped(mob/user) - if(hastie) - hastie.on_uniform_dropped(src, user) + if(attached_accessory) + attached_accessory.on_uniform_dropped(src, user) ..() /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) - if(!attachTie(I, user)) + if(!attach_accessory(I, user)) ..() -/obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1) - if(istype(I, /obj/item/clothing/tie)) - var/obj/item/clothing/tie/T = I - if(hastie) +/obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) + . = FALSE + if(istype(I, /obj/item/clothing/accessory)) + var/obj/item/clothing/accessory/A = I + if(attached_accessory) if(user) to_chat(user, "[src] already has an accessory.") - return 0 + return else if(user && !user.drop_item()) return - if(!T.attach(src, user)) + if(!A.attach(src, user)) return if(user && notifyAttach) @@ -619,21 +620,21 @@ BLIND // can't see anything var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() - return 1 + return TRUE -/obj/item/clothing/under/proc/removetie(mob/user) +/obj/item/clothing/under/proc/remove_accessory(mob/user) if(!isliving(user)) return if(!can_use(user)) return - if(hastie) - var/obj/item/clothing/tie/T = hastie - hastie.detach(src, user) - if(user.put_in_hands(T)) - to_chat(user, "You detach [T] from [src].") + if(attached_accessory) + var/obj/item/clothing/accessory/A = attached_accessory + attached_accessory.detach(src, user) + if(user.put_in_hands(A)) + to_chat(user, "You detach [A] from [src].") else - to_chat(user, "You detach [T] from [src] and it falls on the floor.") + to_chat(user, "You detach [A] from [src] and it falls on the floor.") if(ishuman(loc)) var/mob/living/carbon/human/H = loc @@ -659,8 +660,8 @@ BLIND // can't see anything to_chat(user, "Its vital tracker appears to be enabled.") if(SENSOR_COORDS) to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.") - if(hastie) - to_chat(user, "\A [hastie] is attached to it.") + if(attached_accessory) + to_chat(user, "\A [attached_accessory] is attached to it.") /proc/generate_female_clothing(index,t_color,icon,type) var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color) @@ -721,8 +722,8 @@ BLIND // can't see anything to_chat(user, "You can't do that right now!") return else - if(hastie) - removetie(user) + if(attached_accessory) + remove_accessory(user) else rolldown() diff --git a/code/modules/clothing/neck/ties.dm b/code/modules/clothing/neck/neck.dm similarity index 92% rename from code/modules/clothing/neck/ties.dm rename to code/modules/clothing/neck/neck.dm index 59dc504098..de4858e23e 100644 --- a/code/modules/clothing/neck/ties.dm +++ b/code/modules/clothing/neck/neck.dm @@ -160,17 +160,6 @@ /obj/item/clothing/neck/necklace/dope name = "gold necklace" desc = "Damn, it feels good to be a gangster." - icon = 'icons/obj/clothing/ties.dmi' + icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" - item_color = "bling" - -//////////////// -//OONGA BOONGA// -//////////////// - -/obj/item/clothing/neck/talisman - name = "bone talisman" - desc = "A hunter's talisman, some say the old gods smile on those who wear it." - icon_state = "talisman" - item_color = "talisman" - armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) \ No newline at end of file + item_color = "bling" \ No newline at end of file diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 6344ef22d7..ff60b5366e 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -154,7 +154,7 @@ /datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) var/obj/item/clothing/under/U = H.w_uniform - U.attachTie(new /obj/item/clothing/tie/waistcoat(H)) + U.attach_accessory(new /obj/item/clothing/accessory/waistcoat(H)) if(visualsOnly) return diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm new file mode 100644 index 0000000000..3653d7a395 --- /dev/null +++ b/code/modules/clothing/under/accessories.dm @@ -0,0 +1,256 @@ +/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is + name = "Accessory" + desc = "Something has gone wrong!" + icon = 'icons/obj/clothing/accessories.dmi' + icon_state = "plasma" + item_state = "" //no inhands + item_color = "plasma" //On accessories, this controls the worn sprite. That's a bit weird. + slot_flags = 0 + w_class = WEIGHT_CLASS_SMALL + var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed + +/obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user) + if(pockets) // Attach storage to jumpsuit + if(U.pockets) // storage items conflict + return FALSE + + pockets.loc = U + U.pockets = pockets + + U.attached_accessory = src + loc = U + layer = FLOAT_LAYER + plane = FLOAT_PLANE + if(minimize_when_attached) + transform *= 0.5 //halve the size so it doesn't overpower the under + pixel_x += 8 + pixel_y -= 8 + U.add_overlay(src) + + for(var/armor_type in armor) + U.armor[armor_type] += armor[armor_type] + + if(isliving(user)) + on_uniform_equip(U, user) + + return TRUE + + +/obj/item/clothing/accessory/proc/detach(obj/item/clothing/under/U, user) + if(pockets && pockets == U.pockets) + pockets.loc = src + U.pockets = null + + for(var/armor_type in armor) + U.armor[armor_type] -= armor[armor_type] + + if(isliving(user)) + on_uniform_dropped(U, user) + + if(minimize_when_attached) + transform *= 2 + pixel_x -= 8 + pixel_y += 8 + layer = initial(layer) + plane = initial(plane) + U.cut_overlays() + U.attached_accessory = null + +/obj/item/clothing/accessory/proc/on_uniform_equip(obj/item/clothing/under/U, user) + return + +/obj/item/clothing/accessory/proc/on_uniform_dropped(obj/item/clothing/under/U, user) + return + +/obj/item/clothing/accessory/examine(mob/user) + ..() + to_chat(user, "\The [src] can be attached to a uniform. Alt-click to remove it once attached.") + +/obj/item/clothing/accessory/waistcoat + name = "waistcoat" + desc = "For some classy, murderous fun." + icon_state = "waistcoat" + item_state = "waistcoat" + item_color = "waistcoat" + minimize_when_attached = FALSE + +////////// +//Medals// +////////// + +/obj/item/clothing/accessory/medal + name = "bronze medal" + desc = "A bronze medal." + icon_state = "bronze" + item_color = "bronze" + materials = list(MAT_METAL=1000) + resistance_flags = FIRE_PROOF + +//Pinning medals on people +/obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) + if(ishuman(M) && (user.a_intent == INTENT_HELP)) + + if(M.wear_suit) + if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered + to_chat(user, "Medals can only be pinned on jumpsuits.") + return + + if(M.w_uniform) + var/obj/item/clothing/under/U = M.w_uniform + var/delay = 20 + if(user == M) + delay = 0 + else + user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ + "You try to pin [src] on [M]'s chest.") + if(do_after(user, delay, target = M)) + if(U.attach_accessory(src, user, 0)) //Attach it, do not notify the user of the attachment + if(user == M) + to_chat(user, "You attach [src] to [U].") + else + user.visible_message("[user] pins \the [src] on [M]'s chest.", \ + "You pin \the [src] on [M]'s chest.") + + else to_chat(user, "Medals can only be pinned on jumpsuits!") + else ..() + +/obj/item/clothing/accessory/medal/conduct + name = "distinguished conduct medal" + desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." + +/obj/item/clothing/accessory/medal/bronze_heart + name = "bronze heart medal" + desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty." + icon_state = "bronze_heart" + +/obj/item/clothing/accessory/medal/silver + name = "silver medal" + desc = "A silver medal." + icon_state = "silver" + item_color = "silver" + materials = list(MAT_SILVER=1000) + +/obj/item/clothing/accessory/medal/silver/valor + name = "medal of valor" + desc = "A silver medal awarded for acts of exceptional valor." + +/obj/item/clothing/accessory/medal/silver/security + name = "robust security award" + desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff." + +/obj/item/clothing/accessory/medal/gold + name = "gold medal" + desc = "A prestigious golden medal." + icon_state = "gold" + item_color = "gold" + materials = list(MAT_GOLD=1000) + +/obj/item/clothing/accessory/medal/gold/captain + name = "medal of captaincy" + desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/accessory/medal/gold/heroism + name = "medal of exceptional heroism" + desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." + +/obj/item/clothing/accessory/medal/plasma + name = "plasma medal" + desc = "An eccentric medal made of plasma." + icon_state = "plasma" + item_color = "plasma" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = -10, acid = 0) //It's made of plasma. Of course it's flammable. + materials = list(MAT_PLASMA=1000) + +/obj/item/clothing/accessory/medal/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + atmos_spawn_air("plasma=20;TEMP=[exposed_temperature]") + visible_message(" \The [src] bursts into flame!","Your [src] bursts into flame!") + qdel(src) + +/obj/item/clothing/accessory/medal/plasma/nobel_science + name = "nobel sciences award" + desc = "A plasma medal which represents significant contributions to the field of science or engineering." + + + +//////////// +//Armbands// +//////////// + +/obj/item/clothing/accessory/armband + name = "red armband" + desc = "An fancy red armband!" + icon_state = "redband" + item_color = "redband" + +/obj/item/clothing/accessory/armband/deputy + name = "security deputy armband" + desc = "An armband, worn by personnel authorized to act as a deputy of station security." + +/obj/item/clothing/accessory/armband/cargo + name = "cargo bay guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." + icon_state = "cargoband" + item_color = "cargoband" + +/obj/item/clothing/accessory/armband/engine + name = "engineering guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" + icon_state = "engieband" + item_color = "engieband" + +/obj/item/clothing/accessory/armband/science + name = "science guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." + icon_state = "rndband" + item_color = "rndband" + +/obj/item/clothing/accessory/armband/hydro + name = "hydroponics guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." + icon_state = "hydroband" + item_color = "hydroband" + +/obj/item/clothing/accessory/armband/med + name = "medical guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." + icon_state = "medband" + item_color = "medband" + +/obj/item/clothing/accessory/armband/medblue + name = "medical guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." + icon_state = "medblueband" + item_color = "medblueband" + +////////////// +//OBJECTION!// +////////////// + +/obj/item/clothing/accessory/lawyers_badge + name = "attorney's badge" + desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." + icon_state = "lawyerbadge" + item_color = "lawyerbadge" + +/obj/item/clothing/accessory/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user) + var/mob/living/L = user + if(L) + L.bubble_icon = "lawyer" + +/obj/item/clothing/accessory/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user) + var/mob/living/L = user + if(L) + L.bubble_icon = initial(L.bubble_icon) + +//////////////// +//OONGA BOONGA// +//////////////// + +/obj/item/clothing/accessory/talisman + name = "bone talisman" + desc = "A hunter's talisman, some say the old gods smile on those who wear it." + icon_state = "talisman" + item_color = "talisman" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 9db9941f8c..fcc8472834 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/tie //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is +/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is name = "tie" desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/ties.dmi' @@ -9,7 +9,7 @@ w_class = WEIGHT_CLASS_SMALL var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed -/obj/item/clothing/tie/proc/attach(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user) if(pockets) // Attach storage to jumpsuit if(U.pockets) // storage items conflict return 0 @@ -33,7 +33,7 @@ return 1 -/obj/item/clothing/tie/proc/detach(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/proc/detach(obj/item/clothing/under/U, user) if(pockets && pockets == U.pockets) pockets.loc = src U.pockets = null @@ -50,13 +50,13 @@ U.cut_overlays() U.hastie = null -/obj/item/clothing/tie/proc/on_uniform_equip(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/proc/on_uniform_equip(obj/item/clothing/under/U, user) return -/obj/item/clothing/tie/proc/on_uniform_dropped(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/proc/on_uniform_dropped(obj/item/clothing/under/U, user) return -/obj/item/clothing/tie/waistcoat +/obj/item/clothing/accessory/waistcoat name = "waistcoat" desc = "For some classy, murderous fun." icon_state = "waistcoat" @@ -68,7 +68,7 @@ //Medals// ////////// -/obj/item/clothing/tie/medal +/obj/item/clothing/accessory/medal name = "bronze medal" desc = "A bronze medal." icon_state = "bronze" @@ -77,7 +77,7 @@ resistance_flags = FIRE_PROOF //Pinning medals on people -/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user) +/obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) if(ishuman(M) && (user.a_intent == INTENT_HELP)) if(M.wear_suit) @@ -104,47 +104,47 @@ else to_chat(user, "Medals can only be pinned on jumpsuits!") else ..() -/obj/item/clothing/tie/medal/conduct +/obj/item/clothing/accessory/medal/conduct name = "distinguished conduct medal" desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." -/obj/item/clothing/tie/medal/bronze_heart +/obj/item/clothing/accessory/medal/bronze_heart name = "bronze heart medal" desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty." icon_state = "bronze_heart" -/obj/item/clothing/tie/medal/nobel_science +/obj/item/clothing/accessory/medal/nobel_science name = "nobel sciences award" desc = "A bronze medal which represents significant contributions to the field of science or engineering." -/obj/item/clothing/tie/medal/silver +/obj/item/clothing/accessory/medal/silver name = "silver medal" desc = "A silver medal." icon_state = "silver" item_color = "silver" materials = list(MAT_SILVER=1000) -/obj/item/clothing/tie/medal/silver/valor +/obj/item/clothing/accessory/medal/silver/valor name = "medal of valor" desc = "A silver medal awarded for acts of exceptional valor." -/obj/item/clothing/tie/medal/silver/security +/obj/item/clothing/accessory/medal/silver/security name = "robust security award" desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff." -/obj/item/clothing/tie/medal/gold +/obj/item/clothing/accessory/medal/gold name = "gold medal" desc = "A prestigious golden medal." icon_state = "gold" item_color = "gold" materials = list(MAT_GOLD=1000) -/obj/item/clothing/tie/medal/gold/captain +/obj/item/clothing/accessory/medal/gold/captain name = "medal of captaincy" desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/item/clothing/tie/medal/gold/heroism +/obj/item/clothing/accessory/medal/gold/heroism name = "medal of exceptional heroism" desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." @@ -152,47 +152,47 @@ //Armbands// //////////// -/obj/item/clothing/tie/armband +/obj/item/clothing/accessory/armband name = "red armband" desc = "An fancy red armband!" icon_state = "redband" item_color = "redband" -/obj/item/clothing/tie/armband/deputy +/obj/item/clothing/accessory/armband/deputy name = "security deputy armband" desc = "An armband, worn by personnel authorized to act as a deputy of station security." -/obj/item/clothing/tie/armband/cargo +/obj/item/clothing/accessory/armband/cargo name = "cargo bay guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." icon_state = "cargoband" item_color = "cargoband" -/obj/item/clothing/tie/armband/engine +/obj/item/clothing/accessory/armband/engine name = "engineering guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" icon_state = "engieband" item_color = "engieband" -/obj/item/clothing/tie/armband/science +/obj/item/clothing/accessory/armband/science name = "science guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." icon_state = "rndband" item_color = "rndband" -/obj/item/clothing/tie/armband/hydro +/obj/item/clothing/accessory/armband/hydro name = "hydroponics guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." icon_state = "hydroband" item_color = "hydroband" -/obj/item/clothing/tie/armband/med +/obj/item/clothing/accessory/armband/med name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." icon_state = "medband" item_color = "medband" -/obj/item/clothing/tie/armband/medblue +/obj/item/clothing/accessory/armband/medblue name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." icon_state = "medblueband" @@ -202,29 +202,29 @@ //OBJECTION!// ////////////// -/obj/item/clothing/tie/lawyers_badge +/obj/item/clothing/accessory/lawyers_badge name = "attorney's badge" desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." icon_state = "lawyerbadge" item_color = "lawyerbadge" -/obj/item/clothing/tie/lawyers_badge/attach(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/lawyers_badge/attach(obj/item/clothing/under/U, user) if(!..()) return 0 if(isliving(U.loc)) on_uniform_equip(U, user) -/obj/item/clothing/tie/lawyers_badge/detach(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/lawyers_badge/detach(obj/item/clothing/under/U, user) ..() if(isliving(U.loc)) on_uniform_dropped(U, user) -/obj/item/clothing/tie/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user) var/mob/living/L = user if(L) L.bubble_icon = "lawyer" -/obj/item/clothing/tie/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user) +/obj/item/clothing/accessory/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user) var/mob/living/L = user if(L) L.bubble_icon = initial(L.bubble_icon) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index b5fe59f019..d16a988c9d 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -414,7 +414,7 @@ /datum/crafting_recipe/bonetalisman name = "Bone Talisman" - result = /obj/item/clothing/neck/talisman + result = /obj/item/clothing/accessory/talisman time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 1) diff --git a/code/modules/jobs/job_types/civilian.dm b/code/modules/jobs/job_types/civilian.dm index fd01846467..704496ad67 100644 --- a/code/modules/jobs/job_types/civilian.dm +++ b/code/modules/jobs/job_types/civilian.dm @@ -186,7 +186,7 @@ Lawyer shoes = /obj/item/clothing/shoes/laceup l_hand = /obj/item/weapon/storage/briefcase/lawyer l_pocket = /obj/item/device/laser_pointer - r_pocket = /obj/item/clothing/tie/lawyers_badge + r_pocket = /obj/item/clothing/accessory/lawyers_badge /datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index d3ae011f60..3756d1e3e7 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -195,7 +195,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S else department = pick_n_take(GLOB.available_depts) var/ears = null - var/tie = null + var/accessory = null var/list/dep_access = null var/destination = null var/spawn_point = null @@ -205,29 +205,29 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S dep_access = list(GLOB.access_mailsorting, GLOB.access_mining, GLOB.access_mining_station) destination = /area/security/checkpoint/supply spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in GLOB.department_security_spawns - tie = /obj/item/clothing/tie/armband/cargo + accessory = /obj/item/clothing/accessory/armband/cargo if(SEC_DEPT_ENGINEERING) ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi dep_access = list(GLOB.access_construction, GLOB.access_engine) destination = /area/security/checkpoint/engineering spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in GLOB.department_security_spawns - tie = /obj/item/clothing/tie/armband/engine + accessory = /obj/item/clothing/accessory/armband/engine if(SEC_DEPT_MEDICAL) ears = /obj/item/device/radio/headset/headset_sec/alt/department/med dep_access = list(GLOB.access_medical) destination = /area/security/checkpoint/medical spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in GLOB.department_security_spawns - tie = /obj/item/clothing/tie/armband/medblue + accessory = /obj/item/clothing/accessory/armband/medblue if(SEC_DEPT_SCIENCE) ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci dep_access = list(GLOB.access_research) destination = /area/security/checkpoint/science spawn_point = locate(/obj/effect/landmark/start/depsec/science) in GLOB.department_security_spawns - tie = /obj/item/clothing/tie/armband/science + accessory = /obj/item/clothing/accessory/armband/science - if(tie) + if(accessory) var/obj/item/clothing/under/U = H.w_uniform - U.attachTie(new tie) + U.attach_accessory(new accessory) if(ears) if(H.ears) qdel(H.ears) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index a3bb2fefde..42765011d1 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -14,17 +14,17 @@ //uniform if(w_uniform && !(slot_w_uniform in obscured)) - //Ties - var/tie_msg + //accessory + var/accessory_msg if(istype(w_uniform,/obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform - if(U.hastie) - tie_msg += " with \icon[U.hastie] \a [U.hastie]" + if(U.attached_accessory) + accessory_msg += " with \icon[U.attached_accessory] \a [U.attached_accessory]" if(w_uniform.blood_DNA) - msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name][tie_msg]!\n" + msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] blood-stained [w_uniform.name][accessory_msg]!\n" else - msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" + msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform][accessory_msg].\n" //head if(head) diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm index e8fcc73010..75b6597f07 100644 --- a/code/modules/spells/spell_types/devil_boons.dm +++ b/code/modules/spells/spell_types/devil_boons.dm @@ -18,7 +18,7 @@ new /obj/item/weapon/coin/gold(user.loc), new /obj/item/weapon/coin/diamond(user.loc), new /obj/item/weapon/coin/silver(user.loc), - new /obj/item/clothing/tie/medal/gold(user.loc), + new /obj/item/clothing/accessory/medal/gold(user.loc), new /obj/item/stack/sheet/mineral/gold(user.loc), new /obj/item/stack/sheet/mineral/silver(user.loc), new /obj/item/stack/sheet/mineral/diamond(user.loc), diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi new file mode 100644 index 0000000000000000000000000000000000000000..22c42e1eae77f987d024dba2b18afc5ae20f45cb GIT binary patch literal 7735 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 literal 0 HcmV?d00001 diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi deleted file mode 100644 index 19b36bfc948d2a59a1c497e8ecd5c97430ddc584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10864 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 IZw&qa8(3_r>;M1& diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi new file mode 100644 index 0000000000000000000000000000000000000000..99c203cc167e183097bf24b4c39f051b86d03d89 GIT binary patch literal 6954 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 ZM0Bv8N>LgyioN^-sDrhYE0kV`{tpIJrVjuB literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 9606e11d63ec616331724dcb524e8324d55e35cc..0f3668ce102b10edb3d8771d178df6bcd28f1bf6 100644 GIT binary patch delta 2259 zcmZ9Odpy(oAICqN&6df=kdTeC(MHHEG_%|)x#d@@$W%fXRAO}5mr{$&$~~5DKOIqW zs6?2g+fL<{ONkwq<#HyMhUPar&iV8A$NTYoKL2_B{Z7+a#Pip|NR_6>Fpg3Ql%3#Z znFHE5Itc&(iwpGK3FwlZ!^>KDID%uSpw zEbQBZLt6`-Yf7W2?IkDG(Km0>P3oY-XFAW=;m*(*?NwVq7ayKMi#43> zgZJsk0_N?WRev3lZ0;w|vD(%3)>vZ!K$UNGcMD<{N%JwBefnP7m!4lqdE4@(v&6$k z4W@ok3+eISu<-DDV2rR!m{KaQ+}yaa?6Gr1?)LWM#V6lpwfMZ8|L8DKuzGNsIx(qJjcr{M29P!UHTi)iC{<8$xApV%l-FI}>`6@q|m|u9&OCCnuQV z<{0W`__JkArwOkhtENWHE0EkX@`EQ%z~;+clJ~!dU858Jgb1We*p$dH{}RBX+Y4Qf zYsuZ7F70!TdDj^xVJR;S%ns*~uTPhP1EUI#gmnAIbW7XfLyN)&!sp8TrK}SQskC&( zi+-k0FKA!~*Up_E-CX2MN&oe=?YFIBARIPUZcBXI=+&$VcKt-Gc z#(w(5;Sp8V#1{E;%r0o4*pslzc-!cfp;Q%bdg=h`D?!U&Zg4b`@u~!icqfon5;%9? zW&60|pt&~|-WpTSgdj0q6Jo~qBG*)H#fUuD*PIwYs0K<%MAi1tY@2p5X%LfFG; z-?ck?GKb_ow8xA!FdB&vY{~_NCI`KG9)S>t^@(#aX3NZ&-3|+jX`78B6-28Nv(TT%eS%j*y|7u6l_m{y{)>V6m%>Yl|}um zdVb6@0&`#~+$6wT+bngkOdx3YEnOhXo{w}dE}|Au;StcPf@AszSk}hH-s{%qFm5w& zju}7xQ}(&J`R?59V;5>Bm0?j_;SX;KG~Z1%%Hx@1-lI_Dk(sfk(hJCZVfC;Q zbtH$e(wd`%NbX=Orhc1rBNS1+zqg)QRAM{T%)ll-W>^R{TA{L$WEK!5e@TgR%FD6? zzE&^_v?&|zm~jF2S>E4Y_@Es|!v4xrqhGFH=jxgeOw|nyBlxQp<%&kSdr;Ld#{MJF z{an9WE>B+ahGg~Q2KfyKmRi}p>RNA~3HNduAcEhy^N*NclE*qW#|F}RE{}E0`bF5Z zF4Z74flg#IyuNKyMmKhz$K#D=;6A##(TiYDwlSW3knj?Sh+z_Ubt1H?1$ zDfEYd0V{@inK>E|^1d1>R+&(n+?kD!GpeB2@SmS>0cxPm3VYguvI!S2&Up{mhw= z{CaqxK`I*tPFbA!M+12(dOn;b#bOg{KOkkAl3NR0a*Kql8RjW1+v@mCmB<^U)iL7& z8mjelh)usut%?Rq@3o6us)`btZ38z1q<^{ho9;3#0nsTLffLZ-T;F^ZdPh>mQ+{{# zrQ^ZfiywIW?$c+`>IYlL)e@Wesba~TMECqRoLpRIzJasdSRVae6v%BToSD&1v8ANY z>k#lZZXiS<;xf#THLCvv=#217p?A=O+qktFgK3_&>bTu@gBKnd0yr9t&FHDJH$mWV zM*5X8$KBCHqKoaIu%BDAH00+D;-Ey;pLz8F0o z)pG0}y@*D9k=;kJQRmU4e_&XZeQ6&HzsF+76XGPu$INJtRSz*WsFk&h<%yy7LwlINWz+p!>Q(TtMFO^AODl3wm+^tmtCH*yvnFFr7vKEVyQIJ!r)H}|NW zVc5!$?8Z0u_o25~X8xGuXeZAsDlX6(lwtC;AMl}5=YMm&Px~b+z`HE@60hoBPk`s&(d~x?ZMWKy zp^Icz>&|#`ruAzRb*&YPZS{qSwX=EqkW~o*f*jFmIyU%&uvMyl)l>MmXV(kXw+%_! dR8gwjpkb11bt`sv(JB3J2VJvmX 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 T^$rUhJV?OY#M-#dkdp8(AroHK diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi deleted file mode 100644 index 83c1ffedf20abd4f10b63150ad4b8e105e2917de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12457 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 OKu$_YvP#@I^nU Date: Wed, 7 Jun 2017 09:14:59 -0500 Subject: [PATCH 055/215] I might HAVE accidently made dualwielding hilariously OP again so have a nerf! --- code/modules/projectiles/gun.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 6654cc3410..5957d975d5 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,3 +1,6 @@ + +#define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.4 + /obj/item/weapon/gun name = "gun" desc = "It's a gun. It's pretty terrible, though." @@ -229,7 +232,7 @@ break if(chambered && chambered.BB) if(randomspread) - sprd = round((rand() - 0.5) * (randomized_gun_spread + randomized_bonus_spread)) + sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) else //Smart spread sprd = round((((rand_spr/burst_size) * i) - (0.5 + (rand_spr * 0.25))) * (randomized_gun_spread + randomized_bonus_spread)) @@ -250,7 +253,7 @@ firing_burst = 0 else if(chambered) - sprd = round((rand() - 0.5) * (randomized_gun_spread + randomized_bonus_spread)) + sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, sprd)) shoot_with_empty_chamber(user) return From c759862d4b9c8ccb8a17d333e160011d2ee8cfdb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 14:14:18 -0500 Subject: [PATCH 056/215] Fixes CE's hand drill changing size --- code/game/objects/items/weapons/tools.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index d1a2629b02..09a076a293 100755 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -66,6 +66,7 @@ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get force = 8 //might or might not be too high, subject to change + w_class = WEIGHT_CLASS_SMALL throwforce = 8 attack_verb = list("drilled", "screwed", "jabbed") toolspeed = 0.25 @@ -188,6 +189,7 @@ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get force = 8 //might or might not be too high, subject to change + w_class = WEIGHT_CLASS_SMALL throwforce = 8 throw_speed = 2 throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far From 0c2e0d5fb2e490d4088ecab5f18f296c358130c2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 14:17:28 -0500 Subject: [PATCH 057/215] Makes processing subsystems respect qdel and PROCESS_KILL --- code/controllers/subsystem/processing/processing.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index 602455621b..67ee5113cb 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -22,9 +22,7 @@ SUBSYSTEM_DEF(processing) while(current_run.len) var/datum/thing = current_run[current_run.len] current_run.len-- - if(thing) - thing.process(wait) - else + if(QDELETED(thing) || thing.process(wait) == PROCESS_KILL) processing -= thing if (MC_TICK_CHECK) return @@ -33,4 +31,4 @@ SUBSYSTEM_DEF(processing) /datum/proc/process() set waitfor = 0 STOP_PROCESSING(SSobj, src) - return 0 \ No newline at end of file + return 0 From cb15acf8b20a89b06d7cfee8a115d4369168db8a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 14:18:39 -0500 Subject: [PATCH 058/215] Adds another parallax layer --- code/_onclick/hud/parallax.dm | 6 ++++++ icons/effects/parallax.dmi | Bin 145457 -> 153094 bytes 2 files changed, 6 insertions(+) mode change 100644 => 100755 code/_onclick/hud/parallax.dm mode change 100644 => 100755 icons/effects/parallax.dmi diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm old mode 100644 new mode 100755 index 4bf86f414b..74f8761863 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -21,6 +21,7 @@ C.parallax_layers_cached = list() C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_1(null, C.view) C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_2(null, C.view) + C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_3(null, C.view) C.parallax_layers = C.parallax_layers_cached.Copy() @@ -278,6 +279,11 @@ speed = 1 layer = 2 +/obj/screen/parallax_layer/layer_3 + icon_state = "layer3" + speed = 1.4 + layer = 3 + #undef LOOP_NONE #undef LOOP_NORMAL #undef LOOP_REVERSE diff --git a/icons/effects/parallax.dmi b/icons/effects/parallax.dmi old mode 100644 new mode 100755 index a770bf8667d9f30b3b690c7717a3134242a758b1..b7a003d1bb0f0d1b883acca70ca535fc8ba27e74 GIT binary patch delta 11032 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 delta 3335 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 Date: Wed, 7 Jun 2017 14:56:22 -0500 Subject: [PATCH 059/215] Syndicate Uplink - Typos & Grammar mk2 --- .../SpaceRuins/deepstorage.dmm.rej | 10 ++++ code/_globalvars/lists/flavor_misc.dm | 4 +- .../objects/items/weapons/storage/backpack.dm | 60 +++++++++---------- code/modules/uplink/uplink_item.dm | 30 +++++----- 4 files changed, 57 insertions(+), 47 deletions(-) create mode 100644 _maps/RandomRuins/SpaceRuins/deepstorage.dmm.rej diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm.rej b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm.rej new file mode 100644 index 0000000000..4ba00d1798 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm.rej @@ -0,0 +1,10 @@ +diff a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm (rejected hunks) +@@ -213,7 +213,7 @@ + "ee" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Storage"; req_access_txt = "200"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) + "ef" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) + "eg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) +-"eh" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large duffle bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "duffle bag"; pixel_y = 5},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) ++"eh" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "dufflebag"; pixel_y = 5},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/black{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/armory) + "ei" = (/obj/structure/dresser,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) + "ej" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) + "ek" = (/obj/structure/bed,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/bedsheet,/turf/open/floor/wood{baseturf = /turf/open/floor/plating/asteroid/airless},/area/ruin/deepstorage/dorm) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index bb41c82ddb..e3f1b01590 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -43,11 +43,11 @@ GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_ //Backpacks #define GBACKPACK "Grey Backpack" #define GSATCHEL "Grey Satchel" -#define GDUFFLEBAG "Grey Dufflebag" +#define GDUFFLEBAG "Grey Dufflebag" #define LSATCHEL "Leather Satchel" #define DBACKPACK "Department Backpack" #define DSATCHEL "Department Satchel" -#define DDUFFLEBAG "Department Dufflebag" +#define DDUFFLEBAG "Department Dufflebag" GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFLEBAG, GBACKPACK, GSATCHEL, GDUFFLEBAG, LSATCHEL)) //Uplink spawn loc diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index ed502e17cd..f625766932 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -317,42 +317,42 @@ revealed = 1 /obj/item/weapon/storage/backpack/dufflebag - name = "dufflebag" - desc = "A large dufflebag for holding extra things." + name = "dufflebag" + desc = "A large dufflebag for holding extra things." icon_state = "duffle" item_state = "duffle" slowdown = 1 max_combined_w_class = 30 /obj/item/weapon/storage/backpack/dufflebag/captain - name = "captain's dufflebag" - desc = "A large dufflebag for holding extra captainly goods." + name = "captain's dufflebag" + desc = "A large dufflebag for holding extra captainly goods." icon_state = "duffle-captain" item_state = "duffle-captain" resistance_flags = 0 /obj/item/weapon/storage/backpack/dufflebag/med - name = "medical dufflebag" - desc = "A large dufflebag for holding extra medical supplies." + name = "medical dufflebag" + desc = "A large dufflebag for holding extra medical supplies." icon_state = "duffle-med" item_state = "duffle-med" /obj/item/weapon/storage/backpack/dufflebag/sec - name = "security dufflebag" - desc = "A large dufflebag for holding extra security supplies and ammunition." + name = "security dufflebag" + desc = "A large dufflebag for holding extra security supplies and ammunition." icon_state = "duffle-sec" item_state = "duffle-sec" /obj/item/weapon/storage/backpack/dufflebag/engineering - name = "industrial dufflebag" - desc = "A large dufflebag for holding extra tools and supplies." + name = "industrial dufflebag" + desc = "A large dufflebag for holding extra tools and supplies." icon_state = "duffle-eng" item_state = "duffle-eng" resistance_flags = 0 /obj/item/weapon/storage/backpack/dufflebag/drone - name = "drone dufflebag" - desc = "A large dufflebag for holding tools and hats." + name = "drone dufflebag" + desc = "A large dufflebag for holding tools and hats." icon_state = "duffle-drone" item_state = "duffle-drone" resistance_flags = FIRE_PROOF @@ -367,8 +367,8 @@ new /obj/item/device/multitool(src) /obj/item/weapon/storage/backpack/dufflebag/clown - name = "clown's dufflebag" - desc = "A large dufflebag for holding lots of funny gags!" + name = "clown's dufflebag" + desc = "A large dufflebag for holding lots of funny gags!" icon_state = "duffle-clown" item_state = "duffle-clown" @@ -377,8 +377,8 @@ new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src) /obj/item/weapon/storage/backpack/dufflebag/syndie - name = "suspicious looking dufflebag" - desc = "A large dufflebag for holding extra tactical supplies." + name = "suspicious looking dufflebag" + desc = "A large dufflebag for holding extra tactical supplies." icon_state = "duffle-syndie" item_state = "duffle-syndie" origin_tech = "syndicate=1" @@ -386,14 +386,14 @@ slowdown = 0 /obj/item/weapon/storage/backpack/dufflebag/syndie/med - name = "medical dufflebag" - desc = "A large dufflebag for holding extra tactical medical supplies." + name = "medical dufflebag" + desc = "A large dufflebag for holding extra tactical medical supplies." icon_state = "duffle-syndiemed" item_state = "duffle-syndiemed" /obj/item/weapon/storage/backpack/dufflebag/syndie/surgery - name = "surgery dufflebag" - desc = "A suspicious looking dufflebag for holding surgery tools." + name = "surgery dufflebag" + desc = "A suspicious looking dufflebag for holding surgery tools." icon_state = "duffle-syndiemed" item_state = "duffle-syndiemed" @@ -410,13 +410,13 @@ new /obj/item/device/mmi/syndie(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo - name = "ammunition dufflebag" - desc = "A large dufflebag for holding extra weapons ammunition and supplies." + name = "ammunition dufflebag" + desc = "A large dufflebag for holding extra weapons ammunition and supplies." icon_state = "duffle-syndieammo" item_state = "duffle-syndieammo" /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/shotgun - desc = "A large dufflebag, packed to the brim with Bulldog shotgun ammo." + desc = "A large dufflebag, packed to the brim with Bulldog shotgun ammo." /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/shotgun/PopulateContents() for(var/i in 1 to 6) @@ -426,14 +426,14 @@ new /obj/item/ammo_box/magazine/m12g/dragon(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg - desc = "A large dufflebag, packed to the brim with C20r magazines." + desc = "A large dufflebag, packed to the brim with C20r magazines." /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg/PopulateContents() for(var/i in 1 to 9) new /obj/item/ammo_box/magazine/smgm45(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/c20rbundle - desc = "A large dufflebag containing a C20r, some magazines, and a cheap looking suppressor." + desc = "A large dufflebag containing a C20r, some magazines, and a cheap looking suppressor." /obj/item/weapon/storage/backpack/dufflebag/syndie/c20rbundle/PopulateContents() new /obj/item/ammo_box/magazine/smgm45(src) @@ -442,7 +442,7 @@ new /obj/item/weapon/suppressor/specialoffer(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/bulldogbundle - desc = "A large dufflebag containing a Bulldog, several drums, and a collapsed hardsuit." + desc = "A large dufflebag containing a Bulldog, several drums, and a collapsed hardsuit." /obj/item/weapon/storage/backpack/dufflebag/syndie/bulldogbundle/PopulateContents() new /obj/item/ammo_box/magazine/m12g(src) @@ -451,7 +451,7 @@ new /obj/item/clothing/glasses/thermal/syndi(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle - desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." /obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle/PopulateContents() new /obj/item/clothing/shoes/magboots/syndie(src) @@ -460,7 +460,7 @@ new /obj/item/ammo_box/foambox/riot(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle - desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." /obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle/PopulateContents() new /obj/item/clothing/shoes/magboots/syndie(src) @@ -469,7 +469,7 @@ new /obj/item/ammo_box/foambox/riot(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/med/bioterrorbundle - desc = "A large dufflebag containing a deadly chemicals, a chemical spray, chemical grenade, a Donksoft assault rifle, riot grade darts, a minature syringe gun, and a box of syringes" + desc = "A large dufflebag containing a deadly chemicals, a chemical spray, chemical grenade, a Donksoft assault rifle, riot grade darts, a minature syringe gun, and a box of syringes" /obj/item/weapon/storage/backpack/dufflebag/syndie/med/bioterrorbundle/PopulateContents() new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) @@ -489,7 +489,7 @@ new /obj/item/weapon/grenade/plastic/x4(src) /obj/item/weapon/storage/backpack/dufflebag/syndie/firestarter - desc = "A large dufflebag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." + desc = "A large dufflebag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." /obj/item/weapon/storage/backpack/dufflebag/syndie/firestarter/PopulateContents() new /obj/item/clothing/under/syndicate/soviet(src) diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 21c07750de..68a8dca751 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -164,7 +164,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/nukeoffer/sniper name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, a hollowpoint \ + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, a hollow-point \ haemorrhage magazine, a soporific knockout magazine, a free surplus supressor, and a worn out suit and tie." item = /obj/item/weapon/storage/briefcase/sniperbundle cost = 20 // normally 26 @@ -202,7 +202,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/dangerous/shotgun name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatiable with all 12g rounds. Designed for close \ + desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ quarter anti-personnel engagements." item = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog cost = 8 @@ -241,7 +241,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/dangerous/sniper name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" item = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate cost = 16 surplus = 25 @@ -260,7 +260,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. fit into a pocket or slip into a bag unnoticed. It will synthesize \ and fire bolts tipped with a paralyzing toxin that will briefly stun \ targets and cause them to slur as if inebriated. It can produce an \ - infinite amount of bolts, but takes time to automatically recharge \ + infinite number of bolts, but takes time to automatically recharge \ after each shot." item = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow cost = 12 @@ -455,22 +455,22 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffelbag" - desc = "A duffelbag filled with enough 12g ammo to supply an entire team, at a discounted price." + name = "12g Ammo Dufflebag" + desc = "A dufflebag filled with enough 12g ammo to supply an entire team, at a discounted price." item = /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/shotgun cost = 12 /datum/uplink_item/ammo/smg name = ".45 SMG Magazine" - desc = "An additional 20-round .45 magazine sutable for use with the C-20r submachine gun. \ + desc = "An additional 20-round .45 magazine suitable for use with the C-20r submachine gun. \ These bullets pack a lot of punch that can knock most targets down, but do limited overall damage." item = /obj/item/ammo_box/magazine/smgm45 cost = 3 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang) /datum/uplink_item/ammo/smg/bag - name = ".45 Ammo Duffelbag" - desc = "A duffelbag filled with enough .45 ammo to supply an entire team, at a discounted price." + name = ".45 Ammo Dufflebag" + desc = "A dufflebag filled with enough .45 ammo to supply an entire team, at a discounted price." item = /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg cost = 20 include_modes = list(/datum/game_mode/nuclear) @@ -591,7 +591,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/support/mauler name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targetting, thrust vectoring, \ + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring, \ and deployable smoke." item = /obj/mecha/combat/marauder/mauler/loaded cost = 140 @@ -856,7 +856,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/suits/hardsuit/elite name = "Elite Syndicate Hardsuit" - desc = "An advanced hardsuit with superior armor and mobility to the standard Syndicate Hardsuit." + desc = "An advanced hardsuit with superior armor and mobility to the standard Syndicate hardsuit." item = /obj/item/clothing/suit/space/hardsuit/syndi/elite cost = 8 include_modes = list(/datum/game_mode/nuclear) @@ -923,7 +923,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/device_tools/thermal name = "Thermal Imaging Glasses" - desc = "These goggles can be turned to resemble common eyewears throughout the station. \ + desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." @@ -1059,7 +1059,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. cost = 3 /datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targetting Device" + name = "Assault Pod Targeting Device" desc = "Use to select the landing zone of your assault pod." item = /obj/item/device/assault_pod cost = 30 @@ -1336,8 +1336,8 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/badass/bundle name = "Syndicate Bundle" - desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialisation \ + desc = "Syndicate Bundles are specialized groups of items that arrive in a plain box. \ + These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ you will receive." item = /obj/item/weapon/storage/box/syndicate cost = 20 From e21e4eac9d8828f2e3eb439718925538cab2756c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 20:45:26 -0500 Subject: [PATCH 060/215] Adds creamatoriums --- code/game/objects/structures/morgue.dm | 15 +++++++++ .../kitchen_machinery/icecream_vat.dm | 32 +++++++++++++------ 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 39ff2a7da9..62d0adfef7 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -3,6 +3,7 @@ * Morgue * Morgue tray * Crematorium + * Creamatorium * Crematorium tray * Crematorium button */ @@ -223,6 +224,20 @@ GLOBAL_LIST_EMPTY(crematoriums) update_icon() playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people +/obj/structure/bodycontainer/crematorium/creamatorium + name = "creamatorium" + desc = "A human incinerator. Works well during ice cream socials." + +/obj/structure/bodycontainer/crematorium/creamatorium/cremate(mob/user) + var/list/icecreams = new() + for(var/mob/living/i_scream in GetAllContents()) + var/obj/item/weapon/reagent_containers/food/snacks/icecream/IC = new() + IC.set_cone_type("waffle") + IC.add_mob_flavor(i_scream) + icecreams += IC + . = ..() + for(var/obj/IC in icecreams) + IC.forceMove(src) /* * Generic Tray diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 43be7ad747..2f810d70d7 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -147,15 +147,7 @@ if(product_types[dispense_cone] >= 1) product_types[dispense_cone] -= 1 var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(src.loc) - I.cone_type = cone_name - I.icon_state = "icecream_cone_[cone_name]" - switch (I.cone_type) - if ("waffle") - I.reagents.add_reagent("nutriment", 1) - if ("chocolate") - I.reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids - - I.desc = "Delicious [cone_name] cone, but no ice cream." + I.set_cone_type(cone_name) src.visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].") else to_chat(usr, "There are no [cone_name] cones left!") @@ -187,10 +179,23 @@ var/cone_type bitesize = 3 -/obj/item/weapon/reagent_containers/food/snacks/icecream/New() +/obj/item/weapon/reagent_containers/food/snacks/icecream/Initialize() + . = ..() create_reagents(20) reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/set_cone_type(var/cone_name) + cone_type = cone_name + icon_state = "icecream_cone_[cone_name]" + switch (cone_type) + if ("waffle") + reagents.add_reagent("nutriment", 1) + if ("chocolate") + reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids + + desc = "Delicious [cone_name] cone, but no ice cream." + + /obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour_name) name = "[flavour_name] icecream" src.add_overlay("icecream_[flavour_name]") @@ -206,8 +211,15 @@ if ("blue") desc = "A delicious [cone_type] cone filled with blue ice cream. Made with real... blue?" reagents.add_reagent("singulo", 2) + if ("mob") + desc = "A suspicious [cone_type] cone filled with bright red ice cream. That's probably not strawberry..." + reagents.add_reagent("liquidgibs", 2) ice_creamed = 1 +/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_mob_flavor(var/mob/M) + add_ice_cream("mob") + name = "[M.name] icecream" + /obj/machinery/icecream_vat/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) new /obj/item/stack/sheet/metal(loc, 4) From 7eedaa87c50533d090eb69c7e32a667b8a00aa5e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 20:54:37 -0500 Subject: [PATCH 061/215] Moves station's starting state to ticker post setup, instead of gamemode's --- code/controllers/subsystem/ticker.dm | 2 ++ code/game/gamemodes/game_mode.dm | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 863cd11957..9dce620e25 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -239,6 +239,8 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/PostSetup() set waitfor = 0 mode.post_setup() + GLOB.start_state = new /datum/station_state() + GLOB.start_state.count(1) //Cleanup some stuff for(var/obj/effect/landmark/start/S in GLOB.landmarks_list) //Deleting Startpoints but we need the ai point to AI-ize people later diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index e470e6ba52..4c03417aa9 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -95,8 +95,6 @@ if(report) addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) generate_station_goals() - GLOB.start_state = new /datum/station_state() - GLOB.start_state.count(1) return 1 From d34133411839eea0638b8d2b78b5be9a8df5e577 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 7 Jun 2017 21:27:14 -0500 Subject: [PATCH 062/215] [s] Fixes IRC ahelps --- code/modules/admin/verbs/adminhelp.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index ecd8209044..628ff6d9bb 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -183,7 +183,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) to_chat(C, "PM to-Admins: [name]") //send it to irc if nobody is on and tell us how many were on - var/admin_number_present = send2irc_adminless_only("#[id] [initiator_ckey]", name) + var/admin_number_present = send2irc_adminless_only(initiator_ckey, "Ticket #[id]: [name]") log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") if(admin_number_present <= 0) to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") From 70a3c954b1aceef15a922c72d93b9e1fbc22ce6e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 03:30:14 -0500 Subject: [PATCH 063/215] Automatic changelog generation for PR #1277 [ci skip] --- html/changelogs/AutoChangeLog-pr-1277.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1277.yml diff --git a/html/changelogs/AutoChangeLog-pr-1277.yml b/html/changelogs/AutoChangeLog-pr-1277.yml new file mode 100644 index 0000000000..b20bcf2f45 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1277.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - spellcheck: "Renames hivelord and legion cores to 'regenerative core'. Their descs have also been updated to be more clear." From 06d5f29d9d674564acc3e92549ab1ee148bbbf8a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 03:35:24 -0500 Subject: [PATCH 064/215] Automatic changelog generation for PR #1308 [ci skip] --- html/changelogs/AutoChangeLog-pr-1308.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1308.yml diff --git a/html/changelogs/AutoChangeLog-pr-1308.yml b/html/changelogs/AutoChangeLog-pr-1308.yml new file mode 100644 index 0000000000..af53d19554 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1308.yml @@ -0,0 +1,8 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - rscadd: "Luxury versions of the bluespace shelter capsule are now available! Purchase them at the mining equipment vendor." + - rscadd: "Cardboard cutouts have a new option: Xenomorph Maid" + - rscadd: "Black Carpet can now be crafted using a stack of carpet and a black crayon." + - rscadd: "Black fancy tables can now be crafted using Black Carpet." + - rscadd: "Shower curtains can now be recoloured with crayons, unscrewed from the floor, disassembled with wire cutters, and reassembled using cloth, plastic, and a metal rod." From 190b47983c0d7f54c3b7b5317e6f2335cc5b6304 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Thu, 8 Jun 2017 03:39:13 -0500 Subject: [PATCH 065/215] cleanup --- .../objects/items/stacks/tiles/tile_types.dm | 3 +++ .../items/stacks/tiles/tile_types.dm.rej | 10 ---------- code/modules/crafting/recipes.dm | 2 +- code/modules/crafting/recipes.dm.rej | 10 ---------- icons/obj/tiles.dmi | Bin 11987 -> 11985 bytes 5 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 code/game/objects/items/stacks/tiles/tile_types.dm.rej delete mode 100644 code/modules/crafting/recipes.dm.rej diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index de0cdaf494..01a0940e53 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -112,6 +112,9 @@ icon_state = "tile-carpet-black" turf_type = /turf/open/floor/carpet/black +/obj/item/stack/tile/carpet/black/fifty + amount = 50 + /obj/item/stack/tile/fakespace name = "astral carpet" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm.rej b/code/game/objects/items/stacks/tiles/tile_types.dm.rej deleted file mode 100644 index 2f47c12b65..0000000000 --- a/code/game/objects/items/stacks/tiles/tile_types.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm (rejected hunks) -@@ -111,6 +111,8 @@ - icon_state = "tile-carpet-black" - turf_type = /turf/open/floor/carpet/black - -+/obj/item/stack/tile/carpet/black/fifty -+ amount = 50 - - /obj/item/stack/tile/fakespace - name = "astral carpet" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 67464adc12..d84d806a00 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -382,7 +382,7 @@ /datum/crafting_recipe/blackcarpet name = "Black Carpet" reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) - result = /obj/item/stack/tile/carpet/black + result = /obj/item/stack/tile/carpet/black/fifty category = CAT_MISC /datum/crafting_recipe/showercurtain diff --git a/code/modules/crafting/recipes.dm.rej b/code/modules/crafting/recipes.dm.rej deleted file mode 100644 index 39167bca83..0000000000 --- a/code/modules/crafting/recipes.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm (rejected hunks) -@@ -347,7 +347,7 @@ - /datum/crafting_recipe/blackcarpet - name = "Black Carpet" - reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1) -- result = /obj/item/stack/tile/carpet/black -+ result = /obj/item/stack/tile/carpet/black/fifty - category = CAT_MISC - - /datum/crafting_recipe/showercurtain diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 5372e24c05df6f67f4410cf00eac932000f96e51..1c0ac03abecac62849a5c8e295804c5b2f609157 100644 GIT binary patch delta 10895 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 Dx;t>4 delta 10990 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 l|8Fb%f0&)_KMn4od)%{>2@r Date: Thu, 8 Jun 2017 03:48:22 -0500 Subject: [PATCH 066/215] cleanup --- code/game/gamemodes/game_mode.dm | 26 +++++++++++++------------- code/game/gamemodes/game_mode.dm.rej | 10 ---------- 2 files changed, 13 insertions(+), 23 deletions(-) delete mode 100644 code/game/gamemodes/game_mode.dm.rej diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index c57e9180f5..1852fe0770 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -80,17 +80,17 @@ report = config.intercept addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME) - if(SSdbcore.Connect()) - var/sql - if(SSticker && SSticker.mode) - sql += "game_mode = '[SSticker.mode]'" - if(sql) - sql += ", " - if(GLOB.revdata.commit) - sql += "commit_hash = '[GLOB.revdata.commit]'" - if(sql) - var/datum/DBQuery/query_round_game_mode = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET [sql] WHERE id = [GLOB.round_id]") - query_round_game_mode.Execute() + if(SSdbcore.Connect()) + var/sql + if(SSticker && SSticker.mode) + sql += "game_mode = '[SSticker.mode]'" + if(GLOB.revdata.originmastercommit) + if(sql) + sql += ", " + sql += "commit_hash = '[GLOB.revdata.originmastercommit]'" + if(sql) + var/datum/DBQuery/query_round_game_mode = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET [sql] WHERE id = [GLOB.round_id]") + query_round_game_mode.Execute() if(report) addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) generate_station_goals() @@ -239,11 +239,11 @@ if(ishuman(M)) if(!M.stat) surviving_humans++ - if(M.z == ZLEVEL_CENTCOM) + if(M.z == ZLEVEL_CENTCOM) escaped_humans++ if(!M.stat) surviving_total++ - if(M.z == ZLEVEL_CENTCOM) + if(M.z == ZLEVEL_CENTCOM) escaped_total++ diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej deleted file mode 100644 index c834b64a56..0000000000 --- a/code/game/gamemodes/game_mode.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) -@@ -84,8 +84,6 @@ - var/sql - if(SSticker && SSticker.mode) - sql += "game_mode = '[SSticker.mode]'" -- if(sql) -- sql += ", " - if(GLOB.revdata.originmastercommit) - if(sql) - sql += ", " From 7b6c76525c5f6feab949437274d2853884d00fb2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 09:45:45 -0500 Subject: [PATCH 067/215] Trims whitelist entries and makes them use ckey() --- code/modules/admin/whitelist.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/whitelist.dm b/code/modules/admin/whitelist.dm index d6e8fc908f..974a753027 100644 --- a/code/modules/admin/whitelist.dm +++ b/code/modules/admin/whitelist.dm @@ -10,7 +10,7 @@ GLOBAL_PROTECT(whitelist) continue if(findtextEx(line,"#",1,2)) continue - GLOB.whitelist += line + GLOB.whitelist += ckey(line) if(!GLOB.whitelist.len) GLOB.whitelist = null From 180f0e82c878f614185fd2206b2b4c94e8d01906 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 09:45:52 -0500 Subject: [PATCH 068/215] Fixes ghosts not returning an initialize hint --- code/modules/mob/dead/observer/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0599aaaa8a..22a81ae7fc 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -120,7 +120,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) GLOB.dead_mob_list += src - ..() + . = ..() grant_all_languages() From 38a1e1d984abf936afcc77e2e35894e7cff6e311 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 09:46:57 -0500 Subject: [PATCH 069/215] Removes a spawn --- code/modules/events/ghost_role.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index 2468ddb5c6..f5e9513b2e 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -26,9 +26,7 @@ var/waittime = 300 * (2^retry) message_admins("The event will not spawn a [role_name] until certain \ conditions are met. Waiting [waittime/10]s and then retrying.") - spawn(waittime) - // I hope this doesn't end up running out of stack space - try_spawning(0,++retry) + addtimer(CALLBACK(src, .proc/try_spawning, 0, ++retry), waittime) return if(status == MAP_ERROR) @@ -69,4 +67,4 @@ return candidates -#undef MAX_SPAWN_ATTEMPT \ No newline at end of file +#undef MAX_SPAWN_ATTEMPT From 24bfaa9b56128daf15f602ad464c950f589fae7c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 10:58:31 -0500 Subject: [PATCH 070/215] Fixes #8044, being able to hold defib paddles while dead, by removing NODROP from them --- code/game/objects/items/weapons/defib.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 4bdf6ddf3c..886d875edc 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -273,7 +273,6 @@ force = 0 throwforce = 6 w_class = WEIGHT_CLASS_BULKY - flags = NODROP var/revivecost = 1000 var/cooldown = 0 From 1658e48bc1737ddea42bfbb42274407500923fe1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 14:46:07 -0500 Subject: [PATCH 071/215] [READY] Gang Points Refactor - Now stored in the gang datum --- code/__DEFINES/misc.dm | 6 +- code/datums/mind.dm | 2 +- code/game/gamemodes/gang/gang.dm | 14 ++- code/game/gamemodes/gang/gang_datum.dm | 128 ++++++++++++++------- code/game/gamemodes/gang/gang_items.dm | 19 ++- code/game/gamemodes/gang/recaller.dm | 11 +- code/game/gamemodes/wizard/artefact.dm | 2 +- code/game/objects/effects/decals/crayon.dm | 20 +++- code/game/objects/objs.dm | 3 + code/modules/admin/verbs/onlyone.dm | 2 +- code/modules/clothing/neck/ties.dm | 3 + 11 files changed, 145 insertions(+), 65 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ab8fcb7d70..6ea8cd64ee 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -429,4 +429,8 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define GIBTONITE_UNSTRUCK 0 #define GIBTONITE_ACTIVE 1 #define GIBTONITE_STABLE 2 -#define GIBTONITE_DETONATE 3 \ No newline at end of file +#define GIBTONITE_DETONATE 3 +//Gangster starting influences + +#define GANGSTER_SOLDIER_STARTING_INFLUENCE 5 +#define GANGSTER_BOSS_STARTING_INFLUENCE 20 diff --git a/code/datums/mind.dm b/code/datums/mind.dm index be5180c2ae..e1c6606400 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -989,7 +989,7 @@ if(!G || (src in G.bosses)) return SSticker.mode.remove_gangster(src,0,2,1) - G.bosses += src + G.bosses[src] = GANGSTER_BOSS_STARTING_INFLUENCE gang_datum = G special_role = "[G.name] Gang Boss" G.add_gang_hud(src) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 6606a0d871..5b97280e9a 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ for(var/n in 1 to 3) var/datum/mind/boss = pick(antag_candidates) antag_candidates -= boss - G.bosses += boss + G.bosses[boss] = GANGSTER_BOSS_STARTING_INFLUENCE boss.gang_datum = G var/title if(n == 1) @@ -85,6 +85,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ sleep(rand(10,100)) for(var/datum/gang/G in gangs) for(var/datum/mind/boss_mind in G.bosses) + G.bosses[boss_mind] = GANGSTER_BOSS_STARTING_INFLUENCE //Force influence to be put on it. G.add_gang_hud(boss_mind) forge_gang_objectives(boss_mind) greet_gang(boss_mind) @@ -170,7 +171,7 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ return 0 if(check && gangster_mind.current.isloyal()) //Check to see if the potential gangster is implanted return 1 - G.gangsters += gangster_mind + G.gangsters[gangster_mind] = GANGSTER_SOLDIER_STARTING_INFLUENCE gangster_mind.gang_datum = G if(check) if(iscarbon(gangster_mind.current)) @@ -209,15 +210,24 @@ GLOBAL_LIST_INIT(gang_outfit_pool, list(/obj/item/clothing/suit/jacket/leather,/ if(!G.is_deconvertible && !remove_bosses) return 0 if(gangster_mind in G.gangsters) + G.reclaim_points(G.gangsters[gangster_mind]) G.gangsters -= gangster_mind removed = 1 if(remove_bosses && (gangster_mind in G.bosses)) + G.reclaim_points(G.bosses[gangster_mind]) G.bosses -= gangster_mind removed = 1 + if(G.tags_by_mind[gangster_mind] && islist(G.tags_by_mind[gangster_mind])) + var/list/tags_cache = G.tags_by_mind[gangster_mind] + for(var/v in tags_cache) + var/obj/effect/decal/cleanable/crayon/gang/c = v + c.set_mind_owner(null) + G.tags_by_mind -= gangster_mind if(!removed) return 0 + gangster_mind.special_role = null gangster_mind.gang_datum = null diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm index d6aa1830f2..a2e7220106 100644 --- a/code/game/gamemodes/gang/gang_datum.dm +++ b/code/game/gamemodes/gang/gang_datum.dm @@ -8,6 +8,7 @@ var/list/datum/mind/gangsters = list() //gang B Members var/list/datum/mind/bosses = list() //gang A Bosses var/list/obj/item/device/gangtool/gangtools = list() + var/list/tags_by_mind = list() //Assoc list in format of tags_by_mind[mind_of_gangster] = list(tag1, tag2, tag3) where tags are the actual object decals. var/style var/fighting_style = "normal" var/list/territory = list() @@ -202,9 +203,9 @@ return var/added_names = "" var/lost_names = "" - + SSticker.mode.shuttle_check() // See if its time to start wrapping things up - + //Re-add territories that were reclaimed, so if they got tagged over, they can still earn income if they tag it back before the next status report var/list/reclaimed_territories = territory_new & territory_lost territory |= reclaimed_territories @@ -245,47 +246,90 @@ set_domination_time(new_time) message += "[seconds_remaining] seconds remain in hostile takeover.
" else - for(var/obj/item/device/gangtool/G in gangtools) - var/pmessage = message - var/points_new = 0 - if(istype(G, /obj/item/device/gangtool/soldier)) - points_new = max(0,round(3 - G.points/10)) + (sbonus) + (LAZYLEN(G.tags)/2) // Soldier points - pmessage += "Your influence has increased by [round(sbonus)] from your gang holding [LAZYLEN(territory)] territories, and a bonus of [round(LAZYLEN(G.tags)/2)] for territories you have personally marked and kept intact.
" - else - points_new = max(0,round(5 - G.points/10)) + LAZYLEN(territory) // Boss points, more focused on big picture - pmessage += "Your influence has increased by [round(points_new)] from your gang holding [territory.len] territories
" - G.points += points_new - var/mob/living/carbon/human/ganger = get(G.loc, /mob/living) - var/points_newer = 0 - var/static/inner = inner_outfit - var/static/outer = outer_outfit - if(ishuman(ganger) && ganger.mind in (gangsters|bosses)) - for(var/obj/C in ganger.contents) - if(C.type == inner_outfit) - points_newer += 2 - continue - if(C.type == outer_outfit) - points_newer += 2 - continue - switch(C.type) - if(/obj/item/clothing/neck/necklace/dope) - points_newer += 2 - if(/obj/item/clothing/head/collectable/petehat/gang) - points_newer += 4 - if(/obj/item/clothing/shoes/gang) - points_newer += 6 - if(/obj/item/clothing/mask/gskull) - points_newer += 5 - if(/obj/item/clothing/gloves/gang) - points_newer += 3 - if(/obj/item/weapon/storage/belt/military/gang) - points_newer += 4 - if(points_newer) - G.points += points_newer - pmessage += "Your influential choice of clothing has further increased your influence by [points_newer] points.
" - pmessage += "You now have [G.points] influence.
" - to_chat(ganger, "\icon[G] [pmessage]") + pay_territory_income_to_bosses() + pay_territory_income_to_soldiers(sbonus) + pay_all_clothing_bonuses() + announce_all_influence() +/datum/gang/proc/pay_all_clothing_bonuses() + for(var/datum/mind/mind in gangsters|bosses) + pay_clothing_bonus(mind) + +/datum/gang/proc/pay_clothing_bonus(var/datum/mind/gangsta) + var/mob/living/carbon/human/gangbanger = gangsta.current + . = 0 + if(!istype(gangbanger) || gangbanger.stat == DEAD) //Dead gangsters aren't influential at all! + return 0 + var/static/inner = inner_outfit + var/static/outer = outer_outfit + for(var/obj/item/C in gangbanger.contents) + if(C.type == inner_outfit) + . += 2 + continue + else if(C.type == outer_outfit) + . += 2 + continue + . += C.gang_contraband_value() + adjust_influence(gangsta, .) + if(.) + announce_to_mind(gangsta, "Your influential choice of clothing has increased your influence by [.] points!") + else + announce_to_mind(gangsta, "Unfortunately, you have not gained any additional influence from your drab, old, boring clothing. Learn to dress like a gangsta, bro!") //Kek + +/datum/gang/proc/pay_soldier_territory_income(datum/mind/soldier, sbonus = 0) + . = 0 + . = max(0,round(3 - gangsters[soldier]/10)) + (sbonus) + (get_soldier_territories(soldier)/2) + adjust_influence(soldier, .) + +/datum/gang/proc/get_soldier_territories(datum/mind/soldier) + if(!islist(tags_by_mind[soldier])) //They have no tagged territories! + return 0 + var/list/tags = tags_by_mind[soldier] + return tags.len + +/datum/gang/proc/pay_territory_income_to_soldiers(sbonus = 0) + for(var/datum/mind/soldier in gangsters) + var/returned = pay_soldier_territory_income(soldier) + if(!returned) + announce_to_mind(soldier, "You have not gained any influence from territories you personally tagged. Get to work, soldier!") + else + announce_to_mind(soldier, "You have gained [returned] influence from [get_soldier_territories(soldier)] territories you have personally tagged.") + +/datum/gang/proc/announce_all_influence() + for(var/datum/mind/MG in bosses|gangsters) + announce_total_influence(MG) + +/datum/gang/proc/pay_territory_income_to_bosses() + . = 0 + for(var/datum/mind/boss_mind in bosses) + var/inc = max(0,round(5 - bosses[boss_mind]/10)) + LAZYLEN(territory) + . += inc + adjust_influence(boss_mind, inc) + announce_to_mind(boss_mind, "Your influence has increased by [inc] from your gang holding [LAZYLEN(territory)] territories!") + +/datum/gang/proc/get_influence(datum/mind/gangster_mind) + if(gangster_mind in gangsters) + return gangsters[gangster_mind] + if(gangster_mind in bosses) + return bosses[gangster_mind] + +/datum/gang/proc/adjust_influence(datum/mind/gangster_mind, amount) + if(gangster_mind in gangsters) + gangsters[gangster_mind] += amount + if(gangster_mind in bosses) + bosses[gangster_mind] += amount + +/datum/gang/proc/announce_to_mind(datum/mind/gangster_mind, message) + if(gangster_mind.current && gangster_mind.current.stat != DEAD) + to_chat(gangster_mind.current, message) + +/datum/gang/proc/announce_total_influence(datum/mind/gangster_mind) + announce_to_mind(gangster_mind, "[name] Gang: You now have a total of [get_influence(gangster_mind)] influence!") + +/datum/gang/proc/reclaim_points(amount) + for(var/datum/mind/bawss in bosses) + adjust_influence(bawss, amount/bosses.len) + announce_to_mind(bawss, "[name] Gang: [amount/bosses.len] influence given from internal automatic restructuring.") //Multiverse diff --git a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm index dae3c85be1..43e5fee8b4 100644 --- a/code/game/gamemodes/gang/gang_items.dm +++ b/code/game/gamemodes/gang/gang_items.dm @@ -11,7 +11,7 @@ if(check_canbuy && !can_buy(user, gang, gangtool)) return FALSE var/real_cost = get_cost(user, gang, gangtool) - gangtool.points -= real_cost + gang.adjust_influence(user.mind, -real_cost) spawn_item(user, gang, gangtool) return TRUE @@ -23,7 +23,7 @@ to_chat(user, spawn_msg) /datum/gang_item/proc/can_buy(mob/living/carbon/user, datum/gang/gang, obj/item/device/gangtool/gangtool) - return gang && (gangtool.points >= get_cost(user, gang, gangtool)) && can_see(user, gang, gangtool) + return gang && (gang.get_influence(user.mind) >= get_cost(user, gang, gangtool)) && can_see(user, gang, gangtool) /datum/gang_item/proc/can_see(mob/living/carbon/user, datum/gang/gang, obj/item/device/gangtool/gangtool) return TRUE @@ -118,6 +118,9 @@ name = "pimpin' hat" desc = "The undisputed king of style." +/obj/item/clothing/head/collectable/petehat/gang/gang_contraband_value() + return 4 + /datum/gang_item/clothing/mask name = "Golden Death Mask" id = "mask" @@ -129,6 +132,8 @@ icon_state = "gskull" desc = "Strike terror, and envy, into the hearts of your enemies." +/obj/item/clothing/mask/gskull/gang_contraband_value() + return 5 /datum/gang_item/clothing/shoes name = "Bling Boots" @@ -141,13 +146,15 @@ desc = "Stand aside peasants." icon_state = "bling" +/obj/item/clothing/shoes/gang/gang_contraband_value() + return 6 + /datum/gang_item/clothing/neck name = "Gold Necklace" id = "necklace" cost = 9 item_path = /obj/item/clothing/neck/necklace/dope - /datum/gang_item/clothing/hands name = "Decorative Brass Knuckles" id = "hand" @@ -160,6 +167,9 @@ icon_state = "knuckles" w_class = 3 +/obj/item/clothing/gloves/gang/gang_contraband_value() + return 3 + /datum/gang_item/clothing/belt name = "Badass Belt" id = "belt" @@ -173,7 +183,8 @@ desc = "The belt buckle simply reads 'BAMF'." storage_slots = 1 - +/obj/item/weapon/storage/belt/military/gang/gang_contraband_value() + return 4 /////////////////// //WEAPONS diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm index 8363261c5d..8533ccf49e 100644 --- a/code/game/gamemodes/gang/recaller.dm +++ b/code/game/gamemodes/gang/recaller.dm @@ -15,7 +15,6 @@ var/outfits = 2 var/free_pen = 0 var/promotable = 0 - var/points = 15 var/list/tags = list() /obj/item/device/gangtool/Initialize() //Initialize supply point income if it hasn't already been started @@ -50,7 +49,7 @@ var/isboss = (user.mind == gang.bosses[1]) dat += "Registration: [gang.name] Gang [isboss ? "Boss" : "Lieutenant"]
" dat += "Organization Size: [gang.gangsters.len + gang.bosses.len] | Station Control: [round((gang.territory.len/GLOB.start_state.num_territories)*100, 1)]%
" - dat += "Your Influence: [points]
" + dat += "Your Influence: [gang.get_influence(user.mind)]
" dat += "Time until Influence grows: [time2text(SSticker.mode.gang_points.next_point_time - world.time, "mm:ss")]
" dat += "
" @@ -147,8 +146,9 @@ gang.gangtools += src icon_state = "gangtool-[gang.color]" if(!(user.mind in gang.bosses)) + var/cached_influence = gang.gangsters[user.mind] SSticker.mode.remove_gangster(user.mind, 0, 2) - gang.bosses += user.mind + gang.bosses[user.mind] = cached_influence user.mind.gang_datum = gang user.mind.special_role = "[gang.name] Gang Lieutenant" gang.add_gang_hud(user.mind) @@ -246,9 +246,6 @@ ///////////// Internal tool used by gang regulars /////////// -/obj/item/device/gangtool/soldier - points = 5 - /obj/item/device/gangtool/soldier/New(mob/user) . = ..() gang = user.mind.gang_datum @@ -264,7 +261,7 @@ dat += "
Takeover In Progress:
[gang.domination_time_remaining()] seconds remain
" dat += "Registration: [gang.name] - Foot Soldier
" dat += "Organization Size: [gang.gangsters.len + gang.bosses.len] | Station Control: [round((gang.territory.len/GLOB.start_state.num_territories)*100, 1)]%
" - dat += "Your Influence: [points]
" + dat += "Your Influence: [gang.get_influence(user.mind)]
" if(LAZYLEN(tags)) dat += "Your tags generate bonus influence for you.
You have tagged the following territories:" for(var/obj/effect/decal/cleanable/crayon/gang/T in tags) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index f89833d315..9a21400653 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -243,7 +243,7 @@ if(!is_gangster(user)) var/datum/gang/multiverse/G = new(src, "[user.real_name]") SSticker.mode.gangs += G - G.bosses += user.mind + G.bosses[user.mind] = 0 G.add_gang_hud(user.mind) user.mind.gang_datum = G to_chat(user, "With your new found power you could easily conquer the station!") diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 53ecfc8d62..2361510e46 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -30,27 +30,35 @@ layer = HIGH_OBJ_LAYER //Harder to hide do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. var/datum/gang/gang - var/obj/item/device/gangtool/linked_tool + var/datum/mind/user_mind var/area/territory /obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, var/datum/gang/G, var/e_name = "gang tag", var/rotation = 0, var/mob/user) if(!type || !G) qdel(src) + user_mind = user.mind territory = get_area(src) gang = G var/newcolor = G.color_hex icon_state = G.name G.territory_new |= list(territory.type = territory.name) - linked_tool = locate(/obj/item/device/gangtool) in user.contents - if(linked_tool) - linked_tool.tags += src + //If this isn't tagged by a specific gangster there's no bonus income. + set_mind_owner(user_mind) ..(mapload, newcolor, icon_state, e_name, rotation) +/obj/effect/decal/cleanable/crayon/gang/proc/set_mind_owner(datum/mind/mind) + if(istype(user_mind) && istype(gang) && islist(gang.tags_by_mind[user_mind])) //Clear us out of old ownership + gang.tags_by_mind[user_mind] -= src + if(istype(mind)) + if(!islist(gang.tags_by_mind[mind])) + gang.tags_by_mind[mind] = list() + gang.tags_by_mind[mind] += src + user_mind = mind + /obj/effect/decal/cleanable/crayon/gang/Destroy() - if(linked_tool) - linked_tool.tags -= src if(gang) gang.territory -= territory.type + set_mind_owner(null) gang.territory_new -= territory.type gang.territory_lost |= list(territory.type = territory.name) return ..() diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 9766dbc26d..7482b4ca14 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -193,3 +193,6 @@ ..() if(unique_rename) to_chat(user, "Use a pen on it to rename it or change its description.") + +/obj/proc/gang_contraband_value() + return 0 diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 37dab65b0c..299853ae53 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -99,7 +99,7 @@ GLOBAL_VAR_INIT(highlander, FALSE) var/datum/gang/multiverse/G = new(src, "[H.real_name]") SSticker.mode.gangs += G - G.bosses += H.mind + G.bosses[H.mind] = 0 //No they don't use influence but this prevents runtimes. G.add_gang_hud(H.mind) H.mind.gang_datum = G diff --git a/code/modules/clothing/neck/ties.dm b/code/modules/clothing/neck/ties.dm index 59dc504098..3affebc270 100644 --- a/code/modules/clothing/neck/ties.dm +++ b/code/modules/clothing/neck/ties.dm @@ -164,6 +164,9 @@ icon_state = "bling" item_color = "bling" +/obj/item/clothing/neck/necklace/dope/gang_contraband_value() + return 2 + //////////////// //OONGA BOONGA// //////////////// From 356ea18e956c263a00ffd756e5275785cfb16fbb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 17:16:56 -0500 Subject: [PATCH 072/215] [Meta] atmosia pump layer fix --- _maps/map_files/MetaStation/MetaStation.dmm | 70 ++++++--------------- 1 file changed, 20 insertions(+), 50 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 9290c25c95..25c6618a75 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -13412,9 +13412,7 @@ "aza" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/plasteel/black, /area/engine/engineering) @@ -31819,9 +31817,7 @@ "bhv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain/private) @@ -34604,9 +34600,7 @@ "bmy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -38251,9 +38245,7 @@ "bsN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -38333,9 +38325,7 @@ req_access_txt = "19" }, /obj/machinery/atmospherics/components/unary/vent_scrubber{ - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/machinery/button/door{ id = "council blast"; @@ -41604,11 +41594,6 @@ }, /area/engine/atmos) "bzc" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste"; - on = 0 - }, /obj/machinery/light{ dir = 1 }, @@ -41616,6 +41601,11 @@ dir = 1; on = 1 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste"; + on = 0 + }, /turf/open/floor/plasteel/caution{ dir = 1 }, @@ -42035,9 +42025,7 @@ "bzT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/machinery/vending/coffee{ pixel_x = -3 @@ -42155,9 +42143,7 @@ "bAg" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -43639,9 +43625,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 1 @@ -43787,9 +43771,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/plasteel/neutral/corner{ dir = 4 @@ -47556,9 +47538,7 @@ "bKz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -47986,9 +47966,7 @@ "bLs" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -50400,9 +50378,7 @@ "bQa" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 1; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -50531,9 +50507,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 2; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /turf/open/floor/wood, /area/bridge/showroom/corporate) @@ -50570,9 +50544,7 @@ "bQq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/structure/cable/yellow{ d1 = 1; @@ -50641,9 +50613,7 @@ "bQu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 8; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1 + on = 1 }, /obj/structure/cable/yellow{ d1 = 4; From 3deb4c0eff140925149997690b007204c95a8e6d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 17:18:01 -0500 Subject: [PATCH 073/215] Fixes deadmin player panel runtime --- code/modules/admin/adminmenu.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/adminmenu.dm b/code/modules/admin/adminmenu.dm index fc7a57e212..8954244da4 100644 --- a/code/modules/admin/adminmenu.dm +++ b/code/modules/admin/adminmenu.dm @@ -6,6 +6,6 @@ set name = "Player Panel" set desc = "Player Panel" set category = "Admin" - usr.client.holder.player_panel_new() - SSblackbox.add_details("admin_verb","Player Panel New") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return \ No newline at end of file + if(usr.client.holder) + usr.client.holder.player_panel_new() + SSblackbox.add_details("admin_verb","Player Panel New") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! From d859e3a6370add6e5d2cc522a4a04b73263164a2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 17:18:06 -0500 Subject: [PATCH 074/215] Diseases can now only spread to mobs with an atmos line of sight --- code/datums/diseases/_disease.dm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index fbf6af136e..cc11d0e6d2 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -115,12 +115,19 @@ else return - if(isturf(source.loc)) + var/turf/T = source.loc + if(istype(T)) for(var/mob/living/carbon/C in oview(spread_range, source)) - if(isturf(C.loc)) - if(AStar(source, C.loc,/turf/proc/Distance, spread_range, adjacent = (spread_flags & AIRBORNE) ? /turf/proc/reachableAdjacentAtmosTurfs : /turf/proc/reachableAdjacentTurfs)) - C.ContractDisease(src) - + var/turf/V = get_turf(C) + if(V) + while(TRUE) + if(V == T) + C.ContractDisease(src) + break + var/turf/Temp = get_step_towards(V, T) + if(!CANATMOSPASS(V, Temp)) + break + V = Temp /datum/disease/process() if(!holder) From 54d8e3a1599d2d7dacaff13da5d753298e374e05 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 17:18:09 -0500 Subject: [PATCH 075/215] You can no longer mount borgs while stunned. --- code/modules/mob/living/silicon/robot/robot.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 9574533884..27cf0c3a82 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1140,7 +1140,7 @@ return if(incapacitated()) return - if(M.restrained()) + if(M.incapacitated()) return if(module) if(!module.allow_riding) From c013ce47936b32d39e0eaaba71360f2c5ccde80c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 17:19:14 -0500 Subject: [PATCH 076/215] [Delta] Ridin' Dirty --- _maps/map_files/Deltastation/DeltaStation2.dmm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 62311b4885..df3d53cf31 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -52672,7 +52672,6 @@ /obj/machinery/camera/emp_proof{ c_tag = "Containment - Fore Starboard"; dir = 8; - icon_state = "camera"; network = list("Singularity") }, /turf/open/floor/plating/airless, @@ -54400,7 +54399,6 @@ /obj/machinery/camera/emp_proof{ c_tag = "Containment - Fore Port"; dir = 4; - icon_state = "camera"; network = list("Singularity") }, /turf/open/space, @@ -62751,7 +62749,6 @@ /obj/machinery/camera/emp_proof{ c_tag = "Containment - Aft Port"; dir = 4; - icon_state = "camera"; network = list("Singularity") }, /turf/open/space, @@ -64431,7 +64428,6 @@ /obj/machinery/camera/emp_proof{ c_tag = "Containment - Aft Starboard"; dir = 8; - icon_state = "camera"; network = list("Singularity") }, /turf/open/floor/plating/airless, From e034a6be50ffe1f0047d85e3c04fe18c8d0d7495 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 19:08:53 -0500 Subject: [PATCH 077/215] Security record crime details is now a single line input box --- code/game/machinery/computer/security.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 5baa169e99..b0970edbad 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -620,7 +620,7 @@ What a mess.*/ if("mi_crim_add") if(istype(active1, /datum/data/record)) var/t1 = stripped_input(usr, "Please input minor crime names:", "Secure. records", "", null) - var/t2 = stripped_multiline_input(usr, "Please input minor crime details:", "Secure. records", "", null) + var/t2 = stripped_input(usr, "Please input minor crime details:", "Secure. records", "", null) if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) return var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) @@ -634,7 +634,7 @@ What a mess.*/ if("ma_crim_add") if(istype(active1, /datum/data/record)) var/t1 = stripped_input(usr, "Please input major crime names:", "Secure. records", "", null) - var/t2 = stripped_multiline_input(usr, "Please input major crime details:", "Secure. records", "", null) + var/t2 = stripped_input(usr, "Please input major crime details:", "Secure. records", "", null) if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) return var/crime = GLOB.data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) From 1bdda132e7571bdd9dd8b2f7e4485707e655ca01 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 8 Jun 2017 20:39:15 -0500 Subject: [PATCH 078/215] Adds Medal Commendations! --- code/_globalvars/lists/medals.dm | 1 + code/controllers/subsystem/ticker.dm | 0 code/controllers/subsystem/ticker.dm.rej | 15 +++++++++++++++ code/datums/outfit.dm | 8 ++++++++ code/modules/jobs/job_types/captain.dm | 4 ++-- tgstation.dme | 1 + 6 files changed, 27 insertions(+), 2 deletions(-) create mode 100755 code/_globalvars/lists/medals.dm mode change 100644 => 100755 code/controllers/subsystem/ticker.dm create mode 100644 code/controllers/subsystem/ticker.dm.rej mode change 100644 => 100755 code/datums/outfit.dm mode change 100644 => 100755 code/modules/jobs/job_types/captain.dm diff --git a/code/_globalvars/lists/medals.dm b/code/_globalvars/lists/medals.dm new file mode 100755 index 0000000000..0d7903ef7e --- /dev/null +++ b/code/_globalvars/lists/medals.dm @@ -0,0 +1 @@ +GLOBAL_LIST_EMPTY(commendations) \ No newline at end of file diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm old mode 100644 new mode 100755 diff --git a/code/controllers/subsystem/ticker.dm.rej b/code/controllers/subsystem/ticker.dm.rej new file mode 100644 index 0000000000..e2d04fe7a2 --- /dev/null +++ b/code/controllers/subsystem/ticker.dm.rej @@ -0,0 +1,15 @@ +diff a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm (rejected hunks) +@@ -613,6 +615,13 @@ SUBSYSTEM_DEF(ticker) + mode.declare_station_goal_completion() + + CHECK_TICK ++ //medals, placed far down so that people can actually see the commendations. ++ if(GLOB.commendations) ++ to_chat(world, "Medal Commendations:") ++ for (var/com in GLOB.commendations) ++ to_chat(world, com) ++ ++ CHECK_TICK + + //Collects persistence features + SSpersistence.CollectData() diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm old mode 100644 new mode 100755 index 4c39d11691..1cced13cb4 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -22,6 +22,7 @@ var/internals_slot = null //ID of slot containing a gas tank var/list/backpack_contents = null // In the list(path=count,otherpath=count) format var/list/implants = null + var/accessory = null var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters @@ -64,6 +65,13 @@ if(suit_store) H.equip_to_slot_or_del(new suit_store(H),slot_s_store) + if(accessory) + var/obj/item/clothing/under/U = H.w_uniform + if(U) + U.attach_accessory(new accessory(H)) + else + WARNING("Unable to equip accessory [accessory] in outfit [name]. No uniform present!") + if(l_hand) H.put_in_l_hand(new l_hand(H)) if(r_hand) diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm old mode 100644 new mode 100755 index 25ae27f769..a8a5532b4b --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -46,8 +46,8 @@ Captain dufflebag = /obj/item/weapon/storage/backpack/dufflebag/captain implants = list(/obj/item/weapon/implant/mindshield) - - + accessory = /obj/item/clothing/accessory/medal/gold/captain + /* Head of Personnel */ diff --git a/tgstation.dme b/tgstation.dme index 0d035a36f3..f8aa3db8de 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -111,6 +111,7 @@ #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\maintenance_loot.dm" #include "code\_globalvars\lists\mapping.dm" +#include "code\_globalvars\lists\medals.dm" #include "code\_globalvars\lists\mobs.dm" #include "code\_globalvars\lists\names.dm" #include "code\_globalvars\lists\objects.dm" From ff53afcd99dee5f839bf4fa694caf4ee3abc74a1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 03:26:59 -0500 Subject: [PATCH 079/215] Fixes clockwork armor bitflags --- .../gamemodes/clock_cult/clock_items/clockwork_armor.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm index 49c2bb4c13..3b0c220b87 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm @@ -25,7 +25,7 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) - flags &= STOPSPRESSUREDMAGE + flags &= ~STOPSPRESSUREDMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) @@ -81,7 +81,7 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) - flags &= STOPSPRESSUREDMAGE + flags &= ~STOPSPRESSUREDMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) @@ -142,7 +142,7 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list(melee = 80, bullet = 70, laser = -25, energy = 0, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) - flags &= STOPSPRESSUREDMAGE + flags &= ~STOPSPRESSUREDMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) @@ -194,7 +194,7 @@ if(GLOB.ratvar_awakens) flags |= NOSLIP else - flags &= NOSLIP + flags &= ~NOSLIP /obj/item/clothing/shoes/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) if(equipper && !is_servant_of_ratvar(equipper)) From 99ac851f468b607f8261d1a4a9dfef649c4d9d2f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 03:42:22 -0500 Subject: [PATCH 080/215] Gang - Purchasing the improvised shotgun actually spawns a gun. --- code/game/gamemodes/gang/gang_items.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm index dae3c85be1..e479034e51 100644 --- a/code/game/gamemodes/gang/gang_items.dm +++ b/code/game/gamemodes/gang/gang_items.dm @@ -215,6 +215,7 @@ name = "Sawn-Off Improvised Shotgun" id = "sawn" cost = 6 + item_path = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised/sawn /datum/gang_item/weapon/ammo/improvised_ammo name = "Box of Buckshot" From 07cb1ab1de5d7419baa9847fbee2ffed2780079c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 08:59:57 -0500 Subject: [PATCH 081/215] Fix related CID/IPs on player panel --- code/modules/admin/admin.dm | 2 +- code/modules/admin/admin.dm.rej | 10 ++++++++++ code/modules/admin/topic.dm | 7 +++---- code/modules/admin/topic.dm.rej | 10 ++++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 code/modules/admin/admin.dm.rej create mode 100644 code/modules/admin/topic.dm.rej diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index a1f98cb89f..d31a9a7edf 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -38,7 +38,7 @@ if(M.client) body += "
\[First Seen: [M.client.player_join_date]\]\[Byond account registered on: [M.client.account_join_date]\]" - body += "
Show related accounts by: " + body += "

Show related accounts by: " body += "\[ CID | " body += "IP \]" diff --git a/code/modules/admin/admin.dm.rej b/code/modules/admin/admin.dm.rej new file mode 100644 index 0000000000..39e86b0f03 --- /dev/null +++ b/code/modules/admin/admin.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm (rejected hunks) +@@ -434,7 +434,7 @@ + if("Hard Restart (No Delay, No Feeback Reason)") + world.Reboot() + if("Hardest Restart (No actions, just reboot)") +- world.Reboot(fast_track = TRUE) ++ world.Reboot(fast_track = TRUE) + if("Service Restart (Force restart DD)") + GLOB.reboot_mode = REBOOT_MODE_HARD + world.ServiceReboot() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 4756318ee7..97bbfc0792 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2247,9 +2247,8 @@ thing_to_check = splittext(thing_to_check, ", ") - var/dat = "Related accounts by [uppertext(href_list["showrelatedacc"])]:
" - for(var/thing in thing_to_check) - dat += "[thing]
" + var/list/dat = list("Related accounts by [uppertext(href_list["showrelatedacc"])]:") + dat += thing_to_check - usr << browse(dat, "size=420x300") + usr << browse(dat.Join("
"), "window=related_[C];size=420x300") diff --git a/code/modules/admin/topic.dm.rej b/code/modules/admin/topic.dm.rej new file mode 100644 index 0000000000..333acee487 --- /dev/null +++ b/code/modules/admin/topic.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm (rejected hunks) +@@ -2240,7 +2240,7 @@ + + else if(href_list["showrelatedacc"]) + var/client/C = locate(href_list["client"]) in GLOB.clients +- var/list/thing_to_check ++ var/thing_to_check + if(href_list["showrelatedacc"] == "cid") + thing_to_check = C.related_accounts_cid + else From 9e0488d2d90e0e4974211e59a040f1ba3c08c20c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 09:01:03 -0500 Subject: [PATCH 082/215] Moves borer completion to gamemode --- code/controllers/subsystem/ticker.dm | 37 ---------------------------- code/game/gamemodes/game_mode.dm | 37 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 9dce620e25..e335669acc 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -581,43 +581,6 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK - //Borers - var/borerwin = FALSE - if(GLOB.borers.len) - var/borertext = "
The borers were:" - for(var/mob/living/simple_animal/borer/B in GLOB.borers) - if((B.key || B.controlling) && B.stat != DEAD) - borertext += "
[B.controlling ? B.victim.key : B.key] was [B.truename] (" - var/turf/location = get_turf(B) - if(location.z == ZLEVEL_CENTCOM && B.victim) - borertext += "escaped with host" - else - borertext += "failed" - borertext += ")" - to_chat(world, borertext) - - var/total_borers = 0 - for(var/mob/living/simple_animal/borer/B in GLOB.borers) - if((B.key || B.victim) && B.stat != DEAD) - total_borers++ - if(total_borers) - var/total_borer_hosts = 0 - for(var/mob/living/carbon/C in GLOB.mob_list) - var/mob/living/simple_animal/borer/D = C.has_brain_worms() - var/turf/location = get_turf(C) - if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) - total_borer_hosts++ - if(GLOB.total_borer_hosts_needed <= total_borer_hosts) - borerwin = TRUE - to_chat(world, "There were [total_borers] borers alive at round end!") - to_chat(world, "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [GLOB.total_borer_hosts_needed] hosts to escape.") - if(borerwin) - to_chat(world, "The borers were successful!") - else - to_chat(world, "The borers have failed!") - - CHECK_TICK - mode.declare_station_goal_completion() CHECK_TICK diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 4c03417aa9..f71bb2cf45 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -264,6 +264,43 @@ send2irc("Server", "Round just ended.") if(cult.len && !istype(SSticker.mode,/datum/game_mode/cult)) datum_cult_completion() + + if(GLOB.borers.len) + var/borerwin = FALSE + var/borertext = "
The borers were:" + for(var/mob/living/simple_animal/borer/B in GLOB.borers) + if((B.key || B.controlling) && B.stat != DEAD) + borertext += "
[B.controlling ? B.victim.key : B.key] was [B.truename] (" + var/turf/location = get_turf(B) + if(location.z == ZLEVEL_CENTCOM && B.victim) + borertext += "escaped with host" + else + borertext += "failed" + borertext += ")" + to_chat(world, borertext) + + var/total_borers = 0 + for(var/mob/living/simple_animal/borer/B in GLOB.borers) + if((B.key || B.victim) && B.stat != DEAD) + total_borers++ + if(total_borers) + var/total_borer_hosts = 0 + for(var/mob/living/carbon/C in GLOB.mob_list) + var/mob/living/simple_animal/borer/D = C.has_brain_worms() + var/turf/location = get_turf(C) + if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD) + total_borer_hosts++ + if(GLOB.total_borer_hosts_needed <= total_borer_hosts) + borerwin = TRUE + to_chat(world, "There were [total_borers] borers alive at round end!") + to_chat(world, "A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [GLOB.total_borer_hosts_needed] hosts to escape.") + if(borerwin) + to_chat(world, "The borers were successful!") + else + to_chat(world, "The borers have failed!") + + CHECK_TICK + return 0 From 5f1fe8b8da249a1d7e08eccfc1d4f7455265c6de Mon Sep 17 00:00:00 2001 From: LetterJay Date: Fri, 9 Jun 2017 09:04:31 -0500 Subject: [PATCH 083/215] cleanup --- code/modules/admin/admin.dm.rej | 10 ---------- code/modules/admin/topic.dm | 8 ++++---- code/modules/admin/topic.dm.rej | 10 ---------- 3 files changed, 4 insertions(+), 24 deletions(-) delete mode 100644 code/modules/admin/admin.dm.rej delete mode 100644 code/modules/admin/topic.dm.rej diff --git a/code/modules/admin/admin.dm.rej b/code/modules/admin/admin.dm.rej deleted file mode 100644 index 39e86b0f03..0000000000 --- a/code/modules/admin/admin.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm (rejected hunks) -@@ -434,7 +434,7 @@ - if("Hard Restart (No Delay, No Feeback Reason)") - world.Reboot() - if("Hardest Restart (No actions, just reboot)") -- world.Reboot(fast_track = TRUE) -+ world.Reboot(fast_track = TRUE) - if("Service Restart (Force restart DD)") - GLOB.reboot_mode = REBOOT_MODE_HARD - world.ServiceReboot() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 97bbfc0792..21e3961c64 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2239,7 +2239,7 @@ error_viewer.show_to(owner, null, href_list["viewruntime_linear"]) else if(href_list["showrelatedacc"]) var/client/C = locate(href_list["client"]) in GLOB.clients - var/list/thing_to_check + var/thing_to_check if(href_list["showrelatedacc"] == "cid") thing_to_check = C.related_accounts_cid else @@ -2247,8 +2247,8 @@ thing_to_check = splittext(thing_to_check, ", ") - var/list/dat = list("Related accounts by [uppertext(href_list["showrelatedacc"])]:") - dat += thing_to_check + var/list/dat = list("Related accounts by [uppertext(href_list["showrelatedacc"])]:") + dat += thing_to_check - usr << browse(dat.Join("
"), "window=related_[C];size=420x300") + usr << browse(dat.Join("
"), "window=related_[C];size=420x300") diff --git a/code/modules/admin/topic.dm.rej b/code/modules/admin/topic.dm.rej deleted file mode 100644 index 333acee487..0000000000 --- a/code/modules/admin/topic.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm (rejected hunks) -@@ -2240,7 +2240,7 @@ - - else if(href_list["showrelatedacc"]) - var/client/C = locate(href_list["client"]) in GLOB.clients -- var/list/thing_to_check -+ var/thing_to_check - if(href_list["showrelatedacc"] == "cid") - thing_to_check = C.related_accounts_cid - else From 109c1e2ecbdaa81d5f70e433cfb63bd861742050 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 09:06:59 -0500 Subject: [PATCH 084/215] Automatic changelog generation for PR #1498 [ci skip] --- html/changelogs/AutoChangeLog-pr-1498.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1498.yml diff --git a/html/changelogs/AutoChangeLog-pr-1498.yml b/html/changelogs/AutoChangeLog-pr-1498.yml new file mode 100644 index 0000000000..08f8aaf02b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1498.yml @@ -0,0 +1,4 @@ +author: "oranges" +delete-after: True +changes: + - tweak: "Security minor and major crime descriptors are now a single line input, making it easier to add them" From e90145c4909b96747cf99dd194ce4e2a840b43fb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 09:10:09 -0500 Subject: [PATCH 085/215] Automatic changelog generation for PR #1327 [ci skip] --- html/changelogs/AutoChangeLog-pr-1327.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1327.yml diff --git a/html/changelogs/AutoChangeLog-pr-1327.yml b/html/changelogs/AutoChangeLog-pr-1327.yml new file mode 100644 index 0000000000..85eddc62fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1327.yml @@ -0,0 +1,5 @@ +author: "Goodstuff" +delete-after: True +changes: + - bugfix: "Fixes the crafting recipe for black carpet" + - bugfix: "Removed a random white dot on the black carpet sprite" From 9198b10fd3f2a467eb4baec465c2526cf376df85 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 09:29:47 -0500 Subject: [PATCH 086/215] Medical record summaries are now single inputs as well --- code/game/machinery/computer/medical.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 2bb9d61068..fa2924c447 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -332,7 +332,7 @@ src.active2.fields["mi_dis"] = t1 if("mi_dis_d") if(active2) - var/t1 = stripped_multiline_input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) + var/t1 = stripped_input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) return src.active2.fields["mi_dis_d"] = t1 @@ -344,7 +344,7 @@ src.active2.fields["ma_dis"] = t1 if("ma_dis_d") if(active2) - var/t1 = stripped_multiline_input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) + var/t1 = stripped_input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) return src.active2.fields["ma_dis_d"] = t1 @@ -356,7 +356,7 @@ src.active2.fields["alg"] = t1 if("alg_d") if(active2) - var/t1 = stripped_multiline_input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) + var/t1 = stripped_input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) return src.active2.fields["alg_d"] = t1 @@ -368,13 +368,13 @@ src.active2.fields["cdi"] = t1 if("cdi_d") if(active2) - var/t1 = stripped_multiline_input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) + var/t1 = stripped_input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) return src.active2.fields["cdi_d"] = t1 if("notes") if(active2) - var/t1 = stripped_multiline_input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) + var/t1 = stripped_input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) return src.active2.fields["notes"] = t1 From f5d219bc6bdacd1e7767f9b35054cd704b1cdb4d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 15:55:32 -0500 Subject: [PATCH 087/215] Automatic changelog generation for PR #1487 [ci skip] --- html/changelogs/AutoChangeLog-pr-1487.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1487.yml diff --git a/html/changelogs/AutoChangeLog-pr-1487.yml b/html/changelogs/AutoChangeLog-pr-1487.yml new file mode 100644 index 0000000000..eeed3b359b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1487.yml @@ -0,0 +1,4 @@ +author: "Xhuis" +delete-after: True +changes: + - tweak: "Defibrillator paddles will no longer stick to your hands, and will snap back onto the unit if you drop them somehow." From 3c0ceae3a447fe337470c5ba57fc02a0abb3b8ac Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 9 Jun 2017 20:24:19 -0400 Subject: [PATCH 088/215] fixes oof.ogg --- sound/voice/oof.ogg | Bin 9714 -> 6429 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sound/voice/oof.ogg b/sound/voice/oof.ogg index dd0e7edee6fd66e940e911454b8cd066de3f6d27..8d686c0c69c4f81ab4d71124403d4e89e3c2154b 100644 GIT binary patch literal 6429 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 Date: Fri, 9 Jun 2017 20:06:36 -0500 Subject: [PATCH 089/215] Fixes death report giving the wrong damage type --- code/controllers/subsystem/blackbox.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 287e04abd9..1496479fb7 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -171,8 +171,8 @@ SUBSYSTEM_DEF(blackbox) var/sqlfire = sanitizeSQL(L.getFireLoss()) var/sqlbrain = sanitizeSQL(L.getBrainLoss()) var/sqloxy = sanitizeSQL(L.getOxyLoss()) - var/sqltox = sanitizeSQL(L.getStaminaLoss()) - var/sqlclone = sanitizeSQL(L.getStaminaLoss()) + var/sqltox = sanitizeSQL(L.getToxLoss()) + var/sqlclone = sanitizeSQL(L.getCloneLoss()) var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") var/map = sanitizeSQL(SSmapping.config.map_name) From 7658deae098dd59289d01c413407f728c45692ab Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 20:08:42 -0500 Subject: [PATCH 090/215] Fixes communications consoles --- code/game/machinery/computer/communications.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 code/game/machinery/computer/communications.dm diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm old mode 100644 new mode 100755 index 605cd60ce6..8bfbbd1348 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -1,7 +1,7 @@ // The communications computer /obj/machinery/computer/communications name = "communications console" - desc = "This can be used for various important functions. Still under developement." + desc = "A console used for high-priority announcements and emergencies." icon_screen = "comm" icon_keyboard = "tech_key" req_access = list(GLOB.access_heads) From b2cc05b6b5687d0ffc7bedf03a336b9239c37cb1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 20:08:45 -0500 Subject: [PATCH 091/215] Makes dismembered heads and brains respect NOCLONE --- code/modules/mob/living/brain/brain_item.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index aa9e133165..2ee3007bb1 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -72,6 +72,8 @@ if(!brainmob.stored_dna) brainmob.stored_dna = new /datum/dna/stored(brainmob) C.dna.copy_dna(brainmob.stored_dna) + if(L.disabilities & NOCLONE) + brainmob.disabilities |= NOCLONE //This is so you can't just decapitate a husked guy and clone them without needing to get a new body var/obj/item/organ/zombie_infection/ZI = L.getorganslot("zombie_infection") if(ZI) brainmob.set_species(ZI.old_species) //For if the brain is cloned From 9a8778b16f0a0e7c332e456c845f310992d3fd72 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 20:11:51 -0500 Subject: [PATCH 092/215] Adds /image/proc/copy_overlays --- .../subsystem/processing/overlays.dm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/processing/overlays.dm b/code/controllers/subsystem/processing/overlays.dm index 4e1d2d64d5..c856ab165b 100644 --- a/code/controllers/subsystem/processing/overlays.dm +++ b/code/controllers/subsystem/processing/overlays.dm @@ -161,7 +161,7 @@ PROCESSING_SUBSYSTEM_DEF(overlays) if(NOT_QUEUED_ALREADY && need_compile) //have we caught more pokemon? QUEUE_FOR_COMPILE -/atom/proc/copy_overlays(atom/other, cut_old = FALSE) //copys our_overlays from another atom +/atom/proc/copy_overlays(atom/other, cut_old) //copys our_overlays from another atom if(!other) if(cut_old) cut_overlays() @@ -190,3 +190,18 @@ PROCESSING_SUBSYSTEM_DEF(overlays) /image/proc/cut_overlays(x) overlays.Cut() + +/image/proc/copy_overlays(atom/other, cut_old) + if(!other) + if(cut_old) + cut_overlays() + return + + var/list/cached_other = other.our_overlays + if(cached_other) + if(cut_old || !overlays.len) + overlays = cached_other.Copy() + else + overlays |= cached_other + else if(cut_old) + cut_overlays() From b1b39093e98ddf479b293b9558e749b8e07314ed Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 9 Jun 2017 20:27:10 -0500 Subject: [PATCH 093/215] Changes Amanitin log message --- code/modules/reagents/chemistry/reagents/toxin_reagents.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index cedec9941b..11db7e8d68 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -613,9 +613,8 @@ /datum/reagent/toxin/amanitin/on_mob_delete(mob/living/M) var/toxdamage = current_cycle*3*REM + M.log_message("has taken [toxdamage] toxin damage from amanitin toxin", INDIVIDUAL_ATTACK_LOG) M.adjustToxLoss(toxdamage) - if(M) - add_logs(M, get_turf(M), "has taken [toxdamage] toxin damage from amanitin toxin") ..() /datum/reagent/toxin/lipolicide From d8e6b4acc29b900a8ae56b0b4679d0c51fd8b153 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 02:02:40 -0500 Subject: [PATCH 094/215] Polishes the glass tables --- icons/obj/smooth_structures/glass_table.dmi | Bin 1457 -> 2311 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/smooth_structures/glass_table.dmi b/icons/obj/smooth_structures/glass_table.dmi index 3fa90ea0642f513da6934618e89996cfa917b708..112499f3801c278984d96772135e84865553c51f 100644 GIT binary patch delta 2109 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 YUN$JTjOAqgUIrlWboFyt=akR{0Q}`bH2?qr From c474c3bb6e4d3fef068fb19a264e2980c16dab7c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 07:57:36 -0500 Subject: [PATCH 095/215] Automatic changelog generation for PR #1516 [ci skip] --- html/changelogs/AutoChangeLog-pr-1516.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1516.yml diff --git a/html/changelogs/AutoChangeLog-pr-1516.yml b/html/changelogs/AutoChangeLog-pr-1516.yml new file mode 100644 index 0000000000..6bc4bf5372 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1516.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - imageadd: "Glass tables are shinier" From a583375bea7cedb20d38ded99747fbaf49045761 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 07:58:39 -0500 Subject: [PATCH 096/215] Automatic changelog generation for PR #1513 [ci skip] --- html/changelogs/AutoChangeLog-pr-1513.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1513.yml diff --git a/html/changelogs/AutoChangeLog-pr-1513.yml b/html/changelogs/AutoChangeLog-pr-1513.yml new file mode 100644 index 0000000000..3066b9af93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1513.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "Cloning dismembered heads and brains now respects husking and other clone preventing disabilities." From 8a628cf13f2df0141cc87830f4d127ac9d5f4650 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 09:00:08 -0500 Subject: [PATCH 097/215] Delete ties.dm --- code/modules/clothing/neck/ties.dm | 179 ----------------------------- 1 file changed, 179 deletions(-) delete mode 100644 code/modules/clothing/neck/ties.dm diff --git a/code/modules/clothing/neck/ties.dm b/code/modules/clothing/neck/ties.dm deleted file mode 100644 index 3affebc270..0000000000 --- a/code/modules/clothing/neck/ties.dm +++ /dev/null @@ -1,179 +0,0 @@ -/obj/item/clothing/neck/tie - name = "tie" - desc = "A neosilk clip-on tie." - icon = 'icons/obj/clothing/neck.dmi' - icon_state = "bluetie" - item_state = "" //no inhands - item_color = "bluetie" - w_class = WEIGHT_CLASS_SMALL - -/obj/item/clothing/neck/tie/blue - name = "blue tie" - icon_state = "bluetie" - item_color = "bluetie" - -/obj/item/clothing/neck/tie/red - name = "red tie" - icon_state = "redtie" - item_color = "redtie" - -/obj/item/clothing/neck/tie/black - name = "black tie" - icon_state = "blacktie" - item_color = "blacktie" - -/obj/item/clothing/neck/tie/horrible - name = "horrible tie" - desc = "A neosilk clip-on tie. This one is disgusting." - icon_state = "horribletie" - item_color = "horribletie" - -/obj/item/clothing/neck/stethoscope - name = "stethoscope" - desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." - icon_state = "stethoscope" - item_color = "stethoscope" - -/obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) - if(ishuman(M) && isliving(user)) - if(user.a_intent == INTENT_HELP) - var/body_part = parse_zone(user.zone_selected) - - var/heart_strength = "no" - var/lung_strength = "no" - - var/obj/item/organ/heart/heart = M.getorganslot("heart") - var/obj/item/organ/lungs/lungs = M.getorganslot("lungs") - - if(!(M.stat == DEAD || (M.status_flags&FAKEDEATH))) - if(heart && istype(heart)) - heart_strength = "an unstable" - if(heart.beating) - heart_strength = "a healthy" - if(lungs && istype(lungs)) - lung_strength = "strained" - if(!(M.failed_last_breath || M.losebreath)) - lung_strength = "healthy" - - var/diagnosis = (body_part == "chest" ? "You hear [heart_strength] pulse and [lung_strength] respiration." : "You faintly hear [heart_strength] pulse.") - user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [M]'s [body_part]. [diagnosis]") - return - return ..(M,user) - -/////////// -//SCARVES// -/////////// - -/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies. - name = "white scarf" - icon_state = "scarf" - desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." - item_color = "scarf" - dog_fashion = /datum/dog_fashion/head - -/obj/item/clothing/neck/scarf/black - name = "black scarf" - icon_state = "scarf" - color = "#4A4A4B" //Grey but it looks black - -/obj/item/clothing/neck/scarf/red - name = "red scarf" - icon_state = "scarf" - color = "#D91414" //Red - -/obj/item/clothing/neck/scarf/green - name = "green scarf" - icon_state = "scarf" - color = "#5C9E54" //Green - -/obj/item/clothing/neck/scarf/darkblue - name = "dark blue scarf" - icon_state = "scarf" - color = "#1E85BC" //Blue - -/obj/item/clothing/neck/scarf/purple - name = "purple scarf" - icon_state = "scarf" - color = "#9557C5" //purple - -/obj/item/clothing/neck/scarf/yellow - name = "yellow scarf" - icon_state = "scarf" - color = "#E0C14F" //Yellow - -/obj/item/clothing/neck/scarf/orange - name = "orange scarf" - icon_state = "scarf" - color = "#C67A4B" //orange - -/obj/item/clothing/neck/scarf/cyan - name = "cyan scarf" - icon_state = "scarf" - color = "#54A3CE" //Cyan - - -//Striped scarves get their own icons - -/obj/item/clothing/neck/scarf/zebra - name = "zebra scarf" - icon_state = "zebrascarf" - item_color = "zebrascarf" - -/obj/item/clothing/neck/scarf/christmas - name = "christmas scarf" - icon_state = "christmasscarf" - item_color = "christmasscarf" - -//The three following scarves don't have the scarf subtype -//This is because Ian can equip anything from that subtype -//However, these 3 don't have corgi versions of their sprites -/obj/item/clothing/neck/stripedredscarf - name = "striped red scarf" - icon_state = "stripedredscarf" - item_color = "stripedredscarf" - -/obj/item/clothing/neck/stripedgreenscarf - name = "striped green scarf" - icon_state = "stripedgreenscarf" - item_color = "stripedgreenscarf" - -/obj/item/clothing/neck/stripedbluescarf - name = "striped blue scarf" - icon_state = "stripedbluescarf" - item_color = "stripedbluescarf" - -/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys - name = "pet collar" - desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." - icon_state = "petcollar" - item_color = "petcollar" - var/tagname = null - -/obj/item/clothing/neck/petcollar/attack_self(mob/user) - tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) - name = "[initial(name)] - [tagname]" - -////////////// -//DOPE BLING// -////////////// - -/obj/item/clothing/neck/necklace/dope - name = "gold necklace" - desc = "Damn, it feels good to be a gangster." - icon = 'icons/obj/clothing/ties.dmi' - icon_state = "bling" - item_color = "bling" - -/obj/item/clothing/neck/necklace/dope/gang_contraband_value() - return 2 - -//////////////// -//OONGA BOONGA// -//////////////// - -/obj/item/clothing/neck/talisman - name = "bone talisman" - desc = "A hunter's talisman, some say the old gods smile on those who wear it." - icon_state = "talisman" - item_color = "talisman" - armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) \ No newline at end of file From 8a1c8f70b54302571767026857b23730e7de3a33 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 09:01:26 -0500 Subject: [PATCH 098/215] Automatic changelog generation for PR #1445 [ci skip] --- html/changelogs/AutoChangeLog-pr-1445.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1445.yml diff --git a/html/changelogs/AutoChangeLog-pr-1445.yml b/html/changelogs/AutoChangeLog-pr-1445.yml new file mode 100644 index 0000000000..960d3366f3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1445.yml @@ -0,0 +1,11 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - rscadd: "New plasma medals have been added to the Captain's medal box. Don't get them too warm." + - imageadd: "New sprites for plasma medals." + - imageadd: "Icon and worn sprites for all medals and the lawyer's badge have been improved. Worn medals more closely match their icons." + - tweak: "The bone talisman is an accessory again, so it's not useless." + - imageadd: "It also has a new worn sprite, based on an arm band." + - imagedel: "Ties have been removed from accessories.dmi and vice versa. Same for +the explorer's webbing sprites that were in there. ties.dmi is now neck.dmi, and has sprites for scarves, ties, sthetoscopes, etc." + - tweak: "Examining an accessory now tells you how to use it." From 82c34cca96b25648cfe514adaa2c5f141232e3f7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 09:09:53 -0500 Subject: [PATCH 099/215] update master --- tgstation.dme | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index 0d035a36f3..20fd6d126b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1209,7 +1209,7 @@ #include "code\modules\clothing\masks\hailer.dm" #include "code\modules\clothing\masks\miscellaneous.dm" #include "code\modules\clothing\masks\vg_masks.dm" -#include "code\modules\clothing\neck\ties.dm" +#include "code\modules\clothing\neck\neck.dm" #include "code\modules\clothing\outfits\ert.dm" #include "code\modules\clothing\outfits\standard.dm" #include "code\modules\clothing\shoes\bananashoes.dm" @@ -1234,6 +1234,7 @@ #include "code\modules\clothing\suits\utility.dm" #include "code\modules\clothing\suits\vg_suits.dm" #include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\under\accessories.dm" #include "code\modules\clothing\under\color.dm" #include "code\modules\clothing\under\miscellaneous.dm" #include "code\modules\clothing\under\pants.dm" @@ -1494,8 +1495,8 @@ #include "code\modules\mining\equipment\lazarus_injector.dm" #include "code\modules\mining\equipment\marker_beacons.dm" #include "code\modules\mining\equipment\mineral_scanner.dm" -#include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\mining_tools.dm" +#include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\survival_pod.dm" #include "code\modules\mining\equipment\vendor_items.dm" From 700004e309eb20e099b16c2fc52063d12d983c9d Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 09:24:03 -0500 Subject: [PATCH 100/215] Update lockbox.dm --- .../objects/items/weapons/storage/lockbox.dm | 256 ++++++++++-------- 1 file changed, 147 insertions(+), 109 deletions(-) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 8902a1f4f6..94f34e0e3b 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -1,119 +1,157 @@ -/obj/item/weapon/storage/lockbox - name = "lockbox" - desc = "A locked box." - icon_state = "lockbox+l" - item_state = "syringe_kit" - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. - storage_slots = 4 - req_access = list(GLOB.access_armory) - var/locked = 1 - var/broken = 0 - var/icon_locked = "lockbox+l" - var/icon_closed = "lockbox" - var/icon_broken = "lockbox+b" - - -/obj/item/weapon/storage/lockbox/attackby(obj/item/weapon/W, mob/user, params) - if(W.GetID()) - if(broken) - to_chat(user, "It appears to be broken.") - return - if(allowed(user)) - locked = !locked - if(locked) - icon_state = icon_locked - to_chat(user, "You lock the [src.name]!") - close_all() - return - else - icon_state = icon_closed - to_chat(user, "You unlock the [src.name]!") - return - else - to_chat(user, "Access Denied.") - return - if(!locked) - return ..() - else - to_chat(user, "It's locked!") - -/obj/item/weapon/storage/lockbox/MouseDrop(over_object, src_location, over_location) - if (locked) - src.add_fingerprint(usr) - to_chat(usr, "It's locked!") - return 0 - ..() - -/obj/item/weapon/storage/lockbox/emag_act(mob/user) - if(!broken) - broken = 1 - locked = 0 - desc += "It appears to be broken." - icon_state = src.icon_broken - if(user) - visible_message("\The [src] has been broken by [user] with an electromagnetic card!") - return -/obj/item/weapon/storage/lockbox/show_to(mob/user) - if(locked) - to_chat(user, "It's locked!") - else - ..() - return - -//Check the destination item type for contentto. -/obj/item/weapon/storage/lockbox/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return 0 - return ..() - -/obj/item/weapon/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - -/obj/item/weapon/storage/lockbox/loyalty - name = "lockbox of mindshield implants" - req_access = list(GLOB.access_security) - -/obj/item/weapon/storage/lockbox/loyalty/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/weapon/implantcase/mindshield(src) - new /obj/item/weapon/implanter/mindshield(src) - - -/obj/item/weapon/storage/lockbox/clusterbang - name = "lockbox of clusterbangs" - desc = "You have a bad feeling about opening this." - req_access = list(GLOB.access_security) - -/obj/item/weapon/storage/lockbox/clusterbang/PopulateContents() - new /obj/item/weapon/grenade/clusterbuster(src) - -/obj/item/weapon/storage/lockbox/medal - name = "medal box" - desc = "A locked box used to store medals of honor." - icon_state = "medalbox+l" - item_state = "syringe_kit" - w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 10 +/obj/item/weapon/storage/lockbox + name = "lockbox" + desc = "A locked box." + icon_state = "lockbox+l" + item_state = "syringe_kit" + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. + storage_slots = 4 + req_access = list(GLOB.access_armory) + var/locked = 1 + var/broken = 0 + var/icon_locked = "lockbox+l" + var/icon_closed = "lockbox" + var/icon_broken = "lockbox+b" + + +/obj/item/weapon/storage/lockbox/attackby(obj/item/weapon/W, mob/user, params) + if(W.GetID()) + if(broken) + to_chat(user, "It appears to be broken.") + return + if(allowed(user)) + locked = !locked + if(locked) + icon_state = icon_locked + to_chat(user, "You lock the [src.name]!") + close_all() + return + else + icon_state = icon_closed + to_chat(user, "You unlock the [src.name]!") + return + else + to_chat(user, "Access Denied.") + return + if(!locked) + return ..() + else + to_chat(user, "It's locked!") + +/obj/item/weapon/storage/lockbox/MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + to_chat(usr, "It's locked!") + return 0 + ..() + +/obj/item/weapon/storage/lockbox/emag_act(mob/user) + if(!broken) + broken = 1 + locked = 0 + desc += "It appears to be broken." + icon_state = src.icon_broken + if(user) + visible_message("\The [src] has been broken by [user] with an electromagnetic card!") + return +/obj/item/weapon/storage/lockbox/show_to(mob/user) + if(locked) + to_chat(user, "It's locked!") + else + ..() + return + +//Check the destination item type for contentto. +/obj/item/weapon/storage/lockbox/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(locked) + to_chat(user, "It's locked!") + return 0 + return ..() + +/obj/item/weapon/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + +/obj/item/weapon/storage/lockbox/loyalty + name = "lockbox of mindshield implants" + req_access = list(GLOB.access_security) + +/obj/item/weapon/storage/lockbox/loyalty/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/weapon/implantcase/mindshield(src) + new /obj/item/weapon/implanter/mindshield(src) + + +/obj/item/weapon/storage/lockbox/clusterbang + name = "lockbox of clusterbangs" + desc = "You have a bad feeling about opening this." + req_access = list(GLOB.access_security) + +/obj/item/weapon/storage/lockbox/clusterbang/PopulateContents() + new /obj/item/weapon/grenade/clusterbuster(src) + +/obj/item/weapon/storage/lockbox/medal + name = "medal box" + desc = "A locked box used to store medals of honor." + icon_state = "medalbox+l" + item_state = "syringe_kit" + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 10 max_combined_w_class = 20 - req_access = list(GLOB.access_captain) - icon_locked = "medalbox+l" - icon_closed = "medalbox" - icon_broken = "medalbox+b" + req_access = list(GLOB.access_captain) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" can_hold = list(/obj/item/clothing/accessory/medal) - -/obj/item/weapon/storage/lockbox/medal/PopulateContents() + +/obj/item/weapon/storage/lockbox/medal/PopulateContents() new /obj/item/clothing/accessory/medal/silver/valor(src) new /obj/item/clothing/accessory/medal/bronze_heart(src) - for(var/i in 1 to 3) + for(var/i in 1 to 3) new /obj/item/clothing/accessory/medal/conduct(src) new /obj/item/clothing/accessory/medal/gold/captain(src) new /obj/item/clothing/accessory/medal/silver/security(src) new /obj/item/clothing/accessory/medal/plasma(src) new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) new /obj/item/clothing/accessory/medal/gold/heroism(src) + +/obj/item/weapon/storage/lockbox/secmedal + name = "security medal box" + desc = "A locked box used to store medals to be given to members of the security department." + icon_state = "medalbox+l" + item_state = "syringe_kit" + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 10 + max_combined_w_class = 20 + req_access = list(GLOB.access_hos) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" + can_hold = list(/obj/item/clothing/accessory/medal) + +/obj/item/weapon/storage/lockbox/secmedal/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/silver/security(src) + +/obj/item/weapon/storage/lockbox/scimedal + name = "science medal box" + desc = "A locked box used to store medals to be given to members of the science department." + icon_state = "medalbox+l" + item_state = "syringe_kit" + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 10 + max_combined_w_class = 20 + req_access = list(GLOB.access_rd) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" + can_hold = list(/obj/item/clothing/accessory/medal) + +/obj/item/weapon/storage/lockbox/scimedal/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) From 522b6d917f709c1c091eae8b2b16717263312f55 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 09:36:39 -0500 Subject: [PATCH 101/215] updates --- .../closets/secure/scientist.dm | 1 + .../crates_lockers/closets/secure/security.dm | 16 +- code/modules/clothing/under/ties.dm | 230 ------------------ tgstation.dme | 1 - 4 files changed, 10 insertions(+), 238 deletions(-) delete mode 100644 code/modules/clothing/under/ties.dm diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 684ba9af55..feee04d56e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -24,3 +24,4 @@ new /obj/item/device/laser_pointer(src) new /obj/item/weapon/door_remote/research_director(src) new /obj/item/weapon/storage/box/firingpins(src) + new /obj/item/weapon/storage/lockbox/scimedal(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index d49241ff80..4934636948 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -11,7 +11,7 @@ else new /obj/item/weapon/storage/backpack/satchel/cap(src) new /obj/item/clothing/neck/cloak/cap(src) - new /obj/item/weapon/storage/daki(src) + new /obj/item/weapon/storage/daki(src) new /obj/item/weapon/storage/backpack/dufflebag/captain(src) new /obj/item/clothing/head/crown/fancy(src) new /obj/item/clothing/suit/captunic(src) @@ -83,6 +83,8 @@ new /obj/item/weapon/gun/energy/e_gun/hos(src) new /obj/item/device/flashlight/seclite(src) new /obj/item/weapon/pinpointer(src) + new /obj/item/clothing/under/rank/head_of_security/grey(src) + new /obj/item/weapon/storage/lockbox/secmedal(src) /obj/structure/closet/secure_closet/warden name = "\proper warden's locker" @@ -106,7 +108,7 @@ new /obj/item/device/flashlight/seclite(src) new /obj/item/clothing/gloves/krav_maga/sec(src) new /obj/item/weapon/door_remote/head_of_security(src) - new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat/compact(src) + new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat/compact(src) /obj/structure/closet/secure_closet/security name = "security officer's locker" @@ -132,28 +134,28 @@ /obj/structure/closet/secure_closet/security/cargo/PopulateContents() ..() - new /obj/item/clothing/accessory/armband/cargo(src) + new /obj/item/clothing/accessory/armband/cargo(src) new /obj/item/device/encryptionkey/headset_cargo(src) /obj/structure/closet/secure_closet/security/engine /obj/structure/closet/secure_closet/security/engine/PopulateContents() ..() - new /obj/item/clothing/accessory/armband/engine(src) + new /obj/item/clothing/accessory/armband/engine(src) new /obj/item/device/encryptionkey/headset_eng(src) /obj/structure/closet/secure_closet/security/science /obj/structure/closet/secure_closet/security/science/PopulateContents() ..() - new /obj/item/clothing/accessory/armband/science(src) + new /obj/item/clothing/accessory/armband/science(src) new /obj/item/device/encryptionkey/headset_sci(src) /obj/structure/closet/secure_closet/security/med /obj/structure/closet/secure_closet/security/med/PopulateContents() ..() - new /obj/item/clothing/accessory/armband/medblue(src) + new /obj/item/clothing/accessory/armband/medblue(src) new /obj/item/device/encryptionkey/headset_med(src) /obj/structure/closet/secure_closet/detective @@ -171,7 +173,7 @@ new /obj/item/clothing/head/det_hat(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/under/rank/det/grey(src) - new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/accessory/waistcoat(src) new /obj/item/clothing/suit/det_suit/grey(src) new /obj/item/clothing/head/fedora(src) new /obj/item/clothing/shoes/laceup(src) diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm deleted file mode 100644 index fcc8472834..0000000000 --- a/code/modules/clothing/under/ties.dm +++ /dev/null @@ -1,230 +0,0 @@ -/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is - name = "tie" - desc = "A neosilk clip-on tie." - icon = 'icons/obj/clothing/ties.dmi' - icon_state = "bluetie" - item_state = "" //no inhands - item_color = "bluetie" - slot_flags = 0 - w_class = WEIGHT_CLASS_SMALL - var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed - -/obj/item/clothing/accessory/proc/attach(obj/item/clothing/under/U, user) - if(pockets) // Attach storage to jumpsuit - if(U.pockets) // storage items conflict - return 0 - - pockets.loc = U - U.pockets = pockets - - U.hastie = src - loc = U - layer = FLOAT_LAYER - plane = FLOAT_PLANE - if(minimize_when_attached) - transform *= 0.5 //halve the size so it doesn't overpower the under - pixel_x += 8 - pixel_y -= 8 - U.add_overlay(src) - - for(var/armor_type in armor) - U.armor[armor_type] += armor[armor_type] - - return 1 - - -/obj/item/clothing/accessory/proc/detach(obj/item/clothing/under/U, user) - if(pockets && pockets == U.pockets) - pockets.loc = src - U.pockets = null - - for(var/armor_type in armor) - U.armor[armor_type] -= armor[armor_type] - - if(minimize_when_attached) - transform *= 2 - pixel_x -= 8 - pixel_y += 8 - layer = initial(layer) - plane = initial(plane) - U.cut_overlays() - U.hastie = null - -/obj/item/clothing/accessory/proc/on_uniform_equip(obj/item/clothing/under/U, user) - return - -/obj/item/clothing/accessory/proc/on_uniform_dropped(obj/item/clothing/under/U, user) - return - -/obj/item/clothing/accessory/waistcoat - name = "waistcoat" - desc = "For some classy, murderous fun." - icon_state = "waistcoat" - item_state = "waistcoat" - item_color = "waistcoat" - minimize_when_attached = FALSE - -////////// -//Medals// -////////// - -/obj/item/clothing/accessory/medal - name = "bronze medal" - desc = "A bronze medal." - icon_state = "bronze" - item_color = "bronze" - materials = list(MAT_METAL=1000) - resistance_flags = FIRE_PROOF - -//Pinning medals on people -/obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) - if(ishuman(M) && (user.a_intent == INTENT_HELP)) - - if(M.wear_suit) - if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered - to_chat(user, "Medals can only be pinned on jumpsuits.") - return - - if(M.w_uniform) - var/obj/item/clothing/under/U = M.w_uniform - var/delay = 20 - if(user == M) - delay = 0 - else - user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ - "You try to pin [src] on [M]'s chest.") - if(do_after(user, delay, target = M)) - if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment - if(user == M) - to_chat(user, "You attach [src] to [U].") - else - user.visible_message("[user] pins \the [src] on [M]'s chest.", \ - "You pin \the [src] on [M]'s chest.") - - else to_chat(user, "Medals can only be pinned on jumpsuits!") - else ..() - -/obj/item/clothing/accessory/medal/conduct - name = "distinguished conduct medal" - desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." - -/obj/item/clothing/accessory/medal/bronze_heart - name = "bronze heart medal" - desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty." - icon_state = "bronze_heart" - -/obj/item/clothing/accessory/medal/nobel_science - name = "nobel sciences award" - desc = "A bronze medal which represents significant contributions to the field of science or engineering." - -/obj/item/clothing/accessory/medal/silver - name = "silver medal" - desc = "A silver medal." - icon_state = "silver" - item_color = "silver" - materials = list(MAT_SILVER=1000) - -/obj/item/clothing/accessory/medal/silver/valor - name = "medal of valor" - desc = "A silver medal awarded for acts of exceptional valor." - -/obj/item/clothing/accessory/medal/silver/security - name = "robust security award" - desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff." - -/obj/item/clothing/accessory/medal/gold - name = "gold medal" - desc = "A prestigious golden medal." - icon_state = "gold" - item_color = "gold" - materials = list(MAT_GOLD=1000) - -/obj/item/clothing/accessory/medal/gold/captain - name = "medal of captaincy" - desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/accessory/medal/gold/heroism - name = "medal of exceptional heroism" - desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." - -//////////// -//Armbands// -//////////// - -/obj/item/clothing/accessory/armband - name = "red armband" - desc = "An fancy red armband!" - icon_state = "redband" - item_color = "redband" - -/obj/item/clothing/accessory/armband/deputy - name = "security deputy armband" - desc = "An armband, worn by personnel authorized to act as a deputy of station security." - -/obj/item/clothing/accessory/armband/cargo - name = "cargo bay guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." - icon_state = "cargoband" - item_color = "cargoband" - -/obj/item/clothing/accessory/armband/engine - name = "engineering guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" - icon_state = "engieband" - item_color = "engieband" - -/obj/item/clothing/accessory/armband/science - name = "science guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." - icon_state = "rndband" - item_color = "rndband" - -/obj/item/clothing/accessory/armband/hydro - name = "hydroponics guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." - icon_state = "hydroband" - item_color = "hydroband" - -/obj/item/clothing/accessory/armband/med - name = "medical guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." - icon_state = "medband" - item_color = "medband" - -/obj/item/clothing/accessory/armband/medblue - name = "medical guard armband" - desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." - icon_state = "medblueband" - item_color = "medblueband" - -////////////// -//OBJECTION!// -////////////// - -/obj/item/clothing/accessory/lawyers_badge - name = "attorney's badge" - desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." - icon_state = "lawyerbadge" - item_color = "lawyerbadge" - -/obj/item/clothing/accessory/lawyers_badge/attach(obj/item/clothing/under/U, user) - if(!..()) - return 0 - if(isliving(U.loc)) - on_uniform_equip(U, user) - -/obj/item/clothing/accessory/lawyers_badge/detach(obj/item/clothing/under/U, user) - ..() - if(isliving(U.loc)) - on_uniform_dropped(U, user) - -/obj/item/clothing/accessory/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(L) - L.bubble_icon = "lawyer" - -/obj/item/clothing/accessory/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(L) - L.bubble_icon = initial(L.bubble_icon) diff --git a/tgstation.dme b/tgstation.dme index 20fd6d126b..792fbf7f0d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1240,7 +1240,6 @@ #include "code\modules\clothing\under\pants.dm" #include "code\modules\clothing\under\shorts.dm" #include "code\modules\clothing\under\syndicate.dm" -#include "code\modules\clothing\under\ties.dm" #include "code\modules\clothing\under\trek.dm" #include "code\modules\clothing\under\vg_under.dm" #include "code\modules\clothing\under\jobs\civilian.dm" From 47687a6d1a071a755fec7bb420d4e1bc44ab1621 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 09:42:08 -0500 Subject: [PATCH 102/215] cleanup --- code/controllers/subsystem/ticker.dm | 8 ++++++++ code/controllers/subsystem/ticker.dm.rej | 15 --------------- code/modules/clothing/under/accessories.dm | 10 ++++++++++ code/modules/jobs/job_types/captain.dm | 5 +++-- tgstation.dme.rej | 10 ---------- 5 files changed, 21 insertions(+), 27 deletions(-) delete mode 100644 code/controllers/subsystem/ticker.dm.rej delete mode 100644 tgstation.dme.rej diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index e335669acc..afff0cdf59 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -583,6 +583,14 @@ SUBSYSTEM_DEF(ticker) mode.declare_station_goal_completion() + //medals, placed far down so that people can actually see the commendations. + if(GLOB.commendations) + to_chat(world, "Medal Commendations:") + for (var/com in GLOB.commendations) + to_chat(world, com) + + CHECK_TICK + CHECK_TICK //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools diff --git a/code/controllers/subsystem/ticker.dm.rej b/code/controllers/subsystem/ticker.dm.rej deleted file mode 100644 index e2d04fe7a2..0000000000 --- a/code/controllers/subsystem/ticker.dm.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm (rejected hunks) -@@ -613,6 +615,13 @@ SUBSYSTEM_DEF(ticker) - mode.declare_station_goal_completion() - - CHECK_TICK -+ //medals, placed far down so that people can actually see the commendations. -+ if(GLOB.commendations) -+ to_chat(world, "Medal Commendations:") -+ for (var/com in GLOB.commendations) -+ to_chat(world, com) -+ -+ CHECK_TICK - - //Collects persistence features - SSpersistence.CollectData() diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 3653d7a395..93321a053a 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -85,6 +85,7 @@ item_color = "bronze" materials = list(MAT_METAL=1000) resistance_flags = FIRE_PROOF + var/commended = FALSE //Pinning medals on people /obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) @@ -103,6 +104,9 @@ else user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ "You try to pin [src] on [M]'s chest.") + var/input + if(!commended && user != M) + input = stripped_input(user,"Please input a reason for this commendation, it will be recorded by Nanotrasen.", ,"", 140) if(do_after(user, delay, target = M)) if(U.attach_accessory(src, user, 0)) //Attach it, do not notify the user of the attachment if(user == M) @@ -110,6 +114,12 @@ else user.visible_message("[user] pins \the [src] on [M]'s chest.", \ "You pin \the [src] on [M]'s chest.") + if(input) + SSblackbox.add_details("commendation", json_encode(list("commender" = "[user.real_name]", "commendee" = "[M.real_name]", "medal" = "[src]", "reason" = input))) + GLOB.commendations += "[user.real_name] awarded [M.real_name] the [name]! \n- [input]" + commended = TRUE + log_game("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") + message_admins("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") else to_chat(user, "Medals can only be pinned on jumpsuits!") else ..() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index a8a5532b4b..da7e3da6b3 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -46,8 +46,9 @@ Captain dufflebag = /obj/item/weapon/storage/backpack/dufflebag/captain implants = list(/obj/item/weapon/implant/mindshield) - accessory = /obj/item/clothing/accessory/medal/gold/captain - + + accessory = /obj/item/clothing/accessory/medal/gold/captain + /* Head of Personnel */ diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index 64015ccf29..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -1169,7 +1169,7 @@ - #include "code\modules\clothing\masks\gasmask.dm" - #include "code\modules\clothing\masks\hailer.dm" - #include "code\modules\clothing\masks\miscellaneous.dm" --#include "code\modules\clothing\neck\ties.dm" -+#include "code\modules\clothing\neck\neck.dm" - #include "code\modules\clothing\outfits\ert.dm" - #include "code\modules\clothing\outfits\standard.dm" - #include "code\modules\clothing\shoes\bananashoes.dm" From 1de6608bb4e582d6e3cc28cd652c1b9e2667ed3a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 09:52:06 -0500 Subject: [PATCH 103/215] Automatic changelog generation for PR #1500 [ci skip] --- html/changelogs/AutoChangeLog-pr-1500.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1500.yml diff --git a/html/changelogs/AutoChangeLog-pr-1500.yml b/html/changelogs/AutoChangeLog-pr-1500.yml new file mode 100644 index 0000000000..3c1575e3f8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1500.yml @@ -0,0 +1,7 @@ +author: "Tacolizard and Cyberboss, idea by RandomMarine" +delete-after: True +changes: + - rscadd: "You can now add a commendation message when pinning a medal on someone." + - rscadd: "Medal commendations will be displayed when the round ends." + - tweak: "Refactored the outfit datum to allow accessories as part of an outfit." + - bugfix: "The Captain spawns with the Medal of Captaincy again." From f7b4e983ae4b62eb8d19e0e5de8d7aeb48e300ca Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 10:06:49 -0500 Subject: [PATCH 104/215] Update nudge.py --- bot/nudge.py | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/bot/nudge.py b/bot/nudge.py index 8a13c5636b..b1e6058cc0 100644 --- a/bot/nudge.py +++ b/bot/nudge.py @@ -1,25 +1,25 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python3 from config import * -import sys -import pickle -import socket - - -def pack(): - ip = sys.argv[1] - try: - data = sys.argv[2:] - except: - data = "NO DATA SPECIFIED" - - nudge(pickle.dumps({"ip": ip, "data": data})) - - -def nudge(data): - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.connect(("localhost", nudge_port)) - s.send(data) - s.close() - -if __name__ == "__main__" and len(sys.argv) > 1: - pack() +import sys +import pickle +import socket + + +def pack(): + ip = sys.argv[1] + try: + data = sys.argv[2:] + except: + data = "NO DATA SPECIFIED" + + nudge(pickle.dumps({"ip": ip, "data": data})) + + +def nudge(data): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect(("localhost", 45678)) + s.send(data) + s.close() + +if __name__ == "__main__" and len(sys.argv) > 1: + pack() From 50b56ef4c91e478637a40e2188d9d62443ef6fda Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 10:07:32 -0500 Subject: [PATCH 105/215] Update minibot.py --- bot/minibot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/minibot.py b/bot/minibot.py index cc5ac1a5b4..92192c0264 100644 --- a/bot/minibot.py +++ b/bot/minibot.py @@ -73,7 +73,7 @@ def setup_irc_socket(): def setup_nudge_socket(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.bind(("", nudge_port)) # localhost:nudge_port + s.bind(("", 45678)) # localhost:nudge_port s.listen(5) logger.info("Nudge socket up and listening") return s From 7e8746d436dd8246693cbcc9e160f3d971fec54b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 10:07:47 -0500 Subject: [PATCH 106/215] Create config.py --- bot/config.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bot/config.py b/bot/config.py index c0ffc55bed..8888753ab7 100644 --- a/bot/config.py +++ b/bot/config.py @@ -1,7 +1,6 @@ # Configuration for the minibot.py bot starts here server = "irc.rizon.net" port = 6667 -nudge_port = 45678 channels = ["#asdfgbus", "#botbus"] defaultchannel = "#asdfgbus" From 4bd99124de494488cc097b0799405e66625f11b5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 12:18:31 -0500 Subject: [PATCH 107/215] Adds F.R.A.M.E. cartridge --- code/game/objects/items/devices/PDA/PDA.dm | 97 +++------------- .../objects/items/devices/PDA/PDA_types.dm | 14 +-- code/game/objects/items/devices/PDA/cart.dm | 30 ++--- .../objects/items/devices/PDA/virus_cart.dm | 108 ++++++++++++++++++ code/game/objects/items/stacks/telecrystal.dm | 17 ++- .../items/weapons/storage/uplink_kits.dm | 2 +- code/modules/flufftext/Hallucination.dm | 2 +- code/modules/uplink/uplink.dm | 6 +- code/modules/uplink/uplink_item.dm | 11 +- tgstation.dme | 1 + 10 files changed, 173 insertions(+), 115 deletions(-) create mode 100644 code/game/objects/items/devices/PDA/virus_cart.dm diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index c86d0dff85..daabbf326a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -227,12 +227,8 @@ GLOBAL_LIST_EMPTY(PDAs) dat += " Set Ringtone | " dat += " Messages
" - if (istype(cartridge, /obj/item/weapon/cartridge/syndicate)) - dat += "[cartridge:shock_charges] detonation charges left.
" - if (istype(cartridge, /obj/item/weapon/cartridge/clown)) - dat += "[cartridge:honk_charges] viral files left.
" - if (istype(cartridge, /obj/item/weapon/cartridge/mime)) - dat += "[cartridge:mime_charges] viral files left.
" + if(cartridge) + dat += cartridge.message_header() dat += "

Detected PDAs

" @@ -244,12 +240,8 @@ GLOBAL_LIST_EMPTY(PDAs) if (P == src) continue dat += "
  • [P]" - if (istype(cartridge, /obj/item/weapon/cartridge/syndicate) && P.detonate) - dat += " (*Detonate*)" - if (istype(cartridge, /obj/item/weapon/cartridge/clown)) - dat += " (*Send Virus*)" - if (istype(cartridge, /obj/item/weapon/cartridge/mime)) - dat += " (*Send Virus*)" + if(cartridge) + dat += cartridge.message_special(P) dat += "
  • " count++ dat += "" @@ -424,16 +416,15 @@ GLOBAL_LIST_EMPTY(PDAs) tnote = null if("Ringtone") var/t = input(U, "Please enter new ringtone", name, ttone) as text - if(in_range(src, U) && loc == U) - if(t) - if(hidden_uplink && (trim(lowertext(t)) == trim(lowertext(lock_code)))) - hidden_uplink.interact(U) - to_chat(U, "The PDA softly beeps.") - U << browse(null, "window=pda") - src.mode = 0 - else - t = copytext(sanitize(t), 1, 20) - ttone = t + if(in_range(src, U) && loc == U && t) + if(hidden_uplink && (trim(lowertext(t)) == trim(lowertext(lock_code)))) + hidden_uplink.interact(U) + to_chat(U, "The PDA softly beeps.") + U << browse(null, "window=pda") + src.mode = 0 + else + t = copytext(sanitize(t), 1, 20) + ttone = t else U << browse(null, "window=pda") return @@ -444,30 +435,9 @@ GLOBAL_LIST_EMPTY(PDAs) if("MessageAll") src.send_to_all(U) - if("Send Honk")//Honk virus - if(istype(cartridge, /obj/item/weapon/cartridge/clown))//Cartridge checks are kind of unnecessary since everything is done through switch. - var/obj/item/device/pda/P = locate(href_list["target"])//Leaving it alone in case it may do something useful, I guess. - if(!isnull(P)) - if (!P.toff && cartridge:honk_charges > 0) - cartridge:honk_charges-- - U.show_message("Virus sent!", 1) - P.honkamt = (rand(15,20)) - else - to_chat(U, "PDA not found.") - else - U << browse(null, "window=pda") - return - if("Send Silence")//Silent virus - if(istype(cartridge, /obj/item/weapon/cartridge/mime)) - var/obj/item/device/pda/P = locate(href_list["target"]) - if(!isnull(P)) - if (!P.toff && cartridge:mime_charges > 0) - cartridge:mime_charges-- - U.show_message("Virus sent!", 1) - P.silent = 1 - P.ttone = "silence" - else - to_chat(U, "PDA not found.") + if("cart") + if(cartridge) + cartridge.special(U, href_list) else U << browse(null, "window=pda") return @@ -483,38 +453,6 @@ GLOBAL_LIST_EMPTY(PDAs) else M.close() - - if("Detonate")//Detonate PDA - if(istype(cartridge, /obj/item/weapon/cartridge/syndicate)) - var/obj/item/device/pda/P = locate(href_list["target"]) - if(!isnull(P)) - if (!P.toff && cartridge:shock_charges > 0) - cartridge:shock_charges-- - - var/difficulty = 0 - - if(P.cartridge) - difficulty += P.cartridge.access_medical - difficulty += P.cartridge.access_security - difficulty += P.cartridge.access_engine - difficulty += P.cartridge.access_clown - difficulty += P.cartridge.access_janitor - difficulty += P.cartridge.access_manifest * 2 - else - difficulty += 2 - - if(prob(difficulty * 15) || (P.hidden_uplink)) - U.show_message("An error flashes on your [src].", 1) - else - U.show_message("Success!", 1) - P.explode() - else - to_chat(U, "PDA not found.") - else - U.unset_machine() - U << browse(null, "window=pda") - return - //pAI FUNCTIONS=================================== if("pai") switch(href_list["option"]) @@ -896,7 +834,7 @@ GLOBAL_LIST_EMPTY(PDAs) if(T) T.hotspot_expose(700,125) - if(istype(cartridge, /obj/item/weapon/cartridge/syndicate)) + if(istype(cartridge, /obj/item/weapon/cartridge/virus/syndicate)) explosion(T, -1, 1, 3, 4) else explosion(T, -1, -1, 2, 3) @@ -1002,4 +940,3 @@ GLOBAL_LIST_EMPTY(PDAs) for(var/obj/item/device/pda/P in GLOB.PDAs) if(!P.owner || P.toff || P.hidden) continue . += P - return . diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 6adc4efe22..166ef212fa 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -1,7 +1,7 @@ //Clown PDA is slippery. /obj/item/device/pda/clown name = "clown PDA" - default_cartridge = /obj/item/weapon/cartridge/clown + default_cartridge = /obj/item/weapon/cartridge/virus/clown icon_state = "pda-clown" desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings." ttone = "honk" @@ -11,10 +11,10 @@ var/mob/living/carbon/M = AM if(M.slip(0, 6, src, NO_SLIP_WHEN_WALKING)) if (ishuman(M) && (M.real_name != src.owner)) - if (istype(src.cartridge, /obj/item/weapon/cartridge/clown)) - var/obj/item/weapon/cartridge/clown/cart = src.cartridge - if(cart.honk_charges < 5) - cart.honk_charges++ + if (istype(src.cartridge, /obj/item/weapon/cartridge/virus/clown)) + var/obj/item/weapon/cartridge/virus/cart = src.cartridge + if(cart.charges < 5) + cart.charges++ // Special AI/pAI PDAs that cannot explode. @@ -79,7 +79,7 @@ /obj/item/device/pda/mime name = "mime PDA" - default_cartridge = /obj/item/weapon/cartridge/mime + default_cartridge = /obj/item/weapon/cartridge/virus/mime icon_state = "pda-mime" silent = 1 ttone = "silence" @@ -134,7 +134,7 @@ icon_state = "pda-miner" /obj/item/device/pda/syndicate - default_cartridge = /obj/item/weapon/cartridge/syndicate + default_cartridge = /obj/item/weapon/cartridge/virus/syndicate icon_state = "pda-syndi" name = "military PDA" owner = "John Doe" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 60296fd4d5..b2b7724998 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -96,18 +96,6 @@ access_security = 1 spam_enabled = 1 -/obj/item/weapon/cartridge/clown - name = "\improper Honkworks 5.0 cartridge" - icon_state = "cart-clown" - access_clown = 1 - var/honk_charges = 5 - -/obj/item/weapon/cartridge/mime - name = "\improper Gestur-O 1000 cartridge" - icon_state = "cart-mi" - access_mime = 1 - var/mime_charges = 5 - /obj/item/weapon/cartridge/curator name = "\improper Lib-Tweet cartridge" icon_state = "cart-s" @@ -232,13 +220,6 @@ ..() radio = new /obj/item/radio/integrated/signal(src) -/obj/item/weapon/cartridge/syndicate - name = "\improper Detomatix cartridge" - icon_state = "cart" - access_remote_door = 1 - remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing. - var/shock_charges = 4 - /obj/item/weapon/cartridge/proc/unlock() if (!istype(loc, /obj/item/device/pda)) return @@ -785,3 +766,14 @@ Code: return return menu + +//If the cartridge adds a special line to the top of the messaging app +/obj/item/weapon/cartridge/proc/message_header() + return "" + +//If the cartridge adds something to each potetial messaging target +/obj/item/weapon/cartridge/proc/message_special(obj/item/device/pda/target) + return "" + +//This is called for special abilities of cartridges +/obj/item/weapon/cartridge/proc/special(mov/living/user, list/params) diff --git a/code/game/objects/items/devices/PDA/virus_cart.dm b/code/game/objects/items/devices/PDA/virus_cart.dm new file mode 100644 index 0000000000..17c66cac10 --- /dev/null +++ b/code/game/objects/items/devices/PDA/virus_cart.dm @@ -0,0 +1,108 @@ +/obj/item/weapon/cartridge/virus + name = "Generic Virus PDA cart" + var/charges = 5 + +/obj/item/weapon/cartridge/virus/proc/send_virus(obj/item/device/pda/target, mob/living/U) + return + +/obj/item/weapon/cartridge/virus/message_header() + return "[charges] viral files left.
    " + +/obj/item/weapon/cartridge/virus/message_special(obj/item/device/pda/target) + if (!istype(loc, /obj/item/device/pda)) + return "" //Sanity check, this shouldn't be possible. + return " (*Send Virus*)" + +/obj/item/weapon/cartridge/virus/special(mob/living/user, list/params) + var/obj/item/device/pda/P = locate(params["target"])//Leaving it alone in case it may do something useful, I guess. + send_virus(P,user) + +/obj/item/weapon/cartridge/virus/clown + name = "\improper Honkworks 5.0 cartridge" + icon_state = "cart-clown" + desc = "A data cartridge for portable microcomputers. It smells vaguely of banannas" + access_clown = 1 + +/obj/item/weapon/cartridge/virus/clown/send_virus(obj/item/device/pda/target, mob/living/U) + if(charges <= 0) + to_chat(U, "Out of charges.") + return + if(!isnull(target) && !target.toff) + charges-- + to_chat(U, "Virus Sent!") + target.honkamt = (rand(15,20)) + else + to_chat(U, "PDA not found.") + +/obj/item/weapon/cartridge/virus/mime + name = "\improper Gestur-O 1000 cartridge" + icon_state = "cart-mi" + access_mime = 1 + +/obj/item/weapon/cartridge/virus/mime/send_virus(obj/item/device/pda/target, mob/living/U) + if(charges <= 0) + to_chat(U, "Out of charges.") + return + if(!isnull(target) && !target.toff) + charges-- + to_chat(U, "Virus Sent!") + target.silent = 1 + target.ttone = "silence" + else + to_chat(U, "PDA not found.") + +/obj/item/weapon/cartridge/virus/syndicate + name = "\improper Detomatix cartridge" + icon_state = "cart" + access_remote_door = 1 + remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing. + charges = 4 + +/obj/item/weapon/cartridge/virus/syndicate/send_virus(obj/item/device/pda/target, mob/living/U) + if(charges <= 0) + to_chat(U, "Out of charges.") + return + if(!isnull(target) && !target.toff) + charges-- + var/difficulty = 0 + if(target.cartridge) + difficulty += target.cartridge.access_medical + difficulty += target.cartridge.access_security + difficulty += target.cartridge.access_engine + difficulty += target.cartridge.access_clown + difficulty += target.cartridge.access_janitor + difficulty += target.cartridge.access_manifest * 2 + else + difficulty += 2 + if(prob(difficulty * 15) || (target.hidden_uplink)) + U.show_message("An error flashes on your [src].", 1) + else + U.show_message("Success!", 1) + target.explode() + else + to_chat(U, "PDA not found.") + +/obj/item/weapon/cartridge/virus/frame + name = "\improper F.R.A.M.E. cartridge" + icon_state = "cart" + var/telecrystals = 0 + +/obj/item/weapon/cartridge/virus/frame/send_virus(obj/item/device/pda/target, mob/living/U) + if(charges <= 0) + to_chat(U, "Out of charges.") + return + if(!isnull(target) && !target.toff) + charges-- + var/lock_code = "[rand(100,999)] [pick("Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-ray","Yankee","Zulu")]" + to_chat(U, "Virus Sent! The unlock code to the target is: [lock_code]") + if(!target.hidden_uplink) + var/obj/item/device/uplink/uplink = new(target) + target.hidden_uplink = uplink + target.lock_code = lock_code + else + target.hidden_uplink.hidden_crystals += target.hidden_uplink.telecrystals //Temporarially hide the PDA's crystals, so you can't steal telecrystals. + target.hidden_uplink.telecrystals = telecrystals + telecrystals = 0 + target.hidden_uplink.active = TRUE + else + to_chat(U, "PDA not found.") diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm index dec6074b0c..8555155306 100644 --- a/code/game/objects/items/stacks/telecrystal.dm +++ b/code/game/objects/items/stacks/telecrystal.dm @@ -20,11 +20,18 @@ /obj/item/stack/telecrystal/afterattack(obj/item/I, mob/user, proximity) if(!proximity) return - if(istype(I, /obj/item)) - if(I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up. - I.hidden_uplink.telecrystals += amount - use(amount) - to_chat(user, "You slot [src] into the [I] and charge its internal uplink.") + if(istype(I, /obj/item) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up. + I.hidden_uplink.telecrystals += amount + use(amount) + to_chat(user, "You slot [src] into the [I] and charge its internal uplink.") + else if(istype(I, /obj/item/weapon/cartridge/virus/frame)) + var/obj/item/weapon/cartridge/virus/frame/cart = I + if(!cart.charges) + to_chat(user, "The [cart] is out of charges, it's refusing to accept the [src]") + return + cart.telecrystals += amount + use(amount) + to_chat(user, "You slot [src] into the [cart]. The next time it's used, it will also give telecrystals") /obj/item/stack/telecrystal/five amount = 5 diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 90e7d1be1a..a37efdc472 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -87,7 +87,7 @@ new /obj/item/device/doorCharge(src) new /obj/item/device/camera_bug(src) new /obj/item/device/sbeacondrop/powersink(src) - new /obj/item/weapon/cartridge/syndicate(src) + new /obj/item/weapon/cartridge/virus/syndicate(src) new /obj/item/weapon/storage/toolbox/syndicate(src) //To actually get to those places new /obj/item/pizzabox/bomb diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cacfbd101b..50eae80877 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -530,7 +530,7 @@ Gunshots/explosions/opening doors/less rare audio (done) var/static/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/ballistic, /obj/item/ammo_box/a357,\ /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ - /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ + /obj/item/weapon/cartridge/virus/syndicate, /obj/item/clothing/under/chameleon,\ /obj/item/clothing/shoes/chameleon, /obj/item/weapon/card/id/syndicate,\ /obj/item/clothing/mask/chameleon, /obj/item/clothing/glasses/thermal,\ /obj/item/device/chameleon, /obj/item/weapon/card/emag, /obj/item/weapon/grenade/plastic/x4,\ diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index f3379b9110..d80872a427 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -19,6 +19,7 @@ GLOBAL_LIST_EMPTY(uplinks) var/spent_telecrystals = 0 var/purchase_log = "" var/list/uplink_items + var/hidden_crystals = 0 /obj/item/device/uplink/Initialize() . = ..() @@ -57,7 +58,8 @@ GLOBAL_LIST_EMPTY(uplinks) /obj/item/device/uplink/interact(mob/user) active = TRUE - ui_interact(user) + if(user) + ui_interact(user) /obj/item/device/uplink/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) @@ -119,6 +121,8 @@ GLOBAL_LIST_EMPTY(uplinks) . = TRUE if("lock") active = FALSE + telecrystals += hidden_crystals + hidden_crystals = 0 SStgui.close_uis(src) if("select") selected_cat = params["category"] diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 21c07750de..6c638739ae 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -686,7 +686,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. detonate PDAs of crewmembers who have their message feature enabled. \ The concussive effect from the explosion will knock the recipient out for a short period, and deafen \ them for longer. Beware, it has a chance to detonate your PDA." - item = /obj/item/weapon/cartridge/syndicate + item = /obj/item/weapon/cartridge/virus/syndicate cost = 6 /datum/uplink_item/stealthy_weapons/suppressor @@ -744,6 +744,15 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. exclude_modes = list(/datum/game_mode/nuclear) player_minimum = 20 +/datum/uplink_item/stealthy_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will recieve the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/weapon/cartridge/virus/frame + cost = 4 + /datum/uplink_item/stealthy_tools/syndigaloshes/nuke name = "Stealthy No-Slip Chameleon Shoes" desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ diff --git a/tgstation.dme b/tgstation.dme index c1bbac4d4a..086af0d9c1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -787,6 +787,7 @@ #include "code\game\objects\items\devices\PDA\PDA.dm" #include "code\game\objects\items\devices\PDA\PDA_types.dm" #include "code\game\objects\items\devices\PDA\radio.dm" +#include "code\game\objects\items\devices\PDA\virus_cart.dm" #include "code\game\objects\items\devices\radio\beacon.dm" #include "code\game\objects\items\devices\radio\electropack.dm" #include "code\game\objects\items\devices\radio\encryptionkey.dm" From 4276cdde174765871e8c6918ef24f85b2ccff8ba Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 12:19:39 -0500 Subject: [PATCH 108/215] Fixes attacking not breaking chameleon --- code/datums/mutations.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 05e4f4d458..49f709bf76 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -408,6 +408,11 @@ GLOBAL_LIST_EMPTY(mutations_list) /datum/mutation/human/chameleon/on_move(mob/living/carbon/human/owner) owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY +/datum/mutation/human/chameleon/on_attack_hand(mob/living/carbon/human/owner, atom/target, proximity) + if(proximity) //stops tk from breaking chameleon + owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY + return + /datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) if(..()) return From fb40986f8900de4615c7df241f143e8fd030d641 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 12:22:48 -0500 Subject: [PATCH 109/215] Fixes basic spiderlings becoming ice spiders --- code/game/objects/effects/spiders.dm | 2 +- .../awaymissions/mission_code/snowdin.dm | 21 +--------------- .../simple_animal/hostile/giant_spider.dm | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 5663bc41d8..b379ddb97b 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -172,7 +172,7 @@ amount_grown += rand(0,2) if(amount_grown >= 100) if(!grow_as) - grow_as = pick(typesof(/mob/living/simple_animal/hostile/poison/giant_spider)) + grow_as = pick(/mob/living/simple_animal/hostile/poison/giant_spider, /mob/living/simple_animal/hostile/poison/giant_spider/hunter, /mob/living/simple_animal/hostile/poison/giant_spider/nurse) var/mob/living/simple_animal/hostile/poison/giant_spider/S = new grow_as(src.loc) S.poison_per_bite = poison_per_bite S.poison_type = poison_type diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index b3899276a4..458a067723 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -218,26 +218,7 @@ //mobs//-- -/mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew - name = "giant ice spider" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = 1500 - color = rgb(114,228,250) - -/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice - name = "giant ice spider" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = 1500 - color = rgb(114,228,250) - -/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice - name = "giant ice spider" - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = 1500 - color = rgb(114,228,250) +//ice spiders moved to giant_spiders.dm //objs//-- diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index f8718fafe7..7daa0ec0b6 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -103,6 +103,30 @@ poison_per_bite = 5 move_to_delay = 5 +/mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + gold_core_spawnable = 0 + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + gold_core_spawnable = 0 + +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + gold_core_spawnable = 0 + /mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action() if(!..()) //AIStatus is off return 0 From 5dd146a8198f714ebbc8f6af16a94e336a37a0fb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 10 Jun 2017 13:50:08 -0500 Subject: [PATCH 110/215] MMI-in-mecha can use the mecha tools again --- code/modules/mob/living/brain/brain.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 11700b7638..6f39718acf 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -63,3 +63,11 @@ ..() if(stored_dna) stored_dna.real_name = real_name + +/mob/living/brain/ClickOn(atom/A, params) + ..() + if(istype(loc,/obj/item/device/mmi)) + var/obj/item/device/mmi/MMI = loc + var/obj/mecha/M = MMI.mecha + if((src == MMI.brainmob) && istype(M)) + return M.click_action(A,src,params) From 1ec7cfaba09fa2edd9a78bfa06fa0c48d0cbc985 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 10 Jun 2017 14:11:20 -0500 Subject: [PATCH 111/215] Create tgui.js --- tgui/assets/tgui.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index c609f0d32b..4e405e0290 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,16 +1,16 @@ require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?p[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-u,o-s),f=1;for(s>u&&u+l>s&&(f=-1,u+=l-1,s+=l-1);l-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var a=t(80),r=t(76),i=t(79);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,u=r(s>1?o[1]:void 0,n),p=s>2?o[2]:void 0,c=void 0===p?n:r(p,n);c>u;)e[u++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var a=t(78),r=t(79),i=t(76);e.exports=function(t){return function(e,n,o){var s,u=a(e),p=r(u.length),c=i(o,p);if(t&&n!=n){for(;p>c;)if(s=u[c++],s!=s)return!0}else for(;p>c;c++)if((t||c in u)&&u[c]===n)return t||c;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var a=t(17),r=t(34),i=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,u=3==t,p=4==t,c=6==t,l=5==t||c;return function(f,d,h){for(var m,v,g=i(f),b=r(g),y=a(d,h,3),x=o(b.length),_=0,w=e?s(f,x):n?s(f,0):void 0;x>_;_++)if((l||_ in b)&&(m=b[_],v=y(m,_,g),t))if(e)w[_]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(p)return!1;return c?-1:u||p?p:w}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var a=t(38),r=t(36),i=t(83)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var a=t(11),r=t(83)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var a=t(46),r=t(31),i=t(60),o=t(17),s=t(69),u=t(18),p=t(27),c=t(42),l=t(44),f=t(82)("id"),d=t(30),h=t(38),m=t(65),v=t(19),g=Object.isExtensible||h,b=v?"_s":"size",y=0,x=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";r(t,f,++y)}return"O"+t[f]},_=function(t,e){var n,a=x(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&p(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=_(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!_(this,t)}}),v&&a.setDesc(c.prototype,"size",{get:function(){return u(this[b])}}),c},def:function(t,e,n){var a,r,i=_(t,e);return i?i.v=n:(t._l=i={i:r=x(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:_,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var a=t(27),r=t(10);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var a=t(31),r=t(60),i=t(4),o=t(38),s=t(69),u=t(27),p=t(8),c=t(30),l=t(82)("weak"),f=Object.isExtensible||o,d=p(5),h=p(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&u(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i):v(this).has(t):!1}}),i},def:function(t,e,n){return f(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var a=t(29),r=t(22),i=t(61),o=t(60),s=t(27),u=t(69),p=t(38),c=t(24),l=t(43),f=t(66);e.exports=function(t,e,n,d,h,m){var v=a[t],g=v,b=h?"set":"add",y=g&&g.prototype,x={},_=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!p(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!c(function(){(new g).entries().next()}))){var w,k=new g,E=k[b](m?{}:-0,1)!=k,S=c(function(){k.has(1)}),C=l(function(t){new g(t)});C||(g=e(function(e,n){u(e,g,t);var a=new v;return void 0!=n&&s(n,h,a[b],a),a}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(S||w)&&(_("delete"),_("has"),h&&_("get")),(w||E)&&_(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),x[t]=g,r(r.G+r.W+r.F*(g!=v),x),m||d.setStrong(g,t,h),g}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],17:[function(t,e,n){var a=t(2);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var a=t(38),r=t(29).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var a=t(46);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{46:46}],22:[function(t,e,n){var a=t(29),r=t(16),i=t(31),o=t(61),s=t(17),u="prototype",p=function(t,e,n){var c,l,f,d,h=t&p.F,m=t&p.G,v=t&p.S,g=t&p.P,b=t&p.B,y=m?a:v?a[e]||(a[e]={}):(a[e]||{})[u],x=m?r:r[e]||(r[e]={}),_=x[u]||(x[u]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,f=(l?y:n)[c],d=b&&l?s(f,a):g&&"function"==typeof f?s(Function.call,f):f,y&&!l&&o(y,c,f),x[c]!=f&&i(x,c,d),g&&_[c]!=f&&(_[c]=f)};a.core=r,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,e.exports=p},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var a=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var a=t(31),r=t(61),i=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var u=s(t),p=""[t];i(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,u,p)),a(RegExp.prototype,u,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var a=t(4);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var a=t(17),r=t(40),i=t(35),o=t(4),s=t(79),u=t(84);e.exports=function(t,e,n,p){var c,l,f,d=u(t),h=a(n,p,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(i(d))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(f=d.call(t);!(l=f.next()).done;)r(f,h,l.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var a=t(78),r=t(46).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{46:46,78:78}],29:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],30:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],31:[function(t,e,n){var a=t(46),r=t(59);e.exports=t(19)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var a=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var a=t(45),r=t(83)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{45:45,83:83}],36:[function(t,e,n){var a=t(11);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{11:11}],37:[function(t,e,n){var a=t(38),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var a=t(38),r=t(11),i=t(83)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var a=t(4);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{4:4}],41:[function(t,e,n){"use strict";var a=t(46),r=t(59),i=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var a=t(48),r=t(22),i=t(61),o=t(31),s=t(30),u=t(45),p=t(41),c=t(66),l=t(46).getProto,f=t(83)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,x,_){p(n,e,b);var w,k,E=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",C=y==v,P=!1,A=t.prototype,O=A[f]||A[h]||y&&A[y],T=O||E(y);if(O){var j=l(T.call(new t));c(j,S,!0),!a&&s(A,h)&&o(j,f,g),C&&O.name!==v&&(P=!0,T=function(){return O.call(this)})}if(a&&!_||!d&&!P&&A[f]||o(A,f,T),u[e]=T,u[S]=g,y)if(w={values:C?T:E(v),keys:x?T:E(m),entries:C?E("entries"):T},_)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(d||P),e,w);return w}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var a=t(83)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var a=t(46),r=t(78);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,u=0;s>u;)if(i[n=o[u++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var a,r,i,o=t(29),s=t(75).set,u=o.MutationObserver||o.WebKitMutationObserver,p=o.process,c=o.Promise,l="process"==t(11)(p),f=function(){var t,e,n;for(l&&(t=p.domain)&&(p.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){p.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),i=function(){h.data=d=-d}}else i=c&&c.resolve?function(){c.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&p.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var a=t(46),r=t(80),i=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,u=1,p=a.getKeys,c=a.getSymbols,l=a.isEnum;s>u;)for(var f,d=i(o[u++]),h=c?p(d).concat(c(d)):p(d),m=h.length,v=0;m>v;)l.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var a=t(22),r=t(16),i=t(24);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var a=t(46),r=t(78),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),u=s.length,p=0,c=[];u>p;)i.call(o,n=s[p++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{46:46,78:78}],56:[function(t,e,n){var a=t(46),r=t(4),i=t(29).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var a=t(58),r=t(33),i=t(2);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var a,i=this,o=arguments,p=o.length,c=0,l=0;if(!u&&!p)return r(t,n,i);if(a=n.slice(),u)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;p>l;)a.push(o[l++]);return r(t,a,i)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var a=t(61);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var a=t(29),r=t(31),i=t(82)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var a=t(46).getDesc,r=t(38),i=t(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(17)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var a=t(29),r=t(46),i=t(19),o=t(83)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var a=t(46).setDesc,r=t(30),i=t(83)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var a=t(29),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,e,n){var a=t(4),r=t(2),i=t(83)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var a=t(77),r=t(18);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",u=a(n),p=s.length;return 0>u||u>=p?t?"":void 0:(i=s.charCodeAt(u),55296>i||i>56319||u+1===p||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var a=t(39),r=t(18);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{18:18,39:39}],72:[function(t,e,n){var a=t(79),r=t(73),i=t(18);e.exports=function(t,e,n,o){var s=i(t)+"",u=s.length,p=void 0===n?" ":n+"",c=a(e);if(u>=c)return s;""==p&&(p=" ");var l=c-u,f=r.call(p,Math.ceil(l/p.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var a=t(77),r=t(18);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var a=t(22),r=t(18),i=t(24),o=" \n\x0B\f\r  ᠎              \u2028\u2029\ufeff",s="["+o+"]",u="​…",p=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(f),a(a.P+a.F*i(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(p,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{18:18,22:22,24:24}],75:[function(t,e,n){var a,r,i,o=t(17),s=t(33),u=t(32),p=t(20),c=t(29),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},d=function(t){delete v[t]},"process"==t(11)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=g in p("script")?function(t){u.appendChild(p("script"))[g]=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var a=t(77),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{77:77}],77:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],78:[function(t,e,n){var a=t(34),r=t(18);e.exports=function(t){return a(r(t))}},{18:18,34:34}],79:[function(t,e,n){var a=t(77),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var a=t(18);e.exports=function(t){return Object(a(t))}},{18:18}],81:[function(t,e,n){var a=t(38);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],83:[function(t,e,n){var a=t(67)("wks"),r=t(82),i=t(29).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var a=t(10),r=t(83)("iterator"),i=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var a,r=t(46),i=t(22),o=t(19),s=t(59),u=t(32),p=t(20),c=t(30),l=t(11),f=t(33),d=t(24),h=t(4),m=t(2),v=t(38),g=t(80),b=t(78),y=t(77),x=t(76),_=t(79),w=t(34),k=t(82)("__proto__"),E=t(8),S=t(7)(!1),C=Object.prototype,P=Array.prototype,A=P.slice,O=P.join,T=r.setDesc,j=r.getDesc,R=r.setDescs,M={};o||(a=!d(function(){return 7!=T(p("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return j(t,e)}catch(n){}return c(t,e)?s(!C.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=R=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:R});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=L.concat("length","prototype"),D=L.length,F=function(){var t,e=p("iframe"),n=D,a=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("