From 29a3968f48fce46ab56a81f89f305f423d113299 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Wed, 10 May 2017 03:41:01 -0700 Subject: [PATCH 001/181] kinda_working --- code/citadel/custom_loadout/custom_items.dm | 2 + code/citadel/custom_loadout/load_to_mob.dm | 49 + code/game/objects/items.dm | 1256 +++++++++---------- code/modules/mob/inventory.dm | 4 +- 4 files changed, 681 insertions(+), 630 deletions(-) create mode 100644 code/citadel/custom_loadout/custom_items.dm create mode 100644 code/citadel/custom_loadout/load_to_mob.dm diff --git a/code/citadel/custom_loadout/custom_items.dm b/code/citadel/custom_loadout/custom_items.dm new file mode 100644 index 0000000000..37e6e478b7 --- /dev/null +++ b/code/citadel/custom_loadout/custom_items.dm @@ -0,0 +1,2 @@ + +//For custom items. diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm new file mode 100644 index 0000000000..654784bcb2 --- /dev/null +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -0,0 +1,49 @@ + +//Proc that does the actual loading of items to mob +/*Itemlists are formatted as +"[typepath]" = number_of_it_to_spawn +*/ + +#define DROP_TO_FLOOR 0 +#define LOADING_TO_HUMAN 1 + +//Just incase there's extra mob selections in the future..... +/proc/load_itemlist_to_mob(mob/living/L, list/itemlist, drop_on_floor_if_full = TRUE, load_to_all_slots = TRUE, replace_slots = FALSE) + if(!istype(L) || !islist(itemlist)) + return FALSE + var/loading_mode = DROP_TO_FLOOR + var/turf/current_turf = get_turf(L) + if(ishuman(L)) + loading_mode = LOADING_TO_HUMAN + switch(loading_mode) + if(DROP_TO_FLOOR) + for(var/I in itemlist) + var/typepath = text2path(I) + if(!typepath) + continue + for(var/i = 0, i < itemlist[I], i++) + new typepath(current_turf) + return TRUE + if(LOADING_TO_HUMAN) + return load_itemlist_to_human(L, itemlist, drop_on_floor_if_full, load_to_all_slots, replace_slots) + +/proc/load_itemlist_to_human(mob/living/carbon/human/H, list/itemlist, drop_on_floor_if_full = TRUE, load_to_all_slots = TRUE, replace_slots = FALSE) + if(!istype(H) || !islist(itemlist)) + return FALSE + var/turf/T = get_turf(H) + for(var/item in itemlist) + var/path = text2path(item) + if(!path) + continue + var/atom/movable/loaded_atom = new path + if(!istype(loaded_atom)) + QDEL_NULL(loaded_atom) + continue + if(!istype(loaded_atom, /obj/item)) + loaded_atom.forceMove(T) + continue + var/obj/item/loaded = loaded_atom + if(!loaded.equip_to_best_slot(H, TRUE)) + if(!H.put_in_hands(loaded)) + loaded.forceMove(T) + return TRUE diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8dc9bd89b2..28388d656d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,629 +1,629 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire")) - -GLOBAL_VAR_INIT(rpg_loot_items, FALSE) -// if true, everyone item when created will have its name changed to be -// more... RPG-like. - -/obj/item - name = "item" - icon = 'icons/obj/items.dmi' - var/item_state = null - var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' - - //Dimensions of the icon file used when this item is worn, eg: hats.dmi - //eg: 32x32 sprite, 64x64 sprite, etc. - //allows inhands/worn sprites to be of any size, but still centered on a mob properly - var/worn_x_dimension = 32 - var/worn_y_dimension = 32 - //Same as above but for inhands, uses the lefthand_ and righthand_ file vars - var/inhand_x_dimension = 32 - var/inhand_y_dimension = 32 - - //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. - var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events - var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default - - obj_integrity = 200 - max_integrity = 200 - - - var/hitsound = null - var/usesound = null - var/throwhitsound = null - var/w_class = WEIGHT_CLASS_NORMAL - var/slot_flags = 0 //This is used to determine on which slots an item can fit. - pass_flags = PASSTABLE - pressure_resistance = 4 - var/obj/item/master = null - - var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags - var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags - - var/list/actions //list of /datum/action's that this item has. - var/list/actions_types //list of paths of action datums to give to the item on New(). - - //Since any item can now be a piece of clothing, this has to be put here so all items share it. - var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. - - var/item_color = null //this needs deprecating, soonish - - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags - //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible - var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) - var/permeability_coefficient = 1 // for chemicals/diseases - var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up - var/armour_penetration = 0 //percentage of armour effectiveness to remove - var/list/allowed = null //suit storage stuff. - var/obj/item/device/uplink/hidden_uplink = null - var/strip_delay = 40 - var/put_on_delay = 20 - var/breakouttime = 0 - var/list/materials - var/origin_tech = null //Used by R&D to determine what research bonuses it grants. - var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. - - var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" - var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item - - var/suittoggled = 0 - var/hooded = 0 - - var/mob/thrownby = null - - /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged - - //So items can have custom embedd values - //Because customisation is king - var/embed_chance = EMBED_CHANCE - var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT - var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE - var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) - var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) - var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) - var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) - var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. - - var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES - var/heat = 0 - var/sharpness = IS_BLUNT - var/toolspeed = 1 - - var/block_chance = 0 - var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom - var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default - - //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. - var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() - - // Needs to be in /obj/item because corgis can wear a lot of - // non-clothing items - var/datum/dog_fashion/dog_fashion = null - - var/datum/rpg_loot/rpg_loot = null - -/obj/item/Initialize() - if (!materials) - materials = list() - . = ..() - for(var/path in actions_types) - new path(src) - actions_types = null - - if(GLOB.rpg_loot_items) - rpg_loot = new(src) - -/obj/item/Destroy() - flags &= ~DROPDEL //prevent reqdels - if(ismob(loc)) - var/mob/m = loc - m.temporarilyRemoveItemFromInventory(src, TRUE) - for(var/X in actions) - qdel(X) - QDEL_NULL(rpg_loot) - return ..() - -/obj/item/device - icon = 'icons/obj/device.dmi' - -/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) - if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) - return 0 - else - return 1 - -/obj/item/blob_act(obj/structure/blob/B) - if(B && B.loc == loc) - qdel(src) - -//user: The mob that is suiciding -//damagetype: The type of damage the item will inflict on the user -//BRUTELOSS = 1 -//FIRELOSS = 2 -//TOXLOSS = 4 -//OXYLOSS = 8 -//Output a creative message and then return the damagetype done -/obj/item/proc/suicide_act(mob/user) - return - -/obj/item/verb/move_to_top() - set name = "Move To Top" - set category = "Object" - set src in oview(1) - - if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) - return - - var/turf/T = src.loc - - src.loc = null - - src.loc = T - -/obj/item/examine(mob/user) //This might be spammy. Remove? - ..() - var/pronoun - if(src.gender == PLURAL) - pronoun = "They are" - else - pronoun = "It is" - var/size = weightclass2text(src.w_class) - to_chat(user, "[pronoun] a [size] item." ) - - if(user.research_scanner) //Mob has a research scanner active. - var/msg = "*--------*
" - - if(origin_tech) - msg += "Testing potentials:
" - var/list/techlvls = params2list(origin_tech) - for(var/T in techlvls) //This needs to use the better names. - msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
" - else - msg += "No tech origins detected.
" - - - if(materials.len) - msg += "Extractable materials:
" - for(var/mat in materials) - msg += "[CallMaterialName(mat)]
" //Capitize first word, remove the "$" - else - msg += "No extractable materials detected.
" - msg += "*--------*" - to_chat(user, msg) - - -/obj/item/attack_self(mob/user) - interact(user) - -/obj/item/interact(mob/user) - add_fingerprint(user) - if(hidden_uplink && hidden_uplink.active) - hidden_uplink.interact(user) - return 1 - ui_interact(user) - -/obj/item/ui_act(action, params) - add_fingerprint(usr) - return ..() - -/obj/item/attack_hand(mob/user) - if(!user) - return - if(anchored) - return - - if(resistance_flags & ON_FIRE) - var/mob/living/carbon/C = user - if(istype(C)) - if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) - extinguish() - to_chat(user, "You put out the fire on [src].") - else - to_chat(user, "You burn your hand on [src]!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - return - else - extinguish() - - if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. - var/mob/living/carbon/C = user - if(istype(C)) - if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) - to_chat(user, "The acid on [src] burns your hand!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - - - if(istype(loc, /obj/item/weapon/storage)) - //If the item is in a storage item, take it out - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - - -/obj/item/attack_paw(mob/user) - if(!user) - return - if(anchored) - return - - if(istype(loc, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - -/obj/item/attack_alien(mob/user) - var/mob/living/carbon/alien/A = user - - if(!A.has_fine_manipulation) - if(src in A.contents) // To stop Aliens having items stuck in their pockets - A.dropItemToGround(src) - to_chat(user, "Your claws aren't capable of such fine manipulation!") - return - attack_paw(A) - -/obj/item/attack_ai(mob/user) - if(istype(src.loc, /obj/item/weapon/robot_module)) - //If the item is part of a cyborg module, equip it - if(!iscyborg(user)) - return - var/mob/living/silicon/robot/R = user - if(!R.low_power_mode) //can't equip modules with an empty cell. - R.activate_module(src) - R.hud_used.update_robot_modules_display() - -// Due to storage type consolidation this should get used more now. -// I have cleaned it up a little, but it could probably use more. -Sayu -// The lack of ..() is intentional, do not add one -/obj/item/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = W - if(S.use_to_pickup) - if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. - if(isturf(loc)) - var/list/rejections = list() - - var/list/things = loc.contents.Copy() - if (S.collection_mode == 2) - things = typecache_filter_list(things, typecacheof(type)) - - var/len = things.len - if(!len) - to_chat(user, "You failed to pick up anything with [S].") - return - var/datum/progressbar/progress = new(user, len, loc) - - while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) - sleep(1) - - qdel(progress) - - to_chat(user, "You put everything you could [S.preposition] [S].") - - else if(S.can_be_inserted(src)) - S.handle_item_insertion(src) - -/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != thing_loc) - continue - if(I.type in rejections) // To limit bag spamming: any given type only complains once - continue - if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no - if(S.contents.len >= S.storage_slots) - break - rejections += I.type // therefore full bags are still a little spammy - continue - - S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency - -/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(prob(final_block_chance)) - owner.visible_message("[owner] blocks [attack_text] with [src]!") - return 1 - return 0 - -/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) - return ITALICS | REDUCE_RANGE - -/obj/item/proc/dropped(mob/user) - for(var/X in actions) - var/datum/action/A = X - A.Remove(user) - if(DROPDEL & flags) - qdel(src) - -// called just as an item is picked up (loc is not yet changed) -/obj/item/proc/pickup(mob/user) - return - - -// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. -/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) - return - -// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. -/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) - return - -// called when "found" in pockets and storage items. Returns 1 if the search should end. -/obj/item/proc/on_found(mob/finder) - return - -// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. -// user is mob that equipped it -// slot uses the slot_X defines found in setup.dm -// for items that can be placed in multiple slots -// note this isn't called during the initial dressing of a player -/obj/item/proc/equipped(mob/user, slot) - for(var/X in actions) - var/datum/action/A = X - if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. - A.Grant(user) - -//sometimes we only want to grant the item's action if it's equipped in a specific slot. -/obj/item/proc/item_action_slot_check(slot, mob/user) - if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there - return FALSE - return TRUE - -//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. -//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. -//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. -//Set disable_warning to 1 if you wish it to not give you outputs. -/obj/item/proc/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) - if(!M) - return 0 - - return M.can_equip(src, slot, disable_warning) - -/obj/item/verb/verb_pickup() - set src in oview(1) - set category = "Object" - set name = "Pick up" - - if(usr.incapacitated() || !Adjacent(usr) || usr.lying) - return - - if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota - usr.UnarmedAttack(src) - -//This proc is executed when someone clicks the on-screen UI button. -//The default action is attack_self(). -//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. -/obj/item/proc/ui_action_click(mob/user, actiontype) - attack_self(user) - -/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit - return 0 - -/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) - - var/is_human_victim = 0 - var/obj/item/bodypart/affecting = M.get_bodypart("head") - if(ishuman(M)) - if(!affecting) //no head! - return - is_human_victim = 1 - var/mob/living/carbon/human/H = M - if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ - (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ - (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(ismonkey(M)) - var/mob/living/carbon/monkey/Mo = M - if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! - to_chat(user, "You cannot locate any eyes on this creature!") - return - - if(isbrain(M)) - to_chat(user, "You cannot locate any organic eyes on this brain!") - return - - src.add_fingerprint(user) - - playsound(loc, src.hitsound, 30, 1, -1) - - user.do_attack_animation(M) - - if(M != user) - M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ - "[user] stabs you in the eye with [src]!") - else - user.visible_message( \ - "[user] has stabbed themself in the eyes with [src]!", \ - "You stab yourself in the eyes with [src]!" \ - ) - if(is_human_victim) - var/mob/living/carbon/human/U = M - U.apply_damage(7, BRUTE, affecting) - - else - M.take_bodypart_damage(7) - - add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") - - M.adjust_blurriness(3) - M.adjust_eye_damage(rand(2,4)) - if(M.eye_damage >= 10) - M.adjust_blurriness(15) - if(M.stat != DEAD) - to_chat(M, "Your eyes start to bleed profusely!") - if(!(M.disabilities & (NEARSIGHT | BLIND))) - if(M.become_nearsighted()) - to_chat(M, "You become nearsighted!") - if(prob(50)) - if(M.stat != DEAD) - if(M.drop_item()) - to_chat(M, "You drop what you're holding and clutch at your eyes!") - M.adjust_blurriness(10) - M.Paralyse(1) - M.Weaken(2) - if (prob(M.eye_damage - 10 + 1)) - if(M.become_blind()) - to_chat(M, "You go blind!") - -/obj/item/clean_blood() - . = ..() - if(.) - if(initial(icon) && initial(icon_state)) - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(blood_splatter_icon) - cut_overlay(blood_splatter_icon) - -/obj/item/clothing/gloves/clean_blood() - . = ..() - if(.) - transfer_blood = 0 - -/obj/item/singularity_pull(S, current_size) - if(current_size >= STAGE_FOUR) - throw_at(S,14,3, spin=0) - else ..() - -/obj/item/throw_impact(atom/A) - if(A && !QDELETED(A)) - var/itempush = 1 - if(w_class < 4) - itempush = 0 //too light to push anything - return A.hitby(src, 0, itempush) - -/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - thrownby = thrower - callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own - . = ..(target, range, speed, thrower, spin, diagonals_first, callback) - - -/obj/item/proc/after_throw(datum/callback/callback) - if (callback) //call the original callback - . = callback.Invoke() - throw_speed = initial(throw_speed) //explosions change this. - -/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage - if(!newLoc) - return 0 - if(istype(loc,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src,newLoc) - return 1 - return 0 - -/obj/item/proc/is_hot() - return heat - -/obj/item/proc/is_sharp() - return sharpness - -/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) - if(affecting.can_dismember(src)) - if((sharpness || damtype == BURN) && w_class >= 3) - . = force*(w_class-1) - -/obj/item/proc/get_dismember_sound() - if(damtype == BURN) - . = 'sound/weapons/sear.ogg' - else - . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') - -/obj/item/proc/open_flame(flame_heat=700) - var/turf/location = loc - if(ismob(location)) - var/mob/M = location - var/success = FALSE - if(src == M.get_item_by_slot(slot_wear_mask)) - success = TRUE - if(success) - location = get_turf(M) - if(isturf(location)) - location.hotspot_expose(flame_heat, 5) - -/obj/item/proc/ignition_effect(atom/A, mob/user) - if(is_hot()) - . = "[user] lights [A] with [src]." - else - . = "" - - -//when an item modify our speech spans when in our active hand. Override this to modify speech spans. -/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) - return - -/obj/item/hitby(atom/movable/AM) - return - -/obj/item/attack_hulk(mob/living/carbon/human/user) - return 0 - -/obj/item/attack_animal(mob/living/simple_animal/M) - return 0 - -/obj/item/mech_melee_attack(obj/mecha/M) - return 0 - -/obj/item/burn() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/ash_type = /obj/effect/decal/cleanable/ash - if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) - ash_type = /obj/effect/decal/cleanable/ash/large - var/obj/effect/decal/cleanable/ash/A = new ash_type(T) - A.desc += "\nLooks like this used to be \an [name] some time ago." - ..() - -/obj/item/acid_melt() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/obj/effect/decal/cleanable/molten_object/MO = new(T) - MO.pixel_x = rand(-16,16) - MO.pixel_y = rand(-16,16) - MO.desc = "Looks like this was \an [src] some time ago." - ..() - -/obj/item/proc/microwave_act(obj/machinery/microwave/M) - if(M && M.dirty < 100) - M.dirty++ + +GLOBAL_VAR_INIT(rpg_loot_items, FALSE) +// if true, everyone item when created will have its name changed to be +// more... RPG-like. + +/obj/item + name = "item" + icon = 'icons/obj/items.dmi' + var/item_state = null + var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + //Dimensions of the icon file used when this item is worn, eg: hats.dmi + //eg: 32x32 sprite, 64x64 sprite, etc. + //allows inhands/worn sprites to be of any size, but still centered on a mob properly + var/worn_x_dimension = 32 + var/worn_y_dimension = 32 + //Same as above but for inhands, uses the lefthand_ and righthand_ file vars + var/inhand_x_dimension = 32 + var/inhand_y_dimension = 32 + + //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. + var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events + var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default + + obj_integrity = 200 + max_integrity = 200 + + + var/hitsound = null + var/usesound = null + var/throwhitsound = null + var/w_class = WEIGHT_CLASS_NORMAL + var/slot_flags = 0 //This is used to determine on which slots an item can fit. + pass_flags = PASSTABLE + pressure_resistance = 4 + var/obj/item/master = null + + var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags + var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags + + var/list/actions //list of /datum/action's that this item has. + var/list/actions_types //list of paths of action datums to give to the item on New(). + + //Since any item can now be a piece of clothing, this has to be put here so all items share it. + var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. + + var/item_color = null //this needs deprecating, soonish + + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible + var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) + var/permeability_coefficient = 1 // for chemicals/diseases + var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) + var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up + var/armour_penetration = 0 //percentage of armour effectiveness to remove + var/list/allowed = null //suit storage stuff. + var/obj/item/device/uplink/hidden_uplink = null + var/strip_delay = 40 + var/put_on_delay = 20 + var/breakouttime = 0 + var/list/materials + var/origin_tech = null //Used by R&D to determine what research bonuses it grants. + var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + + var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" + var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item + + var/suittoggled = 0 + var/hooded = 0 + + var/mob/thrownby = null + + /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + + //So items can have custom embedd values + //Because customisation is king + var/embed_chance = EMBED_CHANCE + var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT + var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE + var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) + var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) + var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) + var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) + var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. + + var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES + var/heat = 0 + var/sharpness = IS_BLUNT + var/toolspeed = 1 + + var/block_chance = 0 + var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom + var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default + + //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. + var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() + + // Needs to be in /obj/item because corgis can wear a lot of + // non-clothing items + var/datum/dog_fashion/dog_fashion = null + + var/datum/rpg_loot/rpg_loot = null + +/obj/item/Initialize() + if (!materials) + materials = list() + . = ..() + for(var/path in actions_types) + new path(src) + actions_types = null + + if(GLOB.rpg_loot_items) + rpg_loot = new(src) + +/obj/item/Destroy() + flags &= ~DROPDEL //prevent reqdels + if(ismob(loc)) + var/mob/m = loc + m.temporarilyRemoveItemFromInventory(src, TRUE) + for(var/X in actions) + qdel(X) + QDEL_NULL(rpg_loot) + return ..() + +/obj/item/device + icon = 'icons/obj/device.dmi' + +/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) + if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) + return 0 + else + return 1 + +/obj/item/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + qdel(src) + +//user: The mob that is suiciding +//damagetype: The type of damage the item will inflict on the user +//BRUTELOSS = 1 +//FIRELOSS = 2 +//TOXLOSS = 4 +//OXYLOSS = 8 +//Output a creative message and then return the damagetype done +/obj/item/proc/suicide_act(mob/user) + return + +/obj/item/verb/move_to_top() + set name = "Move To Top" + set category = "Object" + set src in oview(1) + + if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) + return + + var/turf/T = src.loc + + src.loc = null + + src.loc = T + +/obj/item/examine(mob/user) //This might be spammy. Remove? + ..() + var/pronoun + if(src.gender == PLURAL) + pronoun = "They are" + else + pronoun = "It is" + var/size = weightclass2text(src.w_class) + to_chat(user, "[pronoun] a [size] item." ) + + if(user.research_scanner) //Mob has a research scanner active. + var/msg = "*--------*
" + + if(origin_tech) + msg += "Testing potentials:
" + var/list/techlvls = params2list(origin_tech) + for(var/T in techlvls) //This needs to use the better names. + msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
" + else + msg += "No tech origins detected.
" + + + if(materials.len) + msg += "Extractable materials:
" + for(var/mat in materials) + msg += "[CallMaterialName(mat)]
" //Capitize first word, remove the "$" + else + msg += "No extractable materials detected.
" + msg += "*--------*" + to_chat(user, msg) + + +/obj/item/attack_self(mob/user) + interact(user) + +/obj/item/interact(mob/user) + add_fingerprint(user) + if(hidden_uplink && hidden_uplink.active) + hidden_uplink.interact(user) + return 1 + ui_interact(user) + +/obj/item/ui_act(action, params) + add_fingerprint(usr) + return ..() + +/obj/item/attack_hand(mob/user) + if(!user) + return + if(anchored) + return + + if(resistance_flags & ON_FIRE) + var/mob/living/carbon/C = user + if(istype(C)) + if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) + extinguish() + to_chat(user, "You put out the fire on [src].") + else + to_chat(user, "You burn your hand on [src]!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + return + else + extinguish() + + if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. + var/mob/living/carbon/C = user + if(istype(C)) + if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) + to_chat(user, "The acid on [src] burns your hand!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + + + if(istype(loc, /obj/item/weapon/storage)) + //If the item is in a storage item, take it out + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + + +/obj/item/attack_paw(mob/user) + if(!user) + return + if(anchored) + return + + if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + +/obj/item/attack_alien(mob/user) + var/mob/living/carbon/alien/A = user + + if(!A.has_fine_manipulation) + if(src in A.contents) // To stop Aliens having items stuck in their pockets + A.dropItemToGround(src) + to_chat(user, "Your claws aren't capable of such fine manipulation!") + return + attack_paw(A) + +/obj/item/attack_ai(mob/user) + if(istype(src.loc, /obj/item/weapon/robot_module)) + //If the item is part of a cyborg module, equip it + if(!iscyborg(user)) + return + var/mob/living/silicon/robot/R = user + if(!R.low_power_mode) //can't equip modules with an empty cell. + R.activate_module(src) + R.hud_used.update_robot_modules_display() + +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu +// The lack of ..() is intentional, do not add one +/obj/item/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + if(S.use_to_pickup) + if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. + if(isturf(loc)) + var/list/rejections = list() + + var/list/things = loc.contents.Copy() + if (S.collection_mode == 2) + things = typecache_filter_list(things, typecacheof(type)) + + var/len = things.len + if(!len) + to_chat(user, "You failed to pick up anything with [S].") + return + var/datum/progressbar/progress = new(user, len, loc) + + while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) + sleep(1) + + qdel(progress) + + to_chat(user, "You put everything you could [S.preposition] [S].") + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) + +/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if(I.loc != thing_loc) + continue + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no + if(S.contents.len >= S.storage_slots) + break + rejections += I.type // therefore full bags are still a little spammy + continue + + S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency + +/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(prob(final_block_chance)) + owner.visible_message("[owner] blocks [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) + return ITALICS | REDUCE_RANGE + +/obj/item/proc/dropped(mob/user) + for(var/X in actions) + var/datum/action/A = X + A.Remove(user) + if(DROPDEL & flags) + qdel(src) + +// called just as an item is picked up (loc is not yet changed) +/obj/item/proc/pickup(mob/user) + return + + +// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. +/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) + return + +// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. +/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) + return + +// called when "found" in pockets and storage items. Returns 1 if the search should end. +/obj/item/proc/on_found(mob/finder) + return + +// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. +// user is mob that equipped it +// slot uses the slot_X defines found in setup.dm +// for items that can be placed in multiple slots +// note this isn't called during the initial dressing of a player +/obj/item/proc/equipped(mob/user, slot) + for(var/X in actions) + var/datum/action/A = X + if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. + A.Grant(user) + +//sometimes we only want to grant the item's action if it's equipped in a specific slot. +/obj/item/proc/item_action_slot_check(slot, mob/user) + if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there + return FALSE + return TRUE + +//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. +//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. +//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. +//Set disable_warning to 1 if you wish it to not give you outputs. +/obj/item/proc/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(!M) + return 0 + + return M.can_equip(src, slot, disable_warning) + +/obj/item/verb/verb_pickup() + set src in oview(1) + set category = "Object" + set name = "Pick up" + + if(usr.incapacitated() || !Adjacent(usr) || usr.lying) + return + + if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota + usr.UnarmedAttack(src) + +//This proc is executed when someone clicks the on-screen UI button. +//The default action is attack_self(). +//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. +/obj/item/proc/ui_action_click(mob/user, actiontype) + attack_self(user) + +/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit + return 0 + +/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) + + var/is_human_victim = 0 + var/obj/item/bodypart/affecting = M.get_bodypart("head") + if(ishuman(M)) + if(!affecting) //no head! + return + is_human_victim = 1 + var/mob/living/carbon/human/H = M + if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ + (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ + (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(ismonkey(M)) + var/mob/living/carbon/monkey/Mo = M + if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! + to_chat(user, "You cannot locate any eyes on this creature!") + return + + if(isbrain(M)) + to_chat(user, "You cannot locate any organic eyes on this brain!") + return + + src.add_fingerprint(user) + + playsound(loc, src.hitsound, 30, 1, -1) + + user.do_attack_animation(M) + + if(M != user) + M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ + "[user] stabs you in the eye with [src]!") + else + user.visible_message( \ + "[user] has stabbed themself in the eyes with [src]!", \ + "You stab yourself in the eyes with [src]!" \ + ) + if(is_human_victim) + var/mob/living/carbon/human/U = M + U.apply_damage(7, BRUTE, affecting) + + else + M.take_bodypart_damage(7) + + add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") + + M.adjust_blurriness(3) + M.adjust_eye_damage(rand(2,4)) + if(M.eye_damage >= 10) + M.adjust_blurriness(15) + if(M.stat != DEAD) + to_chat(M, "Your eyes start to bleed profusely!") + if(!(M.disabilities & (NEARSIGHT | BLIND))) + if(M.become_nearsighted()) + to_chat(M, "You become nearsighted!") + if(prob(50)) + if(M.stat != DEAD) + if(M.drop_item()) + to_chat(M, "You drop what you're holding and clutch at your eyes!") + M.adjust_blurriness(10) + M.Paralyse(1) + M.Weaken(2) + if (prob(M.eye_damage - 10 + 1)) + if(M.become_blind()) + to_chat(M, "You go blind!") + +/obj/item/clean_blood() + . = ..() + if(.) + if(initial(icon) && initial(icon_state)) + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] + if(blood_splatter_icon) + cut_overlay(blood_splatter_icon) + +/obj/item/clothing/gloves/clean_blood() + . = ..() + if(.) + transfer_blood = 0 + +/obj/item/singularity_pull(S, current_size) + if(current_size >= STAGE_FOUR) + throw_at(S,14,3, spin=0) + else ..() + +/obj/item/throw_impact(atom/A) + if(A && !QDELETED(A)) + var/itempush = 1 + if(w_class < 4) + itempush = 0 //too light to push anything + return A.hitby(src, 0, itempush) + +/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + thrownby = thrower + callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own + . = ..(target, range, speed, thrower, spin, diagonals_first, callback) + + +/obj/item/proc/after_throw(datum/callback/callback) + if (callback) //call the original callback + . = callback.Invoke() + throw_speed = initial(throw_speed) //explosions change this. + +/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage + if(!newLoc) + return 0 + if(istype(loc,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src,newLoc) + return 1 + return 0 + +/obj/item/proc/is_hot() + return heat + +/obj/item/proc/is_sharp() + return sharpness + +/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) + if(affecting.can_dismember(src)) + if((sharpness || damtype == BURN) && w_class >= 3) + . = force*(w_class-1) + +/obj/item/proc/get_dismember_sound() + if(damtype == BURN) + . = 'sound/weapons/sear.ogg' + else + . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + +/obj/item/proc/open_flame(flame_heat=700) + var/turf/location = loc + if(ismob(location)) + var/mob/M = location + var/success = FALSE + if(src == M.get_item_by_slot(slot_wear_mask)) + success = TRUE + if(success) + location = get_turf(M) + if(isturf(location)) + location.hotspot_expose(flame_heat, 5) + +/obj/item/proc/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "[user] lights [A] with [src]." + else + . = "" + + +//when an item modify our speech spans when in our active hand. Override this to modify speech spans. +/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) + return + +/obj/item/hitby(atom/movable/AM) + return + +/obj/item/attack_hulk(mob/living/carbon/human/user) + return 0 + +/obj/item/attack_animal(mob/living/simple_animal/M) + return 0 + +/obj/item/mech_melee_attack(obj/mecha/M) + return 0 + +/obj/item/burn() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/ash_type = /obj/effect/decal/cleanable/ash + if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) + ash_type = /obj/effect/decal/cleanable/ash/large + var/obj/effect/decal/cleanable/ash/A = new ash_type(T) + A.desc += "\nLooks like this used to be \an [name] some time ago." + ..() + +/obj/item/acid_melt() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/obj/effect/decal/cleanable/molten_object/MO = new(T) + MO.pixel_x = rand(-16,16) + MO.pixel_y = rand(-16,16) + MO.desc = "Looks like this was \an [src] some time ago." + ..() + +/obj/item/proc/microwave_act(obj/machinery/microwave/M) + if(M && M.dirty < 100) + M.dirty++ diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 2c3b8bdbd4..4a650ae165 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -354,8 +354,8 @@ dropItemToGround(I) drop_all_held_items() -/obj/item/proc/equip_to_best_slot(var/mob/M) - if(src != M.get_active_held_item()) +/obj/item/proc/equip_to_best_slot(var/mob/M, override_held_check = FALSE) + if((src != M.get_active_held_item()) && !override_held_check) to_chat(M, "You are not holding anything to equip!") return FALSE From e9a35b03f605a469b2de884300b4c492e161aa63 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Wed, 10 May 2017 16:22:19 -0700 Subject: [PATCH 002/181] dme --- tgstation.dme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tgstation.dme b/tgstation.dme index 543fb04f6c..8f2d06c029 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -167,6 +167,8 @@ #include "code\citadel\cit_uniforms.dm" #include "code\citadel\cit_vendors.dm" #include "code\citadel\dogborgstuff.dm" +#include "code\citadel\custom_loadout\custom_items.dm" +#include "code\citadel\custom_loadout\load_to_mob.dm" #include "code\citadel\organs\breasts.dm" #include "code\citadel\organs\eggsack.dm" #include "code\citadel\organs\genitals.dm" From 9e0866871ed3baa943dca981a5a27cb10e330df3 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sat, 13 May 2017 11:26:07 -0700 Subject: [PATCH 003/181] lists and stuff --- code/citadel/custom_loadout/load_to_mob.dm | 8 +++ code/citadel/custom_loadout/read_from_file.dm | 50 +++++++++++++++++++ config/custom_items.txt | 0 tgstation.dme | 1 + 4 files changed, 59 insertions(+) create mode 100644 code/citadel/custom_loadout/read_from_file.dm create mode 100644 config/custom_items.txt diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index 654784bcb2..e8cde02cd0 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -7,6 +7,14 @@ #define DROP_TO_FLOOR 0 #define LOADING_TO_HUMAN 1 +/proc/handle_roundstart_items(mob/living/M) + if(!M.ckey || !istype(M)) + return FALSE + var/list/items = parse_custom_items_by_key(M.ckey) + if(isnull(items)) + return FALSE + load_itemlist_to_mob(M, items, TRUE, TRUE, FALSE) + //Just incase there's extra mob selections in the future..... /proc/load_itemlist_to_mob(mob/living/L, list/itemlist, drop_on_floor_if_full = TRUE, load_to_all_slots = TRUE, replace_slots = FALSE) if(!istype(L) || !islist(itemlist)) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm new file mode 100644 index 0000000000..97b621902e --- /dev/null +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -0,0 +1,50 @@ + +#define CUSTOM_ITEM_LIST_FILE 'config/custom_items.txt' +GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist. + +//File should be in the format of Ckey|things, where things is in the form of itempath1=amount;itempath2=amount;itempath3=amount +//Each ckey should be on a different line!! + +/proc/reload_custom_item_list(custom_filelist) + if(!custom_filelist) + custom_filelist = CUSTOM_ITEM_LIST_FILE + GLOB.custom_item_list = list() + var/list/file_lines = world.file2list(custom_filelist) + for(var/line in file_lines) + var/list/key_separation = splittext(line, "|") + var/key = key_separation[1] + var/items = key_separation[2] + if(!key) + continue + if(!items) + GLOB.custom_item_list[key] = "ERROR" + continue + GLOB.custom_item_list[key] = list() + var/list/item_separation = splittext(items, ";") + for(var/item_string in item_separation) + var/list/amount_separation = splittext(item_string, "=") + var/path_to_item = amount_separation[1] + if(!ispath(path_to_item)) + GLOB.custom_item_list[key] += "ERROR" + var/amount_of_item = amount_separation[2] + if(!amount_of_item) + GLOB.custom_item_list[key][path_to_item] = "ERROR" + var/amount_of_item_num = 0 + if(isnum(amount_of_item)) + amount_of_item_num = amount_of_item + else + amount_of_item_num = text2num(amount_of_item) + if(!isnum(amount_of_item) || (amount_of_item < 1)) + GLOB.custom_item_list[key][path_to_item] = "ERROR" + GLOB.custom_item_list[key][path_to_item] = amount_of_item_num + return GLOB.custom_item_list + +/proc/parse_custom_items_by_key(ckey) + if(!ckey || !GLOB.custom_item_list[ckey]) + return null + var/list/items = GLOB.custom_item_list[ckey] + for(var/I in items) + if(items[I] == "ERROR") + items -= I + continue + return items diff --git a/config/custom_items.txt b/config/custom_items.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tgstation.dme b/tgstation.dme index 8f2d06c029..3a36f5cede 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -169,6 +169,7 @@ #include "code\citadel\dogborgstuff.dm" #include "code\citadel\custom_loadout\custom_items.dm" #include "code\citadel\custom_loadout\load_to_mob.dm" +#include "code\citadel\custom_loadout\read_from_file.dm" #include "code\citadel\organs\breasts.dm" #include "code\citadel\organs\eggsack.dm" #include "code\citadel\organs\genitals.dm" From 25024432fe71766af20fcfba0a586c9d56e4cbf3 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sat, 13 May 2017 16:23:43 -0700 Subject: [PATCH 004/181] more procs and roundstart loading files --- code/citadel/custom_loadout/load_to_mob.dm | 9 ++++++-- code/citadel/custom_loadout/read_from_file.dm | 5 ++-- code/controllers/configuration.dm | 23 ++++++++++--------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index e8cde02cd0..336f2a4630 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -8,21 +8,26 @@ #define LOADING_TO_HUMAN 1 /proc/handle_roundstart_items(mob/living/M) - if(!M.ckey || !istype(M)) + world << "handle_roundstart_items([M])" + if(!istype(M) || !M.ckey) + world << "handle_roundstart_items: [M] has no ckey." return FALSE var/list/items = parse_custom_items_by_key(M.ckey) if(isnull(items)) + world << "handle_roundstart_items: itemlist null." return FALSE - load_itemlist_to_mob(M, items, TRUE, TRUE, FALSE) + return load_itemlist_to_mob(M, items, TRUE, TRUE, FALSE) //Just incase there's extra mob selections in the future..... /proc/load_itemlist_to_mob(mob/living/L, list/itemlist, drop_on_floor_if_full = TRUE, load_to_all_slots = TRUE, replace_slots = FALSE) + world << "load_itemlist_to_mob([L], [itemlist], [drop_on_floor_if_full], [load_to_all_slots], [replace_slots])" if(!istype(L) || !islist(itemlist)) return FALSE var/loading_mode = DROP_TO_FLOOR var/turf/current_turf = get_turf(L) if(ishuman(L)) loading_mode = LOADING_TO_HUMAN + world << "load_itemlist_to_mob:loading_mode [loading_mode] current_turf [current_turf]" switch(loading_mode) if(DROP_TO_FLOOR) for(var/I in itemlist) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index 97b621902e..fc37f6e7e8 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -1,5 +1,4 @@ -#define CUSTOM_ITEM_LIST_FILE 'config/custom_items.txt' GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist. //File should be in the format of Ckey|things, where things is in the form of itempath1=amount;itempath2=amount;itempath3=amount @@ -7,7 +6,7 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist /proc/reload_custom_item_list(custom_filelist) if(!custom_filelist) - custom_filelist = CUSTOM_ITEM_LIST_FILE + custom_filelist = "config/custom_items.txt" GLOB.custom_item_list = list() var/list/file_lines = world.file2list(custom_filelist) for(var/line in file_lines) @@ -40,7 +39,9 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist return GLOB.custom_item_list /proc/parse_custom_items_by_key(ckey) + world << "parse_custom_items_by_key([ckey])" if(!ckey || !GLOB.custom_item_list[ckey]) + world << "parse_custom_items_by_key: no ckey match" return null var/list/items = GLOB.custom_item_list[ckey] for(var/I in items) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index fd3fe6d685..5236cdbb03 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -66,9 +66,9 @@ var/respawn = 1 var/guest_jobban = 1 var/usewhitelist = 0 - var/inactivity_period = 3000 //time in ds until a player is considered inactive - var/afk_period = 6000 //time in ds until a player is considered afk and kickable - var/kick_inactive = FALSE //force disconnect for inactive players + var/inactivity_period = 3000 //time in ds until a player is considered inactive + var/afk_period = 6000 //time in ds until a player is considered afk and kickable + var/kick_inactive = FALSE //force disconnect for inactive players var/load_jobs_from_txt = 0 var/automute_on = 0 //enables automuting/spam prevention var/minimal_access_threshold = 0 //If the number of players is larger than this threshold, minimal access will be turned on. @@ -284,6 +284,7 @@ load("config/config.txt") load("config/game_options.txt","game_options") loadsql("config/dbconfig.txt") + reload_custom_item_list() if (maprotation) loadmaplist("config/maps.txt") @@ -291,7 +292,7 @@ GLOB.abandon_allowed = respawn /datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist - var/list/Lines = world.file2list(filename) + var/list/Lines = world.file2list(filename) for(var/t in Lines) if(!t) @@ -410,12 +411,12 @@ usewhitelist = TRUE if("allow_metadata") allow_Metadata = 1 - if("inactivity_period") - inactivity_period = text2num(value) * 10 //documented as seconds in config.txt - if("afk_period") - afk_period = text2num(value) * 10 // ^^^ + if("inactivity_period") + inactivity_period = text2num(value) * 10 //documented as seconds in config.txt + if("afk_period") + afk_period = text2num(value) * 10 // ^^^ if("kick_inactive") - kick_inactive = TRUE + kick_inactive = TRUE if("load_jobs_from_txt") load_jobs_from_txt = 1 if("forbid_singulo_possession") @@ -785,7 +786,7 @@ /datum/configuration/proc/loadmaplist(filename) - var/list/Lines = world.file2list(filename) + var/list/Lines = world.file2list(filename) var/datum/map_config/currentmap = null for(var/t in Lines) @@ -835,7 +836,7 @@ /datum/configuration/proc/loadsql(filename) - var/list/Lines = world.file2list(filename) + var/list/Lines = world.file2list(filename) for(var/t in Lines) if(!t) continue From d15b0b96060dcb58ed12da836d013aedbb77a8fa Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 14 May 2017 14:00:51 -0700 Subject: [PATCH 005/181] stuff --- code/citadel/custom_loadout/load_to_mob.dm | 27 +++++++++++-------- code/citadel/custom_loadout/read_from_file.dm | 4 ++- code/modules/jobs/job_types/job.dm | 2 ++ .../modules/mob/dead/new_player/new_player.dm | 10 +++---- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index 336f2a4630..830c1a4171 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -48,15 +48,20 @@ var/path = text2path(item) if(!path) continue - var/atom/movable/loaded_atom = new path - if(!istype(loaded_atom)) - QDEL_NULL(loaded_atom) - continue - if(!istype(loaded_atom, /obj/item)) - loaded_atom.forceMove(T) - continue - var/obj/item/loaded = loaded_atom - if(!loaded.equip_to_best_slot(H, TRUE)) - if(!H.put_in_hands(loaded)) - loaded.forceMove(T) + var/amount = itemlist[item] + for(var/i in 1 to amount) + var/atom/movable/loaded_atom = new path + if(!istype(loaded_atom)) + QDEL_NULL(loaded_atom) + continue + if(!istype(loaded_atom, /obj/item)) + loaded_atom.forceMove(T) + continue + var/obj/item/loaded = loaded_atom + var/obj/item/weapon/storage/S = H.get_item_by_slot(slot_back) + if(istype(S)) + S.handle_item_insertion(loaded, TRUE, H) //Force it into their backpack + continue + if(!H.put_in_hands(loaded)) //They don't have one/somehow that failed, put it in their hands + loaded.forceMove(T) //Guess we're just dumping it on the floor! return TRUE diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index fc37f6e7e8..8dc7eb29f2 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -21,9 +21,11 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist GLOB.custom_item_list[key] = list() var/list/item_separation = splittext(items, ";") for(var/item_string in item_separation) + world << "itemstring [item_string]" var/list/amount_separation = splittext(item_string, "=") + world << "separated [item_string] == [english_list(amount_separation)]" var/path_to_item = amount_separation[1] - if(!ispath(path_to_item)) + if(!ispath(text2path(path_to_item))) GLOB.custom_item_list[key] += "ERROR" var/amount_of_item = amount_separation[2] if(!amount_of_item) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 4d5d4eb80c..9b5876c239 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -75,6 +75,8 @@ H.dna.features["ears"] = "None" H.regenerate_icons() + handle_roundstart_items(H) + /datum/job/proc/get_access() if(!config) //Needed for robots. return src.minimal_access.Copy() diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index e3943d07e6..4effac371d 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -24,10 +24,10 @@ loc = pick(GLOB.newplayer_start) else loc = locate(1,1,1) - . = ..() - -/mob/dead/new_player/prepare_huds() - return + . = ..() + +/mob/dead/new_player/prepare_huds() + return /mob/dead/new_player/proc/new_player_panel() @@ -146,7 +146,7 @@ return 1 if(href_list["late_join"]) - if(!SSticker || !SSticker.IsRoundInProgress()) + if(!SSticker || !SSticker.IsRoundInProgress()) to_chat(usr, "The round is either not ready, or has already finished...") return From 2c6cc491da4b3070cca974a35aa5a8256370ddd7 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 14 May 2017 14:15:38 -0700 Subject: [PATCH 006/181] right --- code/citadel/custom_loadout/read_from_file.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index 8dc7eb29f2..5c3f670762 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -11,6 +11,9 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist var/list/file_lines = world.file2list(custom_filelist) for(var/line in file_lines) var/list/key_separation = splittext(line, "|") + if((!istype(key_separation))||(key_separation.len > 2)||(key_separation.len < 1)) + stack_trace("Warning: Roundstart items configuration file improperly formatted!") + continue var/key = key_separation[1] var/items = key_separation[2] if(!key) @@ -20,10 +23,16 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist continue GLOB.custom_item_list[key] = list() var/list/item_separation = splittext(items, ";") + if((!istype(item_separation))||(item_separation.len < 1)) + stack_trace("Warning: Roundstart items configuration file improperly formatted!") + continue for(var/item_string in item_separation) world << "itemstring [item_string]" var/list/amount_separation = splittext(item_string, "=") world << "separated [item_string] == [english_list(amount_separation)]" + if((!istype(amount_separation))||(amount_separation.len > 2)||(amount_separation.len < 1)) + stack_trace("Warning: Roundstart items configuration file improperly formatted!") + continue var/path_to_item = amount_separation[1] if(!ispath(text2path(path_to_item))) GLOB.custom_item_list[key] += "ERROR" @@ -51,3 +60,8 @@ GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist items -= I continue return items + +/proc/debug_roundstart_items() + reload_custom_item_list() + for(var/mob/M in world) + handle_roundstart_items(M) From e7c41603f0c543fd196b6704f7eaed348419fbbc Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 14 May 2017 19:22:52 -0700 Subject: [PATCH 007/181] new and improved --- code/citadel/custom_loadout/load_to_mob.dm | 16 ++- code/citadel/custom_loadout/read_from_file.dm | 117 ++++++++++-------- code/controllers/configuration.dm | 1 - config/custom_items.txt | 0 config/custom_roundstart_items.txt | 8 ++ 5 files changed, 84 insertions(+), 58 deletions(-) delete mode 100644 config/custom_items.txt create mode 100644 config/custom_roundstart_items.txt diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index 830c1a4171..e0913cd383 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -9,10 +9,17 @@ /proc/handle_roundstart_items(mob/living/M) world << "handle_roundstart_items([M])" - if(!istype(M) || !M.ckey) - world << "handle_roundstart_items: [M] has no ckey." + if(!istype(M) || !M.ckey || !M.mind) + world << "handle_roundstart_items: [M] has either no ckey or no mind!" return FALSE - var/list/items = parse_custom_items_by_key(M.ckey) + var/list/items = parse_custom_items_by_key_and_job(M.ckey, M.mind.assigned_role) + if(M.mind.special_role) + var/list/items_special = parse_custom_items_by_key_and_job(M.ckey, M.mind.special_role) //And this way you can have snowflake antags! + for(var/thing in items_special) + if(!items[thing]) + items[thing] = items_special[thing] //don't have it, make it have it! + else + items[thing] += items_special[thing] //More~ if(isnull(items)) world << "handle_roundstart_items: itemlist null." return FALSE @@ -45,7 +52,8 @@ return FALSE var/turf/T = get_turf(H) for(var/item in itemlist) - var/path = text2path(item) + if(!ispath(item)) + item = text2path(item) if(!path) continue var/amount = itemlist[item] diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index 5c3f670762..dbca069cb7 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -1,67 +1,78 @@ -GLOBAL_LIST(custom_item_list) //Assoc list in form of ckey = delimited paramlist. +GLOBAL_LIST(custom_item_list) +//Layered list in form of custom_item_list[ckey][job][items][amounts] +//ckey is key, job is specific jobs, or "ALL" for all jobs, items for items, amounts for amount of item. -//File should be in the format of Ckey|things, where things is in the form of itempath1=amount;itempath2=amount;itempath3=amount -//Each ckey should be on a different line!! +//File should be in the format of ckey|exact job name/exact job name/or put ALL instead of any job names|/path/to/item=amount;/path/to/item=amount +//Each ckey should be in a different line +//if there's multiple entries of a single ckey the later ones will add to the earlier definitions. -/proc/reload_custom_item_list(custom_filelist) +/proc/reload_custom_roundstart_items_list(custom_filelist) if(!custom_filelist) - custom_filelist = "config/custom_items.txt" + custom_filelist = "config/custom_roundstart_items.txt" GLOB.custom_item_list = list() var/list/file_lines = world.file2list(custom_filelist) for(var/line in file_lines) - var/list/key_separation = splittext(line, "|") - if((!istype(key_separation))||(key_separation.len > 2)||(key_separation.len < 1)) - stack_trace("Warning: Roundstart items configuration file improperly formatted!") - continue - var/key = key_separation[1] - var/items = key_separation[2] - if(!key) - continue - if(!items) - GLOB.custom_item_list[key] = "ERROR" - continue - GLOB.custom_item_list[key] = list() - var/list/item_separation = splittext(items, ";") - if((!istype(item_separation))||(item_separation.len < 1)) - stack_trace("Warning: Roundstart items configuration file improperly formatted!") - continue - for(var/item_string in item_separation) - world << "itemstring [item_string]" - var/list/amount_separation = splittext(item_string, "=") - world << "separated [item_string] == [english_list(amount_separation)]" - if((!istype(amount_separation))||(amount_separation.len > 2)||(amount_separation.len < 1)) - stack_trace("Warning: Roundstart items configuration file improperly formatted!") + try //Lazy as fuck. + if(length(line) == 0) //Emptyline, no one cares. continue - var/path_to_item = amount_separation[1] - if(!ispath(text2path(path_to_item))) - GLOB.custom_item_list[key] += "ERROR" - var/amount_of_item = amount_separation[2] - if(!amount_of_item) - GLOB.custom_item_list[key][path_to_item] = "ERROR" - var/amount_of_item_num = 0 - if(isnum(amount_of_item)) - amount_of_item_num = amount_of_item - else - amount_of_item_num = text2num(amount_of_item) - if(!isnum(amount_of_item) || (amount_of_item < 1)) - GLOB.custom_item_list[key][path_to_item] = "ERROR" - GLOB.custom_item_list[key][path_to_item] = amount_of_item_num + if(copytext(line,1,3) == "//") //Commented line, ignore. + continue + var/ckey_str_sep = findtext(line, "|") //Process our stuff.. + var/job_str_sep = findtext(line, "|", ckey_str_sep+1) + var/item_str_sep = findtext(line, "|", job_str_sep+1) + var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) + var/job_str = copytext(line, ckey_str_sep+1, job_str_sep) + var/item_str = copytext(line, job_str_sep+1, item_str_sep) + world << "DEBUG: Line process: [line]" + world << "DEBUG: [ckey_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [job_str], [item_str]." + if(!islist(GLOB.custom_item_list[ckey_str])) + GLOB.custom_item_list[ckey_str] = list() //Initialize list for this ckey if it isn't initialized.. + var/list/jobs = splittext(job_str, "/") + world << "DEBUG: Job string processed." + world << "DEBUG: JOBS: [english_list(jobs)]" + for(var/job in jobs) + if(!islist(GLOB.custom_item_list[ckey_str][job])) + GLOB.custom_item_list[ckey_str][job] = list() //Initialize item list for this job of this ckey if not already initialized. + var/list/item_strings = splittext(item_str, ";") //Get item strings in format of /path/to/item=amount + for(var/item_string in item_strings) + var/path_str_sep = findtext(item_string, "=") + var/path = copytext(item_string, 1, path_str_sep) //Path to spawn + var/amount = copytext(item_string, path_str_sep+1) //Amount to spawn + world << "DEBUG: Item string [item_string] processed" + path = text2path(path) + world << "DEBUG: [path_str_sep], [path], [amount]" + for(var/job in jobs) + if(GLOB.custom_item_list[ckey_str][job][path]) //Doesn't exist, make it exist! + GLOB.custom_item_list[ckey_str][job][path] = amount + else + GLOB.custom_item_list[ckey_str][job][path] += amount //Exists, we want more~ + catch //Uh oh. + var/msg = "Error processing line in [custom_filelist]. Line : [line]" + message_admins(msg) + log_game(msg) + stack_trace(msg) + continue return GLOB.custom_item_list -/proc/parse_custom_items_by_key(ckey) - world << "parse_custom_items_by_key([ckey])" +/proc/parse_custom_item_list_key_to_joblist(ckey) //First stage if(!ckey || !GLOB.custom_item_list[ckey]) - world << "parse_custom_items_by_key: no ckey match" return null - var/list/items = GLOB.custom_item_list[ckey] - for(var/I in items) - if(items[I] == "ERROR") - items -= I - continue - return items + return GLOB.custom_item_list[ckey] + +/proc/parse_custom_item_list_joblist_to_items(list, job) //Second stage + var/list/ret = list() + for(var/j in list) //for job in ckey-job-item list + if((j == job) || (j == "ALL") || (job == "ALL")) //job matches or is all jobs or we want everything. + for(var/i in list[j]) //for item in job-item list + if(!ret[i]) + ret[i] = list[j][i] //add to return with return value if not there + else + ret[i] += list[j][i] //else, add to that item in return value! + return ret //If done properly, you'll have a list of item typepaths with how many to spawn. + +/proc/parse_custom_items_by_key_and_job(ckey, job) + return parse_custom_item_list_joblist_to_items(parse_custom_item_list_key_to_joblist(ckey), job) /proc/debug_roundstart_items() - reload_custom_item_list() - for(var/mob/M in world) - handle_roundstart_items(M) + reload_custom_roundstart_items_list() diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 5236cdbb03..6fd3969cd3 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -284,7 +284,6 @@ load("config/config.txt") load("config/game_options.txt","game_options") loadsql("config/dbconfig.txt") - reload_custom_item_list() if (maprotation) loadmaplist("config/maps.txt") diff --git a/config/custom_items.txt b/config/custom_items.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/config/custom_roundstart_items.txt b/config/custom_roundstart_items.txt new file mode 100644 index 0000000000..227015e9e1 --- /dev/null +++ b/config/custom_roundstart_items.txt @@ -0,0 +1,8 @@ +//File should be in the format of ckey|exact job name/exact job name/or put ALL instead of any job names|/path/to/item=amount;/path/to/item=amount +//Each ckey should be in a different line +//if there's multiple entries of a single ckey the later ones will add to the earlier definitions. +//is obviously a comment. +//Recommend defining one job per line, but do what you want. +test1|testjob1/test job 2/ALL|/obj/item/weapon/gun/energy/laser=3;/obj/item/weapon/gun/energy/laser/retro=1;/obj/item/weapon/gun/energy=2 +test1|testjob1|/obj/item/device/aicard=3;/obj/item/device/flightpack=1;/obj/item/weapon/gun/energy=3 + From da615b14402a7bd172d8fa56cb2c72ce6b5c384f Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 14 May 2017 20:19:26 -0700 Subject: [PATCH 008/181] h --- code/citadel/custom_loadout/load_to_mob.dm | 9 ++++++--- code/citadel/custom_loadout/read_from_file.dm | 7 ++++++- code/controllers/subsystem/server_maint.dm | 1 + config/custom_roundstart_items.txt | 2 ++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index e0913cd383..9e8bddd677 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -10,7 +10,9 @@ /proc/handle_roundstart_items(mob/living/M) world << "handle_roundstart_items([M])" if(!istype(M) || !M.ckey || !M.mind) - world << "handle_roundstart_items: [M] has either no ckey or no mind!" + world << "handle_roundstart_items: [M] has either no ckey or no mind!" + if(!M.mind) + world << "[M] has no mind!" return FALSE var/list/items = parse_custom_items_by_key_and_job(M.ckey, M.mind.assigned_role) if(M.mind.special_role) @@ -52,8 +54,9 @@ return FALSE var/turf/T = get_turf(H) for(var/item in itemlist) - if(!ispath(item)) - item = text2path(item) + var/path = item + if(!ispath(path)) + path = text2path(path) if(!path) continue var/amount = itemlist[item] diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index dbca069cb7..642c56f8c0 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -24,6 +24,8 @@ GLOBAL_LIST(custom_item_list) var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) var/job_str = copytext(line, ckey_str_sep+1, job_str_sep) var/item_str = copytext(line, job_str_sep+1, item_str_sep) + if(!ckey_str || !job_str || !item_str || !length(ckey_str) || length(job_str) || length(item_str)) + throw EXCEPTION("Errored Line") world << "DEBUG: Line process: [line]" world << "DEBUG: [ckey_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [job_str], [item_str]." if(!islist(GLOB.custom_item_list[ckey_str])) @@ -40,10 +42,13 @@ GLOBAL_LIST(custom_item_list) var/path = copytext(item_string, 1, path_str_sep) //Path to spawn var/amount = copytext(item_string, path_str_sep+1) //Amount to spawn world << "DEBUG: Item string [item_string] processed" + amount = text2num(amount) path = text2path(path) + if(!ispath(path) || !isnum(amount)) + throw EXCEPTION("Errored line") world << "DEBUG: [path_str_sep], [path], [amount]" for(var/job in jobs) - if(GLOB.custom_item_list[ckey_str][job][path]) //Doesn't exist, make it exist! + if(!GLOB.custom_item_list[ckey_str][job][path]) //Doesn't exist, make it exist! GLOB.custom_item_list[ckey_str][job][path] = amount else GLOB.custom_item_list[ckey_str][job][path] += amount //Exists, we want more~ diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 08f60d23e6..4d32ce719c 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -8,6 +8,7 @@ SUBSYSTEM_DEF(server_maint) var/list/currentrun /datum/controller/subsystem/server_maint/Initialize(timeofday) + reload_custom_roundstart_items_list() if (config.hub) world.visibility = 1 ..() diff --git a/config/custom_roundstart_items.txt b/config/custom_roundstart_items.txt index 227015e9e1..7d206d8d09 100644 --- a/config/custom_roundstart_items.txt +++ b/config/custom_roundstart_items.txt @@ -5,4 +5,6 @@ //Recommend defining one job per line, but do what you want. test1|testjob1/test job 2/ALL|/obj/item/weapon/gun/energy/laser=3;/obj/item/weapon/gun/energy/laser/retro=1;/obj/item/weapon/gun/energy=2 test1|testjob1|/obj/item/device/aicard=3;/obj/item/device/flightpack=1;/obj/item/weapon/gun/energy=3 +kevinz000|ALL|/obj/item/weapon/bikehorn/airhorn=1 +kevinz000|Clown|/obj/item/weapon/bikehorn=1 From d557c03ca2136eb2cc21084d0d21f789482547ae Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 16 May 2017 17:09:39 -0700 Subject: [PATCH 009/181] fix --- code/citadel/custom_loadout/read_from_file.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index 642c56f8c0..a65fd04252 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -24,7 +24,7 @@ GLOBAL_LIST(custom_item_list) var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) var/job_str = copytext(line, ckey_str_sep+1, job_str_sep) var/item_str = copytext(line, job_str_sep+1, item_str_sep) - if(!ckey_str || !job_str || !item_str || !length(ckey_str) || length(job_str) || length(item_str)) + if(!ckey_str || !job_str || !item_str || !length(ckey_str) || !length(job_str) || !length(item_str)) throw EXCEPTION("Errored Line") world << "DEBUG: Line process: [line]" world << "DEBUG: [ckey_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [job_str], [item_str]." From c58c6ffdd89241c032349b4f9652418a32b9c469 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Thu, 18 May 2017 21:24:02 -0700 Subject: [PATCH 010/181] autoloading --- code/citadel/custom_loadout/read_from_file.dm | 2 ++ code/controllers/configuration.dm | 7 ++++--- code/modules/mob/dead/new_player/new_player.dm | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index a65fd04252..a4d363bd06 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -71,8 +71,10 @@ GLOBAL_LIST(custom_item_list) if((j == job) || (j == "ALL") || (job == "ALL")) //job matches or is all jobs or we want everything. for(var/i in list[j]) //for item in job-item list if(!ret[i]) + world << "DEBUG: [i] initialized to return list" ret[i] = list[j][i] //add to return with return value if not there else + world << "DEBUG: [i] added to return list" ret[i] += list[j][i] //else, add to that item in return value! return ret //If done properly, you'll have a list of item typepaths with how many to spawn. diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 4d9c819ef9..4c95463247 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -127,7 +127,7 @@ var/forbid_peaceborg = 0 var/panic_bunker = 0 // prevents new people it hasn't seen before from connecting var/notify_new_player_age = 0 // how long do we notify admins of a new player - var/notify_new_player_account_age = 0 // how long do we notify admins of a new byond account + var/notify_new_player_account_age = 0 // how long do we notify admins of a new byond account var/irc_first_connection_alert = 0 // do we notify the irc channel when somebody is connecting for the first time? var/traitor_scaling_coeff = 6 //how much does the amount of players get divided by to determine traitors @@ -278,6 +278,7 @@ votable_modes += "secret" Reload() + reload_custom_roundstart_items_list() /datum/configuration/proc/Reload() load("config/config.txt") @@ -473,8 +474,8 @@ panic_bunker = 1 if("notify_new_player_age") notify_new_player_age = text2num(value) - if("notify_new_player_account_age") - notify_new_player_account_age = text2num(value) + if("notify_new_player_account_age") + notify_new_player_account_age = text2num(value) if("irc_first_connection_alert") irc_first_connection_alert = 1 if("check_randomizer") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 4effac371d..c22418cbd6 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -371,6 +371,7 @@ if(SHUTTLE_CALL) if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) SSticker.mode.make_antag_chance(humanc) + handle_roundstart_items(character) qdel(src) /mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee) From 0bf9f163f3e096fbb1b1bd4ff55a71d3f4f0c6d2 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 21 May 2017 21:54:31 -0700 Subject: [PATCH 011/181] missed a spot --- code/game/objects/items.dm | 1259 ++++++++++++++++++------------------ 1 file changed, 631 insertions(+), 628 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 28388d656d..4a69fdff87 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,629 +1,632 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire")) - -GLOBAL_VAR_INIT(rpg_loot_items, FALSE) -// if true, everyone item when created will have its name changed to be -// more... RPG-like. - -/obj/item - name = "item" - icon = 'icons/obj/items.dmi' - var/item_state = null - var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' - - //Dimensions of the icon file used when this item is worn, eg: hats.dmi - //eg: 32x32 sprite, 64x64 sprite, etc. - //allows inhands/worn sprites to be of any size, but still centered on a mob properly - var/worn_x_dimension = 32 - var/worn_y_dimension = 32 - //Same as above but for inhands, uses the lefthand_ and righthand_ file vars - var/inhand_x_dimension = 32 - var/inhand_y_dimension = 32 - - //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. - var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events - var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default - - obj_integrity = 200 - max_integrity = 200 - - - var/hitsound = null - var/usesound = null - var/throwhitsound = null - var/w_class = WEIGHT_CLASS_NORMAL - var/slot_flags = 0 //This is used to determine on which slots an item can fit. - pass_flags = PASSTABLE - pressure_resistance = 4 - var/obj/item/master = null - - var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm - var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags - var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags - - var/list/actions //list of /datum/action's that this item has. - var/list/actions_types //list of paths of action datums to give to the item on New(). - - //Since any item can now be a piece of clothing, this has to be put here so all items share it. - var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. - - var/item_color = null //this needs deprecating, soonish - - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags - //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible - var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) - var/permeability_coefficient = 1 // for chemicals/diseases - var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up - var/armour_penetration = 0 //percentage of armour effectiveness to remove - var/list/allowed = null //suit storage stuff. - var/obj/item/device/uplink/hidden_uplink = null - var/strip_delay = 40 - var/put_on_delay = 20 - var/breakouttime = 0 - var/list/materials - var/origin_tech = null //Used by R&D to determine what research bonuses it grants. - var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. - - var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" - var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item - - var/suittoggled = 0 - var/hooded = 0 - - var/mob/thrownby = null - - /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged - - //So items can have custom embedd values - //Because customisation is king - var/embed_chance = EMBED_CHANCE - var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT - var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE - var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) - var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) - var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) - var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) - var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. - - var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES - var/heat = 0 - var/sharpness = IS_BLUNT - var/toolspeed = 1 - - var/block_chance = 0 - var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom - var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default - - //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. - var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() - - // Needs to be in /obj/item because corgis can wear a lot of - // non-clothing items - var/datum/dog_fashion/dog_fashion = null - - var/datum/rpg_loot/rpg_loot = null - -/obj/item/Initialize() - if (!materials) - materials = list() - . = ..() - for(var/path in actions_types) - new path(src) - actions_types = null - - if(GLOB.rpg_loot_items) - rpg_loot = new(src) - -/obj/item/Destroy() - flags &= ~DROPDEL //prevent reqdels - if(ismob(loc)) - var/mob/m = loc - m.temporarilyRemoveItemFromInventory(src, TRUE) - for(var/X in actions) - qdel(X) - QDEL_NULL(rpg_loot) - return ..() - -/obj/item/device - icon = 'icons/obj/device.dmi' - -/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) - if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) - return 0 - else - return 1 - -/obj/item/blob_act(obj/structure/blob/B) - if(B && B.loc == loc) - qdel(src) - -//user: The mob that is suiciding -//damagetype: The type of damage the item will inflict on the user -//BRUTELOSS = 1 -//FIRELOSS = 2 -//TOXLOSS = 4 -//OXYLOSS = 8 -//Output a creative message and then return the damagetype done -/obj/item/proc/suicide_act(mob/user) - return - -/obj/item/verb/move_to_top() - set name = "Move To Top" - set category = "Object" - set src in oview(1) - - if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) - return - - var/turf/T = src.loc - - src.loc = null - - src.loc = T - -/obj/item/examine(mob/user) //This might be spammy. Remove? - ..() - var/pronoun - if(src.gender == PLURAL) - pronoun = "They are" - else - pronoun = "It is" - var/size = weightclass2text(src.w_class) - to_chat(user, "[pronoun] a [size] item." ) - - if(user.research_scanner) //Mob has a research scanner active. - var/msg = "*--------*
" - - if(origin_tech) - msg += "Testing potentials:
" - var/list/techlvls = params2list(origin_tech) - for(var/T in techlvls) //This needs to use the better names. - msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
" - else - msg += "No tech origins detected.
" - - - if(materials.len) - msg += "Extractable materials:
" - for(var/mat in materials) - msg += "[CallMaterialName(mat)]
" //Capitize first word, remove the "$" - else - msg += "No extractable materials detected.
" - msg += "*--------*" - to_chat(user, msg) - - -/obj/item/attack_self(mob/user) - interact(user) - -/obj/item/interact(mob/user) - add_fingerprint(user) - if(hidden_uplink && hidden_uplink.active) - hidden_uplink.interact(user) - return 1 - ui_interact(user) - -/obj/item/ui_act(action, params) - add_fingerprint(usr) - return ..() - -/obj/item/attack_hand(mob/user) - if(!user) - return - if(anchored) - return - - if(resistance_flags & ON_FIRE) - var/mob/living/carbon/C = user - if(istype(C)) - if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) - extinguish() - to_chat(user, "You put out the fire on [src].") - else - to_chat(user, "You burn your hand on [src]!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - return - else - extinguish() - - if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. - var/mob/living/carbon/C = user - if(istype(C)) - if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) - to_chat(user, "The acid on [src] burns your hand!") - var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage - C.update_damage_overlays() - - - if(istype(loc, /obj/item/weapon/storage)) - //If the item is in a storage item, take it out - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - - -/obj/item/attack_paw(mob/user) - if(!user) - return - if(anchored) - return - - if(istype(loc, /obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src, user.loc) - - if(throwing) - throwing.finalize(FALSE) - if(loc == user) - if(!user.dropItemToGround(src)) - return - - pickup(user) - add_fingerprint(user) - if(!user.put_in_active_hand(src)) - dropped(user) - -/obj/item/attack_alien(mob/user) - var/mob/living/carbon/alien/A = user - - if(!A.has_fine_manipulation) - if(src in A.contents) // To stop Aliens having items stuck in their pockets - A.dropItemToGround(src) - to_chat(user, "Your claws aren't capable of such fine manipulation!") - return - attack_paw(A) - -/obj/item/attack_ai(mob/user) - if(istype(src.loc, /obj/item/weapon/robot_module)) - //If the item is part of a cyborg module, equip it - if(!iscyborg(user)) - return - var/mob/living/silicon/robot/R = user - if(!R.low_power_mode) //can't equip modules with an empty cell. - R.activate_module(src) - R.hud_used.update_robot_modules_display() - -// Due to storage type consolidation this should get used more now. -// I have cleaned it up a little, but it could probably use more. -Sayu -// The lack of ..() is intentional, do not add one -/obj/item/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = W - if(S.use_to_pickup) - if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. - if(isturf(loc)) - var/list/rejections = list() - - var/list/things = loc.contents.Copy() - if (S.collection_mode == 2) - things = typecache_filter_list(things, typecacheof(type)) - - var/len = things.len - if(!len) - to_chat(user, "You failed to pick up anything with [S].") - return - var/datum/progressbar/progress = new(user, len, loc) - - while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) - sleep(1) - - qdel(progress) - - to_chat(user, "You put everything you could [S.preposition] [S].") - - else if(S.can_be_inserted(src)) - S.handle_item_insertion(src) - -/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != thing_loc) - continue - if(I.type in rejections) // To limit bag spamming: any given type only complains once - continue - if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no - if(S.contents.len >= S.storage_slots) - break - rejections += I.type // therefore full bags are still a little spammy - continue - - S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. - - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency - -/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(prob(final_block_chance)) - owner.visible_message("[owner] blocks [attack_text] with [src]!") - return 1 - return 0 - -/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) - return ITALICS | REDUCE_RANGE - -/obj/item/proc/dropped(mob/user) - for(var/X in actions) - var/datum/action/A = X - A.Remove(user) - if(DROPDEL & flags) - qdel(src) - -// called just as an item is picked up (loc is not yet changed) -/obj/item/proc/pickup(mob/user) - return - - -// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. -/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) - return - -// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. -/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) - return - -// called when "found" in pockets and storage items. Returns 1 if the search should end. -/obj/item/proc/on_found(mob/finder) - return - -// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. -// user is mob that equipped it -// slot uses the slot_X defines found in setup.dm -// for items that can be placed in multiple slots -// note this isn't called during the initial dressing of a player -/obj/item/proc/equipped(mob/user, slot) - for(var/X in actions) - var/datum/action/A = X - if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. - A.Grant(user) - -//sometimes we only want to grant the item's action if it's equipped in a specific slot. -/obj/item/proc/item_action_slot_check(slot, mob/user) - if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there - return FALSE - return TRUE - -//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. -//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. -//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. -//Set disable_warning to 1 if you wish it to not give you outputs. -/obj/item/proc/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) - if(!M) - return 0 - - return M.can_equip(src, slot, disable_warning) - -/obj/item/verb/verb_pickup() - set src in oview(1) - set category = "Object" - set name = "Pick up" - - if(usr.incapacitated() || !Adjacent(usr) || usr.lying) - return - - if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota - usr.UnarmedAttack(src) - -//This proc is executed when someone clicks the on-screen UI button. -//The default action is attack_self(). -//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. -/obj/item/proc/ui_action_click(mob/user, actiontype) - attack_self(user) - -/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit - return 0 - -/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) - - var/is_human_victim = 0 - var/obj/item/bodypart/affecting = M.get_bodypart("head") - if(ishuman(M)) - if(!affecting) //no head! - return - is_human_victim = 1 - var/mob/living/carbon/human/H = M - if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ - (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ - (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(ismonkey(M)) - var/mob/living/carbon/monkey/Mo = M - if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) - // you can't stab someone in the eyes wearing a mask! - to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") - return - - if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! - to_chat(user, "You cannot locate any eyes on this creature!") - return - - if(isbrain(M)) - to_chat(user, "You cannot locate any organic eyes on this brain!") - return - - src.add_fingerprint(user) - - playsound(loc, src.hitsound, 30, 1, -1) - - user.do_attack_animation(M) - - if(M != user) - M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ - "[user] stabs you in the eye with [src]!") - else - user.visible_message( \ - "[user] has stabbed themself in the eyes with [src]!", \ - "You stab yourself in the eyes with [src]!" \ - ) - if(is_human_victim) - var/mob/living/carbon/human/U = M - U.apply_damage(7, BRUTE, affecting) - - else - M.take_bodypart_damage(7) - - add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") - - M.adjust_blurriness(3) - M.adjust_eye_damage(rand(2,4)) - if(M.eye_damage >= 10) - M.adjust_blurriness(15) - if(M.stat != DEAD) - to_chat(M, "Your eyes start to bleed profusely!") - if(!(M.disabilities & (NEARSIGHT | BLIND))) - if(M.become_nearsighted()) - to_chat(M, "You become nearsighted!") - if(prob(50)) - if(M.stat != DEAD) - if(M.drop_item()) - to_chat(M, "You drop what you're holding and clutch at your eyes!") - M.adjust_blurriness(10) - M.Paralyse(1) - M.Weaken(2) - if (prob(M.eye_damage - 10 + 1)) - if(M.become_blind()) - to_chat(M, "You go blind!") - -/obj/item/clean_blood() - . = ..() - if(.) - if(initial(icon) && initial(icon_state)) - var/index = blood_splatter_index() - var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] - if(blood_splatter_icon) - cut_overlay(blood_splatter_icon) - -/obj/item/clothing/gloves/clean_blood() - . = ..() - if(.) - transfer_blood = 0 - -/obj/item/singularity_pull(S, current_size) - if(current_size >= STAGE_FOUR) - throw_at(S,14,3, spin=0) - else ..() - -/obj/item/throw_impact(atom/A) - if(A && !QDELETED(A)) - var/itempush = 1 - if(w_class < 4) - itempush = 0 //too light to push anything - return A.hitby(src, 0, itempush) - -/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - thrownby = thrower - callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own - . = ..(target, range, speed, thrower, spin, diagonals_first, callback) - - -/obj/item/proc/after_throw(datum/callback/callback) - if (callback) //call the original callback - . = callback.Invoke() - throw_speed = initial(throw_speed) //explosions change this. - -/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage - if(!newLoc) - return 0 - if(istype(loc,/obj/item/weapon/storage)) - var/obj/item/weapon/storage/S = loc - S.remove_from_storage(src,newLoc) - return 1 - return 0 - -/obj/item/proc/is_hot() - return heat - -/obj/item/proc/is_sharp() - return sharpness - -/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) - if(affecting.can_dismember(src)) - if((sharpness || damtype == BURN) && w_class >= 3) - . = force*(w_class-1) - -/obj/item/proc/get_dismember_sound() - if(damtype == BURN) - . = 'sound/weapons/sear.ogg' - else - . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') - -/obj/item/proc/open_flame(flame_heat=700) - var/turf/location = loc - if(ismob(location)) - var/mob/M = location - var/success = FALSE - if(src == M.get_item_by_slot(slot_wear_mask)) - success = TRUE - if(success) - location = get_turf(M) - if(isturf(location)) - location.hotspot_expose(flame_heat, 5) - -/obj/item/proc/ignition_effect(atom/A, mob/user) - if(is_hot()) - . = "[user] lights [A] with [src]." - else - . = "" - - -//when an item modify our speech spans when in our active hand. Override this to modify speech spans. -/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) - return - -/obj/item/hitby(atom/movable/AM) - return - -/obj/item/attack_hulk(mob/living/carbon/human/user) - return 0 - -/obj/item/attack_animal(mob/living/simple_animal/M) - return 0 - -/obj/item/mech_melee_attack(obj/mecha/M) - return 0 - -/obj/item/burn() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/ash_type = /obj/effect/decal/cleanable/ash - if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) - ash_type = /obj/effect/decal/cleanable/ash/large - var/obj/effect/decal/cleanable/ash/A = new ash_type(T) - A.desc += "\nLooks like this used to be \an [name] some time ago." - ..() - -/obj/item/acid_melt() - if(!QDELETED(src)) - var/turf/T = get_turf(src) - var/obj/effect/decal/cleanable/molten_object/MO = new(T) - MO.pixel_x = rand(-16,16) - MO.pixel_y = rand(-16,16) - MO.desc = "Looks like this was \an [src] some time ago." - ..() - -/obj/item/proc/microwave_act(obj/machinery/microwave/M) - if(M && M.dirty < 100) - M.dirty++ + +GLOBAL_VAR_INIT(rpg_loot_items, FALSE) +// if true, everyone item when created will have its name changed to be +// more... RPG-like. + +/obj/item + name = "item" + icon = 'icons/obj/items.dmi' + var/item_state = null + var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + //Dimensions of the icon file used when this item is worn, eg: hats.dmi + //eg: 32x32 sprite, 64x64 sprite, etc. + //allows inhands/worn sprites to be of any size, but still centered on a mob properly + var/worn_x_dimension = 32 + var/worn_y_dimension = 32 + //Same as above but for inhands, uses the lefthand_ and righthand_ file vars + var/inhand_x_dimension = 32 + var/inhand_y_dimension = 32 + + //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. + var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events + var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default + + obj_integrity = 200 + max_integrity = 200 + + + var/hitsound = null + var/usesound = null + var/throwhitsound = null + var/w_class = WEIGHT_CLASS_NORMAL + var/slot_flags = 0 //This is used to determine on which slots an item can fit. + pass_flags = PASSTABLE + pressure_resistance = 4 + var/obj/item/master = null + + var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags + var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags + + var/list/actions //list of /datum/action's that this item has. + var/list/actions_types //list of paths of action datums to give to the item on New(). + + //Since any item can now be a piece of clothing, this has to be put here so all items share it. + var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. + + var/item_color = null //this needs deprecating, soonish + + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible + var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) + var/permeability_coefficient = 1 // for chemicals/diseases + var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) + var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up + var/armour_penetration = 0 //percentage of armour effectiveness to remove + var/list/allowed = null //suit storage stuff. + var/obj/item/device/uplink/hidden_uplink = null + var/strip_delay = 40 + var/put_on_delay = 20 + var/breakouttime = 0 + var/list/materials + var/origin_tech = null //Used by R&D to determine what research bonuses it grants. + var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + + var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" + var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item + + var/suittoggled = 0 + var/hooded = 0 + + var/mob/thrownby = null + + /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + + //So items can have custom embedd values + //Because customisation is king + var/embed_chance = EMBED_CHANCE + var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT + var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE + var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) + var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) + var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) + var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) + var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. + + var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES + var/heat = 0 + var/sharpness = IS_BLUNT + var/toolspeed = 1 + + var/block_chance = 0 + var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom + var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default + + //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. + var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() + + // Needs to be in /obj/item because corgis can wear a lot of + // non-clothing items + var/datum/dog_fashion/dog_fashion = null + + var/datum/rpg_loot/rpg_loot = null + +/obj/item/Initialize() + if (!materials) + materials = list() + . = ..() + for(var/path in actions_types) + new path(src) + actions_types = null + + if(GLOB.rpg_loot_items) + rpg_loot = new(src) + +/obj/item/Destroy() + flags &= ~DROPDEL //prevent reqdels + if(ismob(loc)) + var/mob/m = loc + m.temporarilyRemoveItemFromInventory(src, TRUE) + for(var/X in actions) + qdel(X) + QDEL_NULL(rpg_loot) + return ..() + +/obj/item/device + icon = 'icons/obj/device.dmi' + +/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) + if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) + return 0 + else + return 1 + +/obj/item/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + qdel(src) + +//user: The mob that is suiciding +//damagetype: The type of damage the item will inflict on the user +//BRUTELOSS = 1 +//FIRELOSS = 2 +//TOXLOSS = 4 +//OXYLOSS = 8 +//Output a creative message and then return the damagetype done +/obj/item/proc/suicide_act(mob/user) + return + +/obj/item/verb/move_to_top() + set name = "Move To Top" + set category = "Object" + set src in oview(1) + + if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) + return + + var/turf/T = src.loc + + src.loc = null + + src.loc = T + +/obj/item/examine(mob/user) //This might be spammy. Remove? + ..() + var/pronoun + if(src.gender == PLURAL) + pronoun = "They are" + else + pronoun = "It is" + var/size = weightclass2text(src.w_class) + to_chat(user, "[pronoun] a [size] item." ) + + if(user.research_scanner) //Mob has a research scanner active. + var/msg = "*--------*
" + + if(origin_tech) + msg += "Testing potentials:
" + var/list/techlvls = params2list(origin_tech) + for(var/T in techlvls) //This needs to use the better names. + msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
" + else + msg += "No tech origins detected.
" + + + if(materials.len) + msg += "Extractable materials:
" + for(var/mat in materials) + msg += "[CallMaterialName(mat)]
" //Capitize first word, remove the "$" + else + msg += "No extractable materials detected.
" + msg += "*--------*" + to_chat(user, msg) + + +/obj/item/attack_self(mob/user) + interact(user) + +/obj/item/interact(mob/user) + add_fingerprint(user) + if(hidden_uplink && hidden_uplink.active) + hidden_uplink.interact(user) + return 1 + ui_interact(user) + +/obj/item/ui_act(action, params) + add_fingerprint(usr) + return ..() + +/obj/item/attack_hand(mob/user) + if(!user) + return + if(anchored) + return + + if(resistance_flags & ON_FIRE) + var/mob/living/carbon/C = user + if(istype(C)) + if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) + extinguish() + to_chat(user, "You put out the fire on [src].") + else + to_chat(user, "You burn your hand on [src]!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + return + else + extinguish() + + if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. + var/mob/living/carbon/C = user + if(istype(C)) + if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) + to_chat(user, "The acid on [src] burns your hand!") + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + + + if(istype(loc, /obj/item/weapon/storage)) + //If the item is in a storage item, take it out + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + + +/obj/item/attack_paw(mob/user) + if(!user) + return + if(anchored) + return + + if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + if(throwing) + throwing.finalize(FALSE) + if(loc == user) + if(!user.dropItemToGround(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + +/obj/item/attack_alien(mob/user) + var/mob/living/carbon/alien/A = user + + if(!A.has_fine_manipulation) + if(src in A.contents) // To stop Aliens having items stuck in their pockets + A.dropItemToGround(src) + to_chat(user, "Your claws aren't capable of such fine manipulation!") + return + attack_paw(A) + +/obj/item/attack_ai(mob/user) + if(istype(src.loc, /obj/item/weapon/robot_module)) + //If the item is part of a cyborg module, equip it + if(!iscyborg(user)) + return + var/mob/living/silicon/robot/R = user + if(!R.low_power_mode) //can't equip modules with an empty cell. + R.activate_module(src) + R.hud_used.update_robot_modules_display() + +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu +// The lack of ..() is intentional, do not add one +/obj/item/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + if(S.use_to_pickup) + if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. + if(isturf(loc)) + var/list/rejections = list() + + var/list/things = loc.contents.Copy() + if (S.collection_mode == 2) + things = typecache_filter_list(things, typecacheof(type)) + + var/len = things.len + if(!len) + to_chat(user, "You failed to pick up anything with [S].") + return + var/datum/progressbar/progress = new(user, len, loc) + + while (do_after(user, 10, TRUE, S, FALSE, CALLBACK(src, .proc/handle_mass_pickup, S, things, loc, rejections, progress))) + sleep(1) + + qdel(progress) + + to_chat(user, "You put everything you could [S.preposition] [S].") + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) + +/obj/item/proc/handle_mass_pickup(obj/item/weapon/storage/S, list/things, atom/thing_loc, list/rejections, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if(I.loc != thing_loc) + continue + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I, stop_messages = TRUE)) // Note can_be_inserted still makes noise when the answer is no + if(S.contents.len >= S.storage_slots) + break + rejections += I.type // therefore full bags are still a little spammy + continue + + S.handle_item_insertion(I, TRUE) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency + +/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(prob(final_block_chance)) + owner.visible_message("[owner] blocks [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) + return ITALICS | REDUCE_RANGE + +/obj/item/proc/dropped(mob/user) + for(var/X in actions) + var/datum/action/A = X + A.Remove(user) + if(DROPDEL & flags) + qdel(src) + +// called just as an item is picked up (loc is not yet changed) +/obj/item/proc/pickup(mob/user) + return + + +// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. +/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) + return + +// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. +/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) + return + +// called when "found" in pockets and storage items. Returns 1 if the search should end. +/obj/item/proc/on_found(mob/finder) + return + +// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. +// user is mob that equipped it +// slot uses the slot_X defines found in setup.dm +// for items that can be placed in multiple slots +// note this isn't called during the initial dressing of a player +/obj/item/proc/equipped(mob/user, slot) + for(var/X in actions) + var/datum/action/A = X + if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. + A.Grant(user) + +//sometimes we only want to grant the item's action if it's equipped in a specific slot. +/obj/item/proc/item_action_slot_check(slot, mob/user) + if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there + return FALSE + return TRUE + +//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. +//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. +//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. +//Set disable_warning to 1 if you wish it to not give you outputs. +/obj/item/proc/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(!M) + return 0 + + return M.can_equip(src, slot, disable_warning) + +/obj/item/verb/verb_pickup() + set src in oview(1) + set category = "Object" + set name = "Pick up" + + if(usr.incapacitated() || !Adjacent(usr) || usr.lying) + return + + if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota + usr.UnarmedAttack(src) + +//This proc is executed when someone clicks the on-screen UI button. +//The default action is attack_self(). +//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. +/obj/item/proc/ui_action_click(mob/user, actiontype) + attack_self(user) + +/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit + return 0 + +/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) + + var/is_human_victim = 0 + var/obj/item/bodypart/affecting = M.get_bodypart("head") + if(ishuman(M)) + if(!affecting) //no head! + return + is_human_victim = 1 + var/mob/living/carbon/human/H = M + if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ + (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ + (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(ismonkey(M)) + var/mob/living/carbon/monkey/Mo = M + if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) + // you can't stab someone in the eyes wearing a mask! + to_chat(user, "You're going to need to remove that mask/helmet/glasses first!") + return + + if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! + to_chat(user, "You cannot locate any eyes on this creature!") + return + + if(isbrain(M)) + to_chat(user, "You cannot locate any organic eyes on this brain!") + return + + src.add_fingerprint(user) + + playsound(loc, src.hitsound, 30, 1, -1) + + user.do_attack_animation(M) + + if(M != user) + M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ + "[user] stabs you in the eye with [src]!") + else + user.visible_message( \ + "[user] has stabbed themself in the eyes with [src]!", \ + "You stab yourself in the eyes with [src]!" \ + ) + if(is_human_victim) + var/mob/living/carbon/human/U = M + U.apply_damage(7, BRUTE, affecting) + + else + M.take_bodypart_damage(7) + + add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") + + M.adjust_blurriness(3) + M.adjust_eye_damage(rand(2,4)) + if(M.eye_damage >= 10) + M.adjust_blurriness(15) + if(M.stat != DEAD) + to_chat(M, "Your eyes start to bleed profusely!") + if(!(M.disabilities & (NEARSIGHT | BLIND))) + if(M.become_nearsighted()) + to_chat(M, "You become nearsighted!") + if(prob(50)) + if(M.stat != DEAD) + if(M.drop_item()) + to_chat(M, "You drop what you're holding and clutch at your eyes!") + M.adjust_blurriness(10) + M.Paralyse(1) + M.Weaken(2) + if (prob(M.eye_damage - 10 + 1)) + if(M.become_blind()) + to_chat(M, "You go blind!") + +/obj/item/clean_blood() + . = ..() + if(.) + if(initial(icon) && initial(icon_state)) + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = GLOB.blood_splatter_icons[index] + if(blood_splatter_icon) + cut_overlay(blood_splatter_icon) + +/obj/item/clothing/gloves/clean_blood() + . = ..() + if(.) + transfer_blood = 0 + +/obj/item/singularity_pull(S, current_size) + if(current_size >= STAGE_FOUR) + throw_at(S,14,3, spin=0) + else ..() + +/obj/item/throw_impact(atom/A) + if(A && !QDELETED(A)) + if(is_hot() && isliving(A)) + var/mob/living/L = A + L.IgniteMob() + var/itempush = 1 + if(w_class < 4) + itempush = 0 //too light to push anything + return A.hitby(src, 0, itempush) + +/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + thrownby = thrower + callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own + . = ..(target, range, speed, thrower, spin, diagonals_first, callback) + + +/obj/item/proc/after_throw(datum/callback/callback) + if (callback) //call the original callback + . = callback.Invoke() + throw_speed = initial(throw_speed) //explosions change this. + +/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage + if(!newLoc) + return 0 + if(istype(loc,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src,newLoc) + return 1 + return 0 + +/obj/item/proc/is_hot() + return heat + +/obj/item/proc/is_sharp() + return sharpness + +/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) + if(affecting.can_dismember(src)) + if((sharpness || damtype == BURN) && w_class >= 3) + . = force*(w_class-1) + +/obj/item/proc/get_dismember_sound() + if(damtype == BURN) + . = 'sound/weapons/sear.ogg' + else + . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + +/obj/item/proc/open_flame(flame_heat=700) + var/turf/location = loc + if(ismob(location)) + var/mob/M = location + var/success = FALSE + if(src == M.get_item_by_slot(slot_wear_mask)) + success = TRUE + if(success) + location = get_turf(M) + if(isturf(location)) + location.hotspot_expose(flame_heat, 5) + +/obj/item/proc/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "[user] lights [A] with [src]." + else + . = "" + + +//when an item modify our speech spans when in our active hand. Override this to modify speech spans. +/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) + return + +/obj/item/hitby(atom/movable/AM) + return + +/obj/item/attack_hulk(mob/living/carbon/human/user) + return 0 + +/obj/item/attack_animal(mob/living/simple_animal/M) + return 0 + +/obj/item/mech_melee_attack(obj/mecha/M) + return 0 + +/obj/item/burn() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/ash_type = /obj/effect/decal/cleanable/ash + if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) + ash_type = /obj/effect/decal/cleanable/ash/large + var/obj/effect/decal/cleanable/ash/A = new ash_type(T) + A.desc += "\nLooks like this used to be \an [name] some time ago." + ..() + +/obj/item/acid_melt() + if(!QDELETED(src)) + var/turf/T = get_turf(src) + var/obj/effect/decal/cleanable/molten_object/MO = new(T) + MO.pixel_x = rand(-16,16) + MO.pixel_y = rand(-16,16) + MO.desc = "Looks like this was \an [src] some time ago." + ..() + +/obj/item/proc/microwave_act(obj/machinery/microwave/M) + if(M && M.dirty < 100) + M.dirty++ From ff4ef6a1f565b7dfc01be8d1c23e3e49635bb1ec Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 21 May 2017 21:58:11 -0700 Subject: [PATCH 012/181] reset --- code/__HELPERS/mobs.dm | 28 +- code/_onclick/item_attack.dm | 2 +- code/controllers/configuration.dm | 1862 ++++++++--------- code/controllers/subsystem/server_maint.dm | 1 - code/controllers/subsystem/spacedrift.dm | 2 +- code/game/gamemodes/antag_spawner.dm | 12 +- code/game/machinery/computer/cloning.dm | 1004 ++++----- code/game/machinery/computer/robot.dm | 344 +-- code/game/machinery/recycler.dm | 420 ++-- code/game/machinery/suit_storage_unit.dm | 776 +++---- code/game/objects/effects/portals.dm | 138 +- code/game/objects/items/devices/PDA/radio.dm | 4 +- code/game/objects/items/devices/powersink.dm | 290 +-- .../objects/items/devices/radio/beacon.dm | 4 +- .../objects/items/devices/radio/headset.dm | 22 +- .../objects/items/devices/radio/intercom.dm | 4 +- .../objects/items/devices/transfer_valve.dm | 422 ++-- .../objects/items/weapons/dna_injector.dm | 8 +- .../objects/items/weapons/grenades/grenade.dm | 36 +- .../items/weapons/implants/implantchair.dm | 378 ++-- .../items/weapons/storage/uplink_kits.dm | 608 +++--- .../objects/items/weapons/tanks/tank_types.dm | 4 +- code/game/objects/items/weapons/weaponry.dm | 1106 +++++----- code/game/objects/structures/bedsheet_bin.dm | 632 +++--- .../crates_lockers/closets/secure/security.dm | 566 ++--- code/game/objects/structures/mineral_doors.dm | 442 ++-- code/modules/admin/verbs/randomverbs.dm | 6 +- code/modules/assembly/timer.dm | 230 +- .../atmospherics/machinery/portable/pump.dm | 282 +-- code/modules/jobs/job_types/job.dm | 2 - code/modules/mapping/ruins.dm | 186 +- .../modules/mob/dead/new_player/new_player.dm | 11 +- code/modules/mob/inventory.dm | 4 +- .../mob/living/carbon/human/inventory.dm | 490 ++--- .../carbon/human/species_types/golems.dm | 1396 ++++++------ .../carbon/human/species_types/zombies.dm | 100 +- .../mob/living/simple_animal/friendly/cat.dm | 548 ++--- code/modules/paperwork/clipboard.dm | 244 +-- code/modules/paperwork/folders.dm | 18 +- code/modules/power/gravitygenerator.dm | 24 +- code/modules/power/singularity/emitter.dm | 986 ++++----- .../particle_accelerator/particle_control.dm | 656 +++--- code/modules/projectiles/ammunition/energy.dm | 1 + .../modules/projectiles/projectile/bullets.dm | 54 +- code/modules/projectiles/projectile/energy.dm | 2 + .../chemistry/reagents/food_reagents.dm | 0 .../reagents/reagent_containers/glass.dm | 0 .../reagents/reagent_containers/spray.dm | 478 ++--- code/modules/shuttle/ferry.dm | 66 +- icons/emoji.dmi | Bin tgstation.dme | 25 +- tools/tgstation-server/Start Server.bat | 44 +- 52 files changed, 7490 insertions(+), 7478 deletions(-) mode change 100644 => 100755 code/game/objects/items/weapons/tanks/tank_types.dm mode change 100755 => 100644 code/modules/reagents/chemistry/reagents/food_reagents.dm mode change 100755 => 100644 code/modules/reagents/reagent_containers/glass.dm mode change 100755 => 100644 icons/emoji.dmi diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 6a4ec3456e..43b657dd9c 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -340,20 +340,20 @@ Proc for attack log creation, because really why not qdel(progbar) -//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action -/mob/proc/break_do_after_checks(list/checked_health, check_clicks) - if(check_clicks && next_move > world.time) - return FALSE - return TRUE - -//pass a list in the format list("health" = mob's health var) to check health during this -/mob/living/break_do_after_checks(list/checked_health, check_clicks) - if(islist(checked_health)) - if(health < checked_health["health"]) - return FALSE - checked_health["health"] = health - return ..() - +//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action +/mob/proc/break_do_after_checks(list/checked_health, check_clicks) + if(check_clicks && next_move > world.time) + return FALSE + return TRUE + +//pass a list in the format list("health" = mob's health var) to check health during this +/mob/living/break_do_after_checks(list/checked_health, check_clicks) + if(islist(checked_health)) + if(health < checked_health["health"]) + return FALSE + checked_health["health"] = health + return ..() + /proc/do_after(mob/user, delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null) if(!user) return 0 diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 09bdd44e6a..24f6559dd6 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -28,7 +28,7 @@ if(sharpness) to_chat(user, "You begin to butcher [src]...") playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) - if(do_mob(user, src, 80/sharpness) && Adjacent(I)) + if(do_mob(user, src, 80/sharpness) && Adjacent(I)) harvest(user) return 1 return I.attack(src, user) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index e808b03ac7..e9bdeca880 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -1,931 +1,931 @@ -//Configuraton defines //TODO: Move all yes/no switches into bitflags - -//Used by jobs_have_maint_access -#define ASSISTANTS_HAVE_MAINT_ACCESS 1 -#define SECURITY_HAS_MAINT_ACCESS 2 -#define EVERYONE_HAS_MAINT_ACCESS 4 - -/datum/configuration/can_vv_get(var_name) - var/static/list/banned_gets = list("autoadmin", "autoadmin_rank") - if (var_name in banned_gets) - return FALSE - return ..() - -/datum/configuration/vv_edit_var(var_name, var_value) - var/static/list/banned_edits = list("cross_address", "cross_allowed", "autoadmin", "autoadmin_rank") - if(var_name in banned_edits) - return FALSE - return ..() - -/datum/configuration - var/name = "Configuration" // datum name - - var/autoadmin = 0 - var/autoadmin_rank = "Game Admin" - - var/server_name = null // server name (the name of the game window) - var/server_sql_name = null // short form server name used for the DB - var/station_name = null // station name (the name of the station in-game) - var/lobby_countdown = 120 // In between round countdown. - var/round_end_countdown = 25 // Post round murder death kill countdown - var/hub = 0 - - var/log_ooc = 0 // log OOC channel - var/log_access = 0 // log login/logout - var/log_say = 0 // log client say - var/log_admin = 0 // log admin actions - var/log_game = 0 // log game events - var/log_vote = 0 // log voting - var/log_whisper = 0 // log client whisper - var/log_prayer = 0 // log prayers - var/log_law = 0 // log lawchanges - var/log_emote = 0 // log emotes - var/log_attack = 0 // log attack messages - var/log_adminchat = 0 // log admin chat messages - var/log_pda = 0 // log pda messages - var/log_twitter = 0 // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. - var/log_world_topic = 0 // log all world.Topic() calls - var/sql_enabled = 0 // for sql switching - var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour - var/allow_vote_restart = 0 // allow votes to restart - var/allow_vote_mode = 0 // allow votes to change mode - var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) - var/vote_period = 600 // length of voting period (deciseconds, default 1 minute) - var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) - var/vote_no_dead = 0 // dead people can't vote (tbi) - var/del_new_on_log = 1 // del's new players if they log before they spawn in - var/allow_Metadata = 0 // Metadata is supported. - var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. - var/fps = 20 - var/allow_holidays = 0 //toggles whether holiday-specific content should be used - var/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling - - var/hostedby = null - var/respawn = 1 - var/guest_jobban = 1 - var/usewhitelist = 0 - var/inactivity_period = 3000 //time in ds until a player is considered inactive - var/afk_period = 6000 //time in ds until a player is considered afk and kickable - var/kick_inactive = FALSE //force disconnect for inactive players - var/load_jobs_from_txt = 0 - var/automute_on = 0 //enables automuting/spam prevention - var/minimal_access_threshold = 0 //If the number of players is larger than this threshold, minimal access will be turned on. - var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. - var/jobs_have_maint_access = 0 //Who gets maint access? See defines above. - var/sec_start_brig = 0 //makes sec start in brig or dept sec posts - - var/server - var/banappeals - var/wikiurl = "http://www.tgstation13.org/wiki" // Default wiki link. - var/forumurl = "http://tgstation13.org/phpBB/index.php" //default forums - var/rulesurl = "http://www.tgstation13.org/wiki/Rules" // default rules - var/githuburl = "https://www.github.com/tgstation/-tg-station" //default github - var/githubrepoid - - var/forbid_singulo_possession = 0 - var/useircbot = 0 - - var/check_randomizer = 0 - - var/allow_panic_bunker_bounce = 0 //Send new players somewhere else - var/panic_server_name = "somewhere else" - var/panic_address = "byond://" //Reconnect a player this linked server if this server isn't accepting new players - - //IP Intel vars - var/ipintel_email - var/ipintel_rating_bad = 1 - var/ipintel_save_good = 12 - var/ipintel_save_bad = 1 - var/ipintel_domain = "check.getipintel.net" - - var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt - var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt - var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database - var/use_account_age_for_jobs = 0 //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. - var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt - - //Population cap vars - var/soft_popcap = 0 - var/hard_popcap = 0 - var/extreme_popcap = 0 - var/soft_popcap_message = "Be warned that the server is currently serving a high number of users, consider using alternative game servers." - var/hard_popcap_message = "The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers." - var/extreme_popcap_message = "The server is currently serving a high number of users, find alternative servers." - - //game_options.txt configs - var/force_random_names = 0 - var/list/mode_names = list() - var/list/modes = list() // allowed modes - var/list/votable_modes = list() // votable modes - var/list/probabilities = list() // relative probability of each mode - var/list/min_pop = list() // overrides for acceptible player counts in a mode - var/list/max_pop = list() - - var/humans_need_surnames = 0 - var/allow_ai = 0 // allow ai job - var/forbid_secborg = 0 // disallow secborg module to be chosen. - var/forbid_peaceborg = 0 - var/panic_bunker = 0 // prevents new people it hasn't seen before from connecting - var/notify_new_player_age = 0 // how long do we notify admins of a new player - var/notify_new_player_account_age = 0 // how long do we notify admins of a new byond account - var/irc_first_connection_alert = 0 // do we notify the irc channel when somebody is connecting for the first time? - - var/traitor_scaling_coeff = 6 //how much does the amount of players get divided by to determine traitors - var/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings - var/security_scaling_coeff = 8 //how much does the amount of players get divided by to determine open security officer positions - var/abductor_scaling_coeff = 15 //how many players per abductor team - - var/traitor_objectives_amount = 2 - var/protect_roles_from_antagonist = 0 //If security and such can be traitor/cult/other - var/protect_assistant_from_antagonist = 0 //If assistants can be traitor/cult/other - var/enforce_human_authority = 0 //If non-human species are barred from joining as a head of staff - var/allow_latejoin_antagonists = 0 // If late-joining players can be traitor/changeling - var/list/continuous = list() // which roundtypes continue if all antagonists die - var/list/midround_antag = list() // which roundtypes use the midround antagonist system - var/midround_antag_time_check = 60 // How late (in minutes) you want the midround antag system to stay on, setting this to 0 will disable the system - var/midround_antag_life_check = 0.7 // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist - var/shuttle_refuel_delay = 12000 - var/show_game_type_odds = 0 //if set this allows players to see the odds of each roundtype on the get revision screen - var/mutant_races = 0 //players can choose their mutant race before joining the game - var/list/roundstart_races = list() //races you can play as from the get go. If left undefined the game's roundstart var for species is used - var/mutant_humans = 0 //players can pick mutant bodyparts for humans before joining the game - - var/no_summon_guns //No - var/no_summon_magic //Fun - var/no_summon_events //Allowed - - var/intercept = 1 //Whether or not to send a communications intercept report roundstart. This may be overriden by gamemodes. - var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." - var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." - var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." - var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." - var/alert_desc_red_downto = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." - var/alert_desc_delta = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - - var/revival_pod_plants = FALSE - var/revival_cloning = FALSE - var/revival_brain_life = -1 - - var/rename_cyborg = 0 - var/ooc_during_round = 0 - var/emojis = 0 - - //Used for modifying movement speed for mobs. - //Unversal modifiers - var/run_speed = 0 - var/walk_speed = 0 - - //Mob specific modifiers. NOTE: These will affect different mob types in different ways - var/human_delay = 0 - var/robot_delay = 0 - var/monkey_delay = 0 - var/alien_delay = 0 - var/slime_delay = 0 - var/animal_delay = 0 - - var/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. - var/ghost_interaction = 0 - - var/silent_ai = 0 - var/silent_borg = 0 - - var/damage_multiplier = 1 //Modifier for damage to all mobs. Impacts healing as well. - - var/allowwebclient = 0 - var/webclientmembersonly = 0 - - var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff - - var/default_laws = 0 //Controls what laws the AI spawns with. - var/silicon_max_law_amount = 12 - var/list/lawids = list() - - var/list/law_weights = list() - - var/assistant_cap = -1 - - var/starlight = 0 - var/generate_minimaps = 0 - var/grey_assistants = 0 - - var/lavaland_budget = 60 - var/space_budget = 16 - - var/aggressive_changelog = 0 - - var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors - - var/autoconvert_notes = 0 //if all connecting player's notes should attempt to be converted to the database - - var/announce_admin_logout = 0 - var/announce_admin_login = 0 - - var/list/datum/map_config/maplist = list() - var/datum/map_config/defaultmap = null - var/maprotation = 1 - var/maprotatechancedelta = 0.75 - var/allow_map_voting = TRUE - - // Enables random events mid-round when set to 1 - var/allow_random_events = 0 - - // Multipliers for random events minimal starting time and minimal players amounts - var/events_min_time_mul = 1 - var/events_min_players_mul = 1 - - // The object used for the clickable stat() button. - var/obj/effect/statclick/statclick - - var/client_warn_version = 0 - var/client_warn_message = "Your version of byond may have issues or be blocked from accessing this server in the future." - var/client_error_version = 0 - var/client_error_message = "Your version of byond is too old, may have issues, and is blocked from accessing this server." - - var/cross_name = "Other server" - var/cross_address = "byond://" - var/cross_allowed = FALSE - var/showircname = 0 - - var/list/gamemode_cache = null - - var/minutetopiclimit - var/secondtopiclimit - - var/error_cooldown = 600 // The "cooldown" time for each occurrence of a unique error - var/error_limit = 50 // How many occurrences before the next will silence them - var/error_silence_time = 6000 // How long a unique error will be silenced for - var/error_msg_delay = 50 // How long to wait between messaging admins about occurrences of a unique error - - var/arrivals_shuttle_dock_window = 55 //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station - var/arrivals_shuttle_require_safe_latejoin = FALSE //Require the arrivals shuttle to be operational in order for latejoiners to join - - var/mice_roundstart = 10 // how many wire chewing rodents spawn at roundstart. - -/datum/configuration/New() - gamemode_cache = typecacheof(/datum/game_mode,TRUE) - for(var/T in gamemode_cache) - // I wish I didn't have to instance the game modes in order to look up - // their information, but it is the only way (at least that I know of). - var/datum/game_mode/M = new T() - - if(M.config_tag) - if(!(M.config_tag in modes)) // ensure each mode is added only once - GLOB.config_error_log << "Adding game mode [M.name] ([M.config_tag]) to configuration." - modes += M.config_tag - mode_names[M.config_tag] = M.name - probabilities[M.config_tag] = M.probability - if(M.votable) - votable_modes += M.config_tag - qdel(M) - votable_modes += "secret" - - Reload() - -/datum/configuration/proc/Reload() - load("config/config.txt") - load("config/game_options.txt","game_options") - loadsql("config/dbconfig.txt") - if (maprotation) - loadmaplist("config/maps.txt") - - // apply some settings from config.. - GLOB.abandon_allowed = respawn - -/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist - var/list/Lines = world.file2list(filename) - - for(var/t in Lines) - if(!t) - continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - var/value = null - - if(pos) - name = lowertext(copytext(t, 1, pos)) - value = copytext(t, pos + 1) - else - name = lowertext(t) - - if(!name) - continue - - if(type == "config") - switch(name) - if("hub") - hub = 1 - if("admin_legacy_system") - admin_legacy_system = 1 - if("ban_legacy_system") - ban_legacy_system = 1 - if("use_age_restriction_for_jobs") - use_age_restriction_for_jobs = 1 - if("use_account_age_for_jobs") - use_account_age_for_jobs = 1 - if("lobby_countdown") - lobby_countdown = text2num(value) - if("round_end_countdown") - round_end_countdown = text2num(value) - if("log_ooc") - log_ooc = 1 - if("log_access") - log_access = 1 - if("log_say") - log_say = 1 - if("log_admin") - log_admin = 1 - if("log_prayer") - log_prayer = 1 - if("log_law") - log_law = 1 - if("log_game") - log_game = 1 - if("log_vote") - log_vote = 1 - if("log_whisper") - log_whisper = 1 - if("log_attack") - log_attack = 1 - if("log_emote") - log_emote = 1 - if("log_adminchat") - log_adminchat = 1 - if("log_pda") - log_pda = 1 - if("log_twitter") - log_twitter = 1 - if("log_world_topic") - log_world_topic = 1 - if("allow_admin_ooccolor") - allow_admin_ooccolor = 1 - if("allow_vote_restart") - allow_vote_restart = 1 - if("allow_vote_mode") - allow_vote_mode = 1 - if("no_dead_vote") - vote_no_dead = 1 - if("default_no_vote") - vote_no_default = 1 - if("vote_delay") - vote_delay = text2num(value) - if("vote_period") - vote_period = text2num(value) - if("norespawn") - respawn = 0 - if("servername") - server_name = value - if("serversqlname") - server_sql_name = value - if("stationname") - station_name = value - if("hostedby") - hostedby = value - if("server") - server = value - if("banappeals") - banappeals = value - if("wikiurl") - wikiurl = value - if("forumurl") - forumurl = value - if("rulesurl") - rulesurl = value - if("githuburl") - githuburl = value - if("githubrepoid") - githubrepoid = value - if("guest_jobban") - guest_jobban = 1 - if("guest_ban") - GLOB.guests_allowed = 0 - if("usewhitelist") - usewhitelist = TRUE - if("allow_metadata") - allow_Metadata = 1 - if("inactivity_period") - inactivity_period = text2num(value) * 10 //documented as seconds in config.txt - if("afk_period") - afk_period = text2num(value) * 10 // ^^^ - if("kick_inactive") - kick_inactive = TRUE - if("load_jobs_from_txt") - load_jobs_from_txt = 1 - if("forbid_singulo_possession") - forbid_singulo_possession = 1 - if("popup_admin_pm") - popup_admin_pm = 1 - if("allow_holidays") - allow_holidays = 1 - if("useircbot") - useircbot = 1 - if("ticklag") - var/ticklag = text2num(value) - if(ticklag > 0) - fps = 10 / ticklag - if("tick_limit_mc_init") - tick_limit_mc_init = text2num(value) - if("fps") - fps = text2num(value) - if("automute_on") - automute_on = 1 - if("comms_key") - global.comms_key = value - if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins - global.comms_allowed = 1 - if("cross_server_address") - cross_address = value - if(value != "byond:\\address:port") - cross_allowed = 1 - if("cross_comms_name") - cross_name = value - if("panic_server_name") - panic_server_name = value - if("panic_server_address") - panic_address = value - if(value != "byond:\\address:port") - allow_panic_bunker_bounce = 1 - if("medal_hub_address") - global.medal_hub = value - if("medal_hub_password") - global.medal_pass = value - if("show_irc_name") - showircname = 1 - if("see_own_notes") - see_own_notes = 1 - if("soft_popcap") - soft_popcap = text2num(value) - if("hard_popcap") - hard_popcap = text2num(value) - if("extreme_popcap") - extreme_popcap = text2num(value) - if("soft_popcap_message") - soft_popcap_message = value - if("hard_popcap_message") - hard_popcap_message = value - if("extreme_popcap_message") - extreme_popcap_message = value - if("panic_bunker") - panic_bunker = 1 - if("notify_new_player_age") - notify_new_player_age = text2num(value) - if("notify_new_player_account_age") - notify_new_player_account_age = text2num(value) - if("irc_first_connection_alert") - irc_first_connection_alert = 1 - if("check_randomizer") - check_randomizer = 1 - if("ipintel_email") - if (value != "ch@nge.me") - ipintel_email = value - if("ipintel_rating_bad") - ipintel_rating_bad = text2num(value) - if("ipintel_domain") - ipintel_domain = value - if("ipintel_save_good") - ipintel_save_good = text2num(value) - if("ipintel_save_bad") - ipintel_save_bad = text2num(value) - if("aggressive_changelog") - aggressive_changelog = 1 - if("autoconvert_notes") - autoconvert_notes = 1 - if("allow_webclient") - allowwebclient = 1 - if("webclient_only_byond_members") - webclientmembersonly = 1 - if("announce_admin_logout") - announce_admin_logout = 1 - if("announce_admin_login") - announce_admin_login = 1 - if("maprotation") - maprotation = 1 - if("allow_map_voting") - allow_map_voting = text2num(value) - if("maprotationchancedelta") - maprotatechancedelta = text2num(value) - if("autoadmin") - autoadmin = 1 - if(value) - autoadmin_rank = ckeyEx(value) - if("generate_minimaps") - generate_minimaps = 1 - if("client_warn_version") - client_warn_version = text2num(value) - if("client_warn_message") - client_warn_message = value - if("client_error_version") - client_error_version = text2num(value) - if("client_error_message") - client_error_message = value - if("minute_topic_limit") - minutetopiclimit = text2num(value) - if("second_topic_limit") - secondtopiclimit = text2num(value) - if("error_cooldown") - error_cooldown = text2num(value) - if("error_limit") - error_limit = text2num(value) - if("error_silence_time") - error_silence_time = text2num(value) - if("error_msg_delay") - error_msg_delay = text2num(value) - else - GLOB.config_error_log << "Unknown setting in configuration: '[name]'" - - else if(type == "game_options") - switch(name) - if("damage_multiplier") - damage_multiplier = text2num(value) - if("revival_pod_plants") - revival_pod_plants = TRUE - if("revival_cloning") - revival_cloning = TRUE - if("revival_brain_life") - revival_brain_life = text2num(value) - if("rename_cyborg") - rename_cyborg = 1 - if("ooc_during_round") - ooc_during_round = 1 - if("emojis") - emojis = 1 - if("run_delay") - run_speed = text2num(value) - if("walk_delay") - walk_speed = text2num(value) - if("human_delay") - human_delay = text2num(value) - if("robot_delay") - robot_delay = text2num(value) - if("monkey_delay") - monkey_delay = text2num(value) - if("alien_delay") - alien_delay = text2num(value) - if("slime_delay") - slime_delay = text2num(value) - if("animal_delay") - animal_delay = text2num(value) - if("alert_red_upto") - alert_desc_red_upto = value - if("alert_red_downto") - alert_desc_red_downto = value - if("alert_blue_downto") - alert_desc_blue_downto = value - if("alert_blue_upto") - alert_desc_blue_upto = value - if("alert_green") - alert_desc_green = value - if("alert_delta") - alert_desc_delta = value - if("no_intercept_report") - intercept = 0 - if("assistants_have_maint_access") - jobs_have_maint_access |= ASSISTANTS_HAVE_MAINT_ACCESS - if("security_has_maint_access") - jobs_have_maint_access |= SECURITY_HAS_MAINT_ACCESS - if("everyone_has_maint_access") - jobs_have_maint_access |= EVERYONE_HAS_MAINT_ACCESS - if("sec_start_brig") - sec_start_brig = 1 - if("gateway_delay") - gateway_delay = text2num(value) - if("continuous") - var/mode_name = lowertext(value) - if(mode_name in modes) - continuous[mode_name] = 1 - else - GLOB.config_error_log << "Unknown continuous configuration definition: [mode_name]." - if("midround_antag") - var/mode_name = lowertext(value) - if(mode_name in modes) - midround_antag[mode_name] = 1 - else - GLOB.config_error_log << "Unknown midround antagonist configuration definition: [mode_name]." - if("midround_antag_time_check") - midround_antag_time_check = text2num(value) - if("midround_antag_life_check") - midround_antag_life_check = text2num(value) - if("min_pop") - var/pop_pos = findtext(value, " ") - var/mode_name = null - var/mode_value = null - - if(pop_pos) - mode_name = lowertext(copytext(value, 1, pop_pos)) - mode_value = copytext(value, pop_pos + 1) - if(mode_name in modes) - min_pop[mode_name] = text2num(mode_value) - else - GLOB.config_error_log << "Unknown minimum population configuration definition: [mode_name]." - else - GLOB.config_error_log << "Incorrect minimum population configuration definition: [mode_name] [mode_value]." - if("max_pop") - var/pop_pos = findtext(value, " ") - var/mode_name = null - var/mode_value = null - - if(pop_pos) - mode_name = lowertext(copytext(value, 1, pop_pos)) - mode_value = copytext(value, pop_pos + 1) - if(mode_name in modes) - max_pop[mode_name] = text2num(mode_value) - else - GLOB.config_error_log << "Unknown maximum population configuration definition: [mode_name]." - else - GLOB.config_error_log << "Incorrect maximum population configuration definition: [mode_name] [mode_value]." - if("shuttle_refuel_delay") - shuttle_refuel_delay = text2num(value) - if("show_game_type_odds") - show_game_type_odds = 1 - if("ghost_interaction") - ghost_interaction = 1 - if("traitor_scaling_coeff") - traitor_scaling_coeff = text2num(value) - if("changeling_scaling_coeff") - changeling_scaling_coeff = text2num(value) - if("security_scaling_coeff") - security_scaling_coeff = text2num(value) - if("abductor_scaling_coeff") - abductor_scaling_coeff = text2num(value) - if("traitor_objectives_amount") - traitor_objectives_amount = text2num(value) - if("probability") - var/prob_pos = findtext(value, " ") - var/prob_name = null - var/prob_value = null - - if(prob_pos) - prob_name = lowertext(copytext(value, 1, prob_pos)) - prob_value = copytext(value, prob_pos + 1) - if(prob_name in modes) - probabilities[prob_name] = text2num(prob_value) - else - GLOB.config_error_log << "Unknown game mode probability configuration definition: [prob_name]." - else - GLOB.config_error_log << "Incorrect probability configuration definition: [prob_name] [prob_value]." - - if("protect_roles_from_antagonist") - protect_roles_from_antagonist = 1 - if("protect_assistant_from_antagonist") - protect_assistant_from_antagonist = 1 - if("enforce_human_authority") - enforce_human_authority = 1 - if("allow_latejoin_antagonists") - allow_latejoin_antagonists = 1 - if("allow_random_events") - allow_random_events = 1 - - if("events_min_time_mul") - events_min_time_mul = text2num(value) - if("events_min_players_mul") - events_min_players_mul = text2num(value) - - if("minimal_access_threshold") - minimal_access_threshold = text2num(value) - if("jobs_have_minimal_access") - jobs_have_minimal_access = 1 - if("humans_need_surnames") - humans_need_surnames = 1 - if("force_random_names") - force_random_names = 1 - if("allow_ai") - allow_ai = 1 - if("disable_secborg") - forbid_secborg = 1 - if("disable_peaceborg") - forbid_peaceborg = 1 - if("silent_ai") - silent_ai = 1 - if("silent_borg") - silent_borg = 1 - if("sandbox_autoclose") - sandbox_autoclose = 1 - if("default_laws") - default_laws = text2num(value) - if("random_laws") - var/law_id = lowertext(value) - lawids += law_id - if("law_weight") - // Value is in the form "LAWID,NUMBER" - var/list/L = splittext(value, ",") - if(L.len != 2) - GLOB.config_error_log << "Invalid LAW_WEIGHT: " + t - continue - var/lawid = L[1] - var/weight = text2num(L[2]) - law_weights[lawid] = weight - - if("silicon_max_law_amount") - silicon_max_law_amount = text2num(value) - if("join_with_mutant_race") - mutant_races = 1 - if("roundstart_races") - var/race_id = lowertext(value) - for(var/species_id in GLOB.species_list) - if(species_id == race_id) - roundstart_races += GLOB.species_list[species_id] - GLOB.roundstart_species[species_id] = GLOB.species_list[species_id] - if("join_with_mutant_humans") - mutant_humans = 1 - if("assistant_cap") - assistant_cap = text2num(value) - if("starlight") - starlight = 1 - if("grey_assistants") - grey_assistants = 1 - if("lavaland_budget") - lavaland_budget = text2num(value) - if("space_budget") - space_budget = text2num(value) - if("no_summon_guns") - no_summon_guns = 1 - if("no_summon_magic") - no_summon_magic = 1 - if("no_summon_events") - no_summon_events = 1 - if("reactionary_explosions") - reactionary_explosions = 1 - if("bombcap") - var/BombCap = text2num(value) - if (!BombCap) - continue - if (BombCap < 4) - BombCap = 4 - - GLOB.MAX_EX_DEVESTATION_RANGE = round(BombCap/4) - GLOB.MAX_EX_HEAVY_RANGE = round(BombCap/2) - GLOB.MAX_EX_LIGHT_RANGE = BombCap - GLOB.MAX_EX_FLASH_RANGE = BombCap - GLOB.MAX_EX_FLAME_RANGE = BombCap - if("arrivals_shuttle_dock_window") - arrivals_shuttle_dock_window = max(PARALLAX_LOOP_TIME, text2num(value)) - if("arrivals_shuttle_require_safe_latejoin") - arrivals_shuttle_require_safe_latejoin = TRUE - if("mice_roundstart") - mice_roundstart = text2num(value) - if ("mentor_mobname_only") - mentors_mobname_only = 1 - if ("mentor_legacy_system") - mentor_legacy_system = 1 - else - GLOB.config_error_log << "Unknown setting in configuration: '[name]'" - - fps = round(fps) - if(fps <= 0) - fps = initial(fps) - - -/datum/configuration/proc/loadmaplist(filename) - var/list/Lines = world.file2list(filename) - - var/datum/map_config/currentmap = null - for(var/t in Lines) - if(!t) - continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/command = null - var/data = null - - if(pos) - command = lowertext(copytext(t, 1, pos)) - data = copytext(t, pos + 1) - else - command = lowertext(t) - - if(!command) - continue - - if (!currentmap && command != "map") - continue - - switch (command) - if ("map") - currentmap = new ("_maps/[data].json") - if(currentmap.defaulted) - log_world("Failed to load map config for [data]!") - if ("minplayers","minplayer") - currentmap.config_min_users = text2num(data) - if ("maxplayers","maxplayer") - currentmap.config_max_users = text2num(data) - if ("weight","voteweight") - currentmap.voteweight = text2num(data) - if ("default","defaultmap") - defaultmap = currentmap - if ("endmap") - maplist[currentmap.map_name] = currentmap - currentmap = null - else - GLOB.config_error_log << "Unknown command in map vote config: '[command]'" - - -/datum/configuration/proc/loadsql(filename) - var/list/Lines = world.file2list(filename) - for(var/t in Lines) - if(!t) - continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - var/value = null - - if(pos) - name = lowertext(copytext(t, 1, pos)) - value = copytext(t, pos + 1) - else - name = lowertext(t) - - if(!name) - continue - - switch(name) - if("sql_enabled") - sql_enabled = 1 - if("address") - global.sqladdress = value - if("port") - global.sqlport = value - if("feedback_database") - global.sqlfdbkdb = value - if("feedback_login") - global.sqlfdbklogin = value - if("feedback_password") - global.sqlfdbkpass = value - if("feedback_tableprefix") - global.sqlfdbktableprefix = value - else - GLOB.config_error_log << "Unknown setting in configuration: '[name]'" - -/datum/configuration/proc/pick_mode(mode_name) - // I wish I didn't have to instance the game modes in order to look up - // their information, but it is the only way (at least that I know of). - for(var/T in gamemode_cache) - var/datum/game_mode/M = new T() - if(M.config_tag && M.config_tag == mode_name) - return M - qdel(M) - return new /datum/game_mode/extended() - -/datum/configuration/proc/get_runnable_modes() - var/list/datum/game_mode/runnable_modes = new - for(var/T in gamemode_cache) - var/datum/game_mode/M = new T() - //to_chat(world, "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]") - if(!(M.config_tag in modes)) - qdel(M) - continue - if(probabilities[M.config_tag]<=0) - qdel(M) - continue - if(min_pop[M.config_tag]) - M.required_players = min_pop[M.config_tag] - if(max_pop[M.config_tag]) - M.maximum_players = max_pop[M.config_tag] - if(M.can_start()) - runnable_modes[M] = probabilities[M.config_tag] - //to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]") - return runnable_modes - -/datum/configuration/proc/get_runnable_midround_modes(crew) - var/list/datum/game_mode/runnable_modes = new - for(var/T in (gamemode_cache - SSticker.mode.type)) - var/datum/game_mode/M = new T() - if(!(M.config_tag in modes)) - qdel(M) - continue - if(probabilities[M.config_tag]<=0) - qdel(M) - continue - if(min_pop[M.config_tag]) - M.required_players = min_pop[M.config_tag] - if(max_pop[M.config_tag]) - M.maximum_players = max_pop[M.config_tag] - if(M.required_players <= crew) - if(M.maximum_players >= 0 && M.maximum_players < crew) - continue - runnable_modes[M] = probabilities[M.config_tag] - return runnable_modes - -/datum/configuration/proc/stat_entry() - if(!statclick) - statclick = new/obj/effect/statclick/debug(null, "Edit", src) - - stat("[name]:", statclick) +//Configuraton defines //TODO: Move all yes/no switches into bitflags + +//Used by jobs_have_maint_access +#define ASSISTANTS_HAVE_MAINT_ACCESS 1 +#define SECURITY_HAS_MAINT_ACCESS 2 +#define EVERYONE_HAS_MAINT_ACCESS 4 + +/datum/configuration/can_vv_get(var_name) + var/static/list/banned_gets = list("autoadmin", "autoadmin_rank") + if (var_name in banned_gets) + return FALSE + return ..() + +/datum/configuration/vv_edit_var(var_name, var_value) + var/static/list/banned_edits = list("cross_address", "cross_allowed", "autoadmin", "autoadmin_rank") + if(var_name in banned_edits) + return FALSE + return ..() + +/datum/configuration + var/name = "Configuration" // datum name + + var/autoadmin = 0 + var/autoadmin_rank = "Game Admin" + + var/server_name = null // server name (the name of the game window) + var/server_sql_name = null // short form server name used for the DB + var/station_name = null // station name (the name of the station in-game) + var/lobby_countdown = 120 // In between round countdown. + var/round_end_countdown = 25 // Post round murder death kill countdown + var/hub = 0 + + var/log_ooc = 0 // log OOC channel + var/log_access = 0 // log login/logout + var/log_say = 0 // log client say + var/log_admin = 0 // log admin actions + var/log_game = 0 // log game events + var/log_vote = 0 // log voting + var/log_whisper = 0 // log client whisper + var/log_prayer = 0 // log prayers + var/log_law = 0 // log lawchanges + var/log_emote = 0 // log emotes + var/log_attack = 0 // log attack messages + var/log_adminchat = 0 // log admin chat messages + var/log_pda = 0 // log pda messages + var/log_twitter = 0 // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. + var/log_world_topic = 0 // log all world.Topic() calls + var/sql_enabled = 0 // for sql switching + var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour + var/allow_vote_restart = 0 // allow votes to restart + var/allow_vote_mode = 0 // allow votes to change mode + var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) + var/vote_period = 600 // length of voting period (deciseconds, default 1 minute) + var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) + var/vote_no_dead = 0 // dead people can't vote (tbi) + var/del_new_on_log = 1 // del's new players if they log before they spawn in + var/allow_Metadata = 0 // Metadata is supported. + var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. + var/fps = 20 + var/allow_holidays = 0 //toggles whether holiday-specific content should be used + var/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling + + var/hostedby = null + var/respawn = 1 + var/guest_jobban = 1 + var/usewhitelist = 0 + var/inactivity_period = 3000 //time in ds until a player is considered inactive + var/afk_period = 6000 //time in ds until a player is considered afk and kickable + var/kick_inactive = FALSE //force disconnect for inactive players + var/load_jobs_from_txt = 0 + var/automute_on = 0 //enables automuting/spam prevention + var/minimal_access_threshold = 0 //If the number of players is larger than this threshold, minimal access will be turned on. + var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. + var/jobs_have_maint_access = 0 //Who gets maint access? See defines above. + var/sec_start_brig = 0 //makes sec start in brig or dept sec posts + + var/server + var/banappeals + var/wikiurl = "http://www.tgstation13.org/wiki" // Default wiki link. + var/forumurl = "http://tgstation13.org/phpBB/index.php" //default forums + var/rulesurl = "http://www.tgstation13.org/wiki/Rules" // default rules + var/githuburl = "https://www.github.com/tgstation/-tg-station" //default github + var/githubrepoid + + var/forbid_singulo_possession = 0 + var/useircbot = 0 + + var/check_randomizer = 0 + + var/allow_panic_bunker_bounce = 0 //Send new players somewhere else + var/panic_server_name = "somewhere else" + var/panic_address = "byond://" //Reconnect a player this linked server if this server isn't accepting new players + + //IP Intel vars + var/ipintel_email + var/ipintel_rating_bad = 1 + var/ipintel_save_good = 12 + var/ipintel_save_bad = 1 + var/ipintel_domain = "check.getipintel.net" + + var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt + var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt + var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/use_account_age_for_jobs = 0 //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. + var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt + + //Population cap vars + var/soft_popcap = 0 + var/hard_popcap = 0 + var/extreme_popcap = 0 + var/soft_popcap_message = "Be warned that the server is currently serving a high number of users, consider using alternative game servers." + var/hard_popcap_message = "The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers." + var/extreme_popcap_message = "The server is currently serving a high number of users, find alternative servers." + + //game_options.txt configs + var/force_random_names = 0 + var/list/mode_names = list() + var/list/modes = list() // allowed modes + var/list/votable_modes = list() // votable modes + var/list/probabilities = list() // relative probability of each mode + var/list/min_pop = list() // overrides for acceptible player counts in a mode + var/list/max_pop = list() + + var/humans_need_surnames = 0 + var/allow_ai = 0 // allow ai job + var/forbid_secborg = 0 // disallow secborg module to be chosen. + var/forbid_peaceborg = 0 + var/panic_bunker = 0 // prevents new people it hasn't seen before from connecting + var/notify_new_player_age = 0 // how long do we notify admins of a new player + var/notify_new_player_account_age = 0 // how long do we notify admins of a new byond account + var/irc_first_connection_alert = 0 // do we notify the irc channel when somebody is connecting for the first time? + + var/traitor_scaling_coeff = 6 //how much does the amount of players get divided by to determine traitors + var/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings + var/security_scaling_coeff = 8 //how much does the amount of players get divided by to determine open security officer positions + var/abductor_scaling_coeff = 15 //how many players per abductor team + + var/traitor_objectives_amount = 2 + var/protect_roles_from_antagonist = 0 //If security and such can be traitor/cult/other + var/protect_assistant_from_antagonist = 0 //If assistants can be traitor/cult/other + var/enforce_human_authority = 0 //If non-human species are barred from joining as a head of staff + var/allow_latejoin_antagonists = 0 // If late-joining players can be traitor/changeling + var/list/continuous = list() // which roundtypes continue if all antagonists die + var/list/midround_antag = list() // which roundtypes use the midround antagonist system + var/midround_antag_time_check = 60 // How late (in minutes) you want the midround antag system to stay on, setting this to 0 will disable the system + var/midround_antag_life_check = 0.7 // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist + var/shuttle_refuel_delay = 12000 + var/show_game_type_odds = 0 //if set this allows players to see the odds of each roundtype on the get revision screen + var/mutant_races = 0 //players can choose their mutant race before joining the game + var/list/roundstart_races = list() //races you can play as from the get go. If left undefined the game's roundstart var for species is used + var/mutant_humans = 0 //players can pick mutant bodyparts for humans before joining the game + + var/no_summon_guns //No + var/no_summon_magic //Fun + var/no_summon_events //Allowed + + var/intercept = 1 //Whether or not to send a communications intercept report roundstart. This may be overriden by gamemodes. + var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." + var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." + var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." + var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." + var/alert_desc_red_downto = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." + var/alert_desc_delta = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + + var/revival_pod_plants = FALSE + var/revival_cloning = FALSE + var/revival_brain_life = -1 + + var/rename_cyborg = 0 + var/ooc_during_round = 0 + var/emojis = 0 + + //Used for modifying movement speed for mobs. + //Unversal modifiers + var/run_speed = 0 + var/walk_speed = 0 + + //Mob specific modifiers. NOTE: These will affect different mob types in different ways + var/human_delay = 0 + var/robot_delay = 0 + var/monkey_delay = 0 + var/alien_delay = 0 + var/slime_delay = 0 + var/animal_delay = 0 + + var/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. + var/ghost_interaction = 0 + + var/silent_ai = 0 + var/silent_borg = 0 + + var/damage_multiplier = 1 //Modifier for damage to all mobs. Impacts healing as well. + + var/allowwebclient = 0 + var/webclientmembersonly = 0 + + var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff + + var/default_laws = 0 //Controls what laws the AI spawns with. + var/silicon_max_law_amount = 12 + var/list/lawids = list() + + var/list/law_weights = list() + + var/assistant_cap = -1 + + var/starlight = 0 + var/generate_minimaps = 0 + var/grey_assistants = 0 + + var/lavaland_budget = 60 + var/space_budget = 16 + + var/aggressive_changelog = 0 + + var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors + + var/autoconvert_notes = 0 //if all connecting player's notes should attempt to be converted to the database + + var/announce_admin_logout = 0 + var/announce_admin_login = 0 + + var/list/datum/map_config/maplist = list() + var/datum/map_config/defaultmap = null + var/maprotation = 1 + var/maprotatechancedelta = 0.75 + var/allow_map_voting = TRUE + + // Enables random events mid-round when set to 1 + var/allow_random_events = 0 + + // Multipliers for random events minimal starting time and minimal players amounts + var/events_min_time_mul = 1 + var/events_min_players_mul = 1 + + // The object used for the clickable stat() button. + var/obj/effect/statclick/statclick + + var/client_warn_version = 0 + var/client_warn_message = "Your version of byond may have issues or be blocked from accessing this server in the future." + var/client_error_version = 0 + var/client_error_message = "Your version of byond is too old, may have issues, and is blocked from accessing this server." + + var/cross_name = "Other server" + var/cross_address = "byond://" + var/cross_allowed = FALSE + var/showircname = 0 + + var/list/gamemode_cache = null + + var/minutetopiclimit + var/secondtopiclimit + + var/error_cooldown = 600 // The "cooldown" time for each occurrence of a unique error + var/error_limit = 50 // How many occurrences before the next will silence them + var/error_silence_time = 6000 // How long a unique error will be silenced for + var/error_msg_delay = 50 // How long to wait between messaging admins about occurrences of a unique error + + var/arrivals_shuttle_dock_window = 55 //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station + var/arrivals_shuttle_require_safe_latejoin = FALSE //Require the arrivals shuttle to be operational in order for latejoiners to join + + var/mice_roundstart = 10 // how many wire chewing rodents spawn at roundstart. + +/datum/configuration/New() + gamemode_cache = typecacheof(/datum/game_mode,TRUE) + for(var/T in gamemode_cache) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + var/datum/game_mode/M = new T() + + if(M.config_tag) + if(!(M.config_tag in modes)) // ensure each mode is added only once + GLOB.config_error_log << "Adding game mode [M.name] ([M.config_tag]) to configuration." + modes += M.config_tag + mode_names[M.config_tag] = M.name + probabilities[M.config_tag] = M.probability + if(M.votable) + votable_modes += M.config_tag + qdel(M) + votable_modes += "secret" + + Reload() + +/datum/configuration/proc/Reload() + load("config/config.txt") + load("config/game_options.txt","game_options") + loadsql("config/dbconfig.txt") + if (maprotation) + loadmaplist("config/maps.txt") + + // apply some settings from config.. + GLOB.abandon_allowed = respawn + +/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist + var/list/Lines = world.file2list(filename) + + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if(pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if(!name) + continue + + if(type == "config") + switch(name) + if("hub") + hub = 1 + if("admin_legacy_system") + admin_legacy_system = 1 + if("ban_legacy_system") + ban_legacy_system = 1 + if("use_age_restriction_for_jobs") + use_age_restriction_for_jobs = 1 + if("use_account_age_for_jobs") + use_account_age_for_jobs = 1 + if("lobby_countdown") + lobby_countdown = text2num(value) + if("round_end_countdown") + round_end_countdown = text2num(value) + if("log_ooc") + log_ooc = 1 + if("log_access") + log_access = 1 + if("log_say") + log_say = 1 + if("log_admin") + log_admin = 1 + if("log_prayer") + log_prayer = 1 + if("log_law") + log_law = 1 + if("log_game") + log_game = 1 + if("log_vote") + log_vote = 1 + if("log_whisper") + log_whisper = 1 + if("log_attack") + log_attack = 1 + if("log_emote") + log_emote = 1 + if("log_adminchat") + log_adminchat = 1 + if("log_pda") + log_pda = 1 + if("log_twitter") + log_twitter = 1 + if("log_world_topic") + log_world_topic = 1 + if("allow_admin_ooccolor") + allow_admin_ooccolor = 1 + if("allow_vote_restart") + allow_vote_restart = 1 + if("allow_vote_mode") + allow_vote_mode = 1 + if("no_dead_vote") + vote_no_dead = 1 + if("default_no_vote") + vote_no_default = 1 + if("vote_delay") + vote_delay = text2num(value) + if("vote_period") + vote_period = text2num(value) + if("norespawn") + respawn = 0 + if("servername") + server_name = value + if("serversqlname") + server_sql_name = value + if("stationname") + station_name = value + if("hostedby") + hostedby = value + if("server") + server = value + if("banappeals") + banappeals = value + if("wikiurl") + wikiurl = value + if("forumurl") + forumurl = value + if("rulesurl") + rulesurl = value + if("githuburl") + githuburl = value + if("githubrepoid") + githubrepoid = value + if("guest_jobban") + guest_jobban = 1 + if("guest_ban") + GLOB.guests_allowed = 0 + if("usewhitelist") + usewhitelist = TRUE + if("allow_metadata") + allow_Metadata = 1 + if("inactivity_period") + inactivity_period = text2num(value) * 10 //documented as seconds in config.txt + if("afk_period") + afk_period = text2num(value) * 10 // ^^^ + if("kick_inactive") + kick_inactive = TRUE + if("load_jobs_from_txt") + load_jobs_from_txt = 1 + if("forbid_singulo_possession") + forbid_singulo_possession = 1 + if("popup_admin_pm") + popup_admin_pm = 1 + if("allow_holidays") + allow_holidays = 1 + if("useircbot") + useircbot = 1 + if("ticklag") + var/ticklag = text2num(value) + if(ticklag > 0) + fps = 10 / ticklag + if("tick_limit_mc_init") + tick_limit_mc_init = text2num(value) + if("fps") + fps = text2num(value) + if("automute_on") + automute_on = 1 + if("comms_key") + global.comms_key = value + if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins + global.comms_allowed = 1 + if("cross_server_address") + cross_address = value + if(value != "byond:\\address:port") + cross_allowed = 1 + if("cross_comms_name") + cross_name = value + if("panic_server_name") + panic_server_name = value + if("panic_server_address") + panic_address = value + if(value != "byond:\\address:port") + allow_panic_bunker_bounce = 1 + if("medal_hub_address") + global.medal_hub = value + if("medal_hub_password") + global.medal_pass = value + if("show_irc_name") + showircname = 1 + if("see_own_notes") + see_own_notes = 1 + if("soft_popcap") + soft_popcap = text2num(value) + if("hard_popcap") + hard_popcap = text2num(value) + if("extreme_popcap") + extreme_popcap = text2num(value) + if("soft_popcap_message") + soft_popcap_message = value + if("hard_popcap_message") + hard_popcap_message = value + if("extreme_popcap_message") + extreme_popcap_message = value + if("panic_bunker") + panic_bunker = 1 + if("notify_new_player_age") + notify_new_player_age = text2num(value) + if("notify_new_player_account_age") + notify_new_player_account_age = text2num(value) + if("irc_first_connection_alert") + irc_first_connection_alert = 1 + if("check_randomizer") + check_randomizer = 1 + if("ipintel_email") + if (value != "ch@nge.me") + ipintel_email = value + if("ipintel_rating_bad") + ipintel_rating_bad = text2num(value) + if("ipintel_domain") + ipintel_domain = value + if("ipintel_save_good") + ipintel_save_good = text2num(value) + if("ipintel_save_bad") + ipintel_save_bad = text2num(value) + if("aggressive_changelog") + aggressive_changelog = 1 + if("autoconvert_notes") + autoconvert_notes = 1 + if("allow_webclient") + allowwebclient = 1 + if("webclient_only_byond_members") + webclientmembersonly = 1 + if("announce_admin_logout") + announce_admin_logout = 1 + if("announce_admin_login") + announce_admin_login = 1 + if("maprotation") + maprotation = 1 + if("allow_map_voting") + allow_map_voting = text2num(value) + if("maprotationchancedelta") + maprotatechancedelta = text2num(value) + if("autoadmin") + autoadmin = 1 + if(value) + autoadmin_rank = ckeyEx(value) + if("generate_minimaps") + generate_minimaps = 1 + if("client_warn_version") + client_warn_version = text2num(value) + if("client_warn_message") + client_warn_message = value + if("client_error_version") + client_error_version = text2num(value) + if("client_error_message") + client_error_message = value + if("minute_topic_limit") + minutetopiclimit = text2num(value) + if("second_topic_limit") + secondtopiclimit = text2num(value) + if("error_cooldown") + error_cooldown = text2num(value) + if("error_limit") + error_limit = text2num(value) + if("error_silence_time") + error_silence_time = text2num(value) + if("error_msg_delay") + error_msg_delay = text2num(value) + else + GLOB.config_error_log << "Unknown setting in configuration: '[name]'" + + else if(type == "game_options") + switch(name) + if("damage_multiplier") + damage_multiplier = text2num(value) + if("revival_pod_plants") + revival_pod_plants = TRUE + if("revival_cloning") + revival_cloning = TRUE + if("revival_brain_life") + revival_brain_life = text2num(value) + if("rename_cyborg") + rename_cyborg = 1 + if("ooc_during_round") + ooc_during_round = 1 + if("emojis") + emojis = 1 + if("run_delay") + run_speed = text2num(value) + if("walk_delay") + walk_speed = text2num(value) + if("human_delay") + human_delay = text2num(value) + if("robot_delay") + robot_delay = text2num(value) + if("monkey_delay") + monkey_delay = text2num(value) + if("alien_delay") + alien_delay = text2num(value) + if("slime_delay") + slime_delay = text2num(value) + if("animal_delay") + animal_delay = text2num(value) + if("alert_red_upto") + alert_desc_red_upto = value + if("alert_red_downto") + alert_desc_red_downto = value + if("alert_blue_downto") + alert_desc_blue_downto = value + if("alert_blue_upto") + alert_desc_blue_upto = value + if("alert_green") + alert_desc_green = value + if("alert_delta") + alert_desc_delta = value + if("no_intercept_report") + intercept = 0 + if("assistants_have_maint_access") + jobs_have_maint_access |= ASSISTANTS_HAVE_MAINT_ACCESS + if("security_has_maint_access") + jobs_have_maint_access |= SECURITY_HAS_MAINT_ACCESS + if("everyone_has_maint_access") + jobs_have_maint_access |= EVERYONE_HAS_MAINT_ACCESS + if("sec_start_brig") + sec_start_brig = 1 + if("gateway_delay") + gateway_delay = text2num(value) + if("continuous") + var/mode_name = lowertext(value) + if(mode_name in modes) + continuous[mode_name] = 1 + else + GLOB.config_error_log << "Unknown continuous configuration definition: [mode_name]." + if("midround_antag") + var/mode_name = lowertext(value) + if(mode_name in modes) + midround_antag[mode_name] = 1 + else + GLOB.config_error_log << "Unknown midround antagonist configuration definition: [mode_name]." + if("midround_antag_time_check") + midround_antag_time_check = text2num(value) + if("midround_antag_life_check") + midround_antag_life_check = text2num(value) + if("min_pop") + var/pop_pos = findtext(value, " ") + var/mode_name = null + var/mode_value = null + + if(pop_pos) + mode_name = lowertext(copytext(value, 1, pop_pos)) + mode_value = copytext(value, pop_pos + 1) + if(mode_name in modes) + min_pop[mode_name] = text2num(mode_value) + else + GLOB.config_error_log << "Unknown minimum population configuration definition: [mode_name]." + else + GLOB.config_error_log << "Incorrect minimum population configuration definition: [mode_name] [mode_value]." + if("max_pop") + var/pop_pos = findtext(value, " ") + var/mode_name = null + var/mode_value = null + + if(pop_pos) + mode_name = lowertext(copytext(value, 1, pop_pos)) + mode_value = copytext(value, pop_pos + 1) + if(mode_name in modes) + max_pop[mode_name] = text2num(mode_value) + else + GLOB.config_error_log << "Unknown maximum population configuration definition: [mode_name]." + else + GLOB.config_error_log << "Incorrect maximum population configuration definition: [mode_name] [mode_value]." + if("shuttle_refuel_delay") + shuttle_refuel_delay = text2num(value) + if("show_game_type_odds") + show_game_type_odds = 1 + if("ghost_interaction") + ghost_interaction = 1 + if("traitor_scaling_coeff") + traitor_scaling_coeff = text2num(value) + if("changeling_scaling_coeff") + changeling_scaling_coeff = text2num(value) + if("security_scaling_coeff") + security_scaling_coeff = text2num(value) + if("abductor_scaling_coeff") + abductor_scaling_coeff = text2num(value) + if("traitor_objectives_amount") + traitor_objectives_amount = text2num(value) + if("probability") + var/prob_pos = findtext(value, " ") + var/prob_name = null + var/prob_value = null + + if(prob_pos) + prob_name = lowertext(copytext(value, 1, prob_pos)) + prob_value = copytext(value, prob_pos + 1) + if(prob_name in modes) + probabilities[prob_name] = text2num(prob_value) + else + GLOB.config_error_log << "Unknown game mode probability configuration definition: [prob_name]." + else + GLOB.config_error_log << "Incorrect probability configuration definition: [prob_name] [prob_value]." + + if("protect_roles_from_antagonist") + protect_roles_from_antagonist = 1 + if("protect_assistant_from_antagonist") + protect_assistant_from_antagonist = 1 + if("enforce_human_authority") + enforce_human_authority = 1 + if("allow_latejoin_antagonists") + allow_latejoin_antagonists = 1 + if("allow_random_events") + allow_random_events = 1 + + if("events_min_time_mul") + events_min_time_mul = text2num(value) + if("events_min_players_mul") + events_min_players_mul = text2num(value) + + if("minimal_access_threshold") + minimal_access_threshold = text2num(value) + if("jobs_have_minimal_access") + jobs_have_minimal_access = 1 + if("humans_need_surnames") + humans_need_surnames = 1 + if("force_random_names") + force_random_names = 1 + if("allow_ai") + allow_ai = 1 + if("disable_secborg") + forbid_secborg = 1 + if("disable_peaceborg") + forbid_peaceborg = 1 + if("silent_ai") + silent_ai = 1 + if("silent_borg") + silent_borg = 1 + if("sandbox_autoclose") + sandbox_autoclose = 1 + if("default_laws") + default_laws = text2num(value) + if("random_laws") + var/law_id = lowertext(value) + lawids += law_id + if("law_weight") + // Value is in the form "LAWID,NUMBER" + var/list/L = splittext(value, ",") + if(L.len != 2) + GLOB.config_error_log << "Invalid LAW_WEIGHT: " + t + continue + var/lawid = L[1] + var/weight = text2num(L[2]) + law_weights[lawid] = weight + + if("silicon_max_law_amount") + silicon_max_law_amount = text2num(value) + if("join_with_mutant_race") + mutant_races = 1 + if("roundstart_races") + var/race_id = lowertext(value) + for(var/species_id in GLOB.species_list) + if(species_id == race_id) + roundstart_races += GLOB.species_list[species_id] + GLOB.roundstart_species[species_id] = GLOB.species_list[species_id] + if("join_with_mutant_humans") + mutant_humans = 1 + if("assistant_cap") + assistant_cap = text2num(value) + if("starlight") + starlight = 1 + if("grey_assistants") + grey_assistants = 1 + if("lavaland_budget") + lavaland_budget = text2num(value) + if("space_budget") + space_budget = text2num(value) + if("no_summon_guns") + no_summon_guns = 1 + if("no_summon_magic") + no_summon_magic = 1 + if("no_summon_events") + no_summon_events = 1 + if("reactionary_explosions") + reactionary_explosions = 1 + if("bombcap") + var/BombCap = text2num(value) + if (!BombCap) + continue + if (BombCap < 4) + BombCap = 4 + + GLOB.MAX_EX_DEVESTATION_RANGE = round(BombCap/4) + GLOB.MAX_EX_HEAVY_RANGE = round(BombCap/2) + GLOB.MAX_EX_LIGHT_RANGE = BombCap + GLOB.MAX_EX_FLASH_RANGE = BombCap + GLOB.MAX_EX_FLAME_RANGE = BombCap + if("arrivals_shuttle_dock_window") + arrivals_shuttle_dock_window = max(PARALLAX_LOOP_TIME, text2num(value)) + if("arrivals_shuttle_require_safe_latejoin") + arrivals_shuttle_require_safe_latejoin = TRUE + if("mice_roundstart") + mice_roundstart = text2num(value) + if ("mentor_mobname_only") + mentors_mobname_only = 1 + if ("mentor_legacy_system") + mentor_legacy_system = 1 + else + GLOB.config_error_log << "Unknown setting in configuration: '[name]'" + + fps = round(fps) + if(fps <= 0) + fps = initial(fps) + + +/datum/configuration/proc/loadmaplist(filename) + var/list/Lines = world.file2list(filename) + + var/datum/map_config/currentmap = null + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/command = null + var/data = null + + if(pos) + command = lowertext(copytext(t, 1, pos)) + data = copytext(t, pos + 1) + else + command = lowertext(t) + + if(!command) + continue + + if (!currentmap && command != "map") + continue + + switch (command) + if ("map") + currentmap = new ("_maps/[data].json") + if(currentmap.defaulted) + log_world("Failed to load map config for [data]!") + if ("minplayers","minplayer") + currentmap.config_min_users = text2num(data) + if ("maxplayers","maxplayer") + currentmap.config_max_users = text2num(data) + if ("weight","voteweight") + currentmap.voteweight = text2num(data) + if ("default","defaultmap") + defaultmap = currentmap + if ("endmap") + maplist[currentmap.map_name] = currentmap + currentmap = null + else + GLOB.config_error_log << "Unknown command in map vote config: '[command]'" + + +/datum/configuration/proc/loadsql(filename) + var/list/Lines = world.file2list(filename) + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if(pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if(!name) + continue + + switch(name) + if("sql_enabled") + sql_enabled = 1 + if("address") + global.sqladdress = value + if("port") + global.sqlport = value + if("feedback_database") + global.sqlfdbkdb = value + if("feedback_login") + global.sqlfdbklogin = value + if("feedback_password") + global.sqlfdbkpass = value + if("feedback_tableprefix") + global.sqlfdbktableprefix = value + else + GLOB.config_error_log << "Unknown setting in configuration: '[name]'" + +/datum/configuration/proc/pick_mode(mode_name) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + for(var/T in gamemode_cache) + var/datum/game_mode/M = new T() + if(M.config_tag && M.config_tag == mode_name) + return M + qdel(M) + return new /datum/game_mode/extended() + +/datum/configuration/proc/get_runnable_modes() + var/list/datum/game_mode/runnable_modes = new + for(var/T in gamemode_cache) + var/datum/game_mode/M = new T() + //to_chat(world, "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]") + if(!(M.config_tag in modes)) + qdel(M) + continue + if(probabilities[M.config_tag]<=0) + qdel(M) + continue + if(min_pop[M.config_tag]) + M.required_players = min_pop[M.config_tag] + if(max_pop[M.config_tag]) + M.maximum_players = max_pop[M.config_tag] + if(M.can_start()) + runnable_modes[M] = probabilities[M.config_tag] + //to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]") + return runnable_modes + +/datum/configuration/proc/get_runnable_midround_modes(crew) + var/list/datum/game_mode/runnable_modes = new + for(var/T in (gamemode_cache - SSticker.mode.type)) + var/datum/game_mode/M = new T() + if(!(M.config_tag in modes)) + qdel(M) + continue + if(probabilities[M.config_tag]<=0) + qdel(M) + continue + if(min_pop[M.config_tag]) + M.required_players = min_pop[M.config_tag] + if(max_pop[M.config_tag]) + M.maximum_players = max_pop[M.config_tag] + if(M.required_players <= crew) + if(M.maximum_players >= 0 && M.maximum_players < crew) + continue + runnable_modes[M] = probabilities[M.config_tag] + return runnable_modes + +/datum/configuration/proc/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug(null, "Edit", src) + + stat("[name]:", statclick) diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index bed923ffe2..a0ca6a7b67 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -9,7 +9,6 @@ SUBSYSTEM_DEF(server_maint) var/list/currentrun /datum/controller/subsystem/server_maint/Initialize(timeofday) - reload_custom_roundstart_items_list() if (config.hub) world.visibility = 1 ..() diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm index 3012abec3e..53e6c0cee1 100644 --- a/code/controllers/subsystem/spacedrift.dm +++ b/code/controllers/subsystem/spacedrift.dm @@ -3,7 +3,7 @@ SUBSYSTEM_DEF(spacedrift) priority = 30 wait = 5 flags = SS_NO_INIT|SS_KEEP_TIMING - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME var/list/currentrun = list() var/list/processing = list() diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index da749b603a..fd2c58fc80 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -142,25 +142,25 @@ /obj/item/weapon/antag_spawner/nuke_ops/proc/check_usability(mob/user) if(used) to_chat(user, "[src] is out of power!") - return 0 + return FALSE if(!(user.mind in SSticker.mode.syndicates)) to_chat(user, "AUTHENTICATION FAILURE. ACCESS DENIED.") - return 0 + return FALSE if(user.z != ZLEVEL_CENTCOM) to_chat(user, "[src] is out of range! It can only be used at your base!") - return 0 - return 1 + return FALSE + return TRUE /obj/item/weapon/antag_spawner/nuke_ops/attack_self(mob/user) if(!(check_usability(user))) return to_chat(user, "You activate [src] and wait for confirmation.") - var/list/nuke_candidates = pollCandidatesForMob("Do you want to play as a syndicate [borg_to_spawn ? "[lowertext(borg_to_spawn)] cyborg":"operative"]?", ROLE_OPERATIVE, null, ROLE_OPERATIVE, 150, POLL_IGNORE_SYNDICATE, src) + var/list/nuke_candidates = pollGhostCandidates("Do you want to play as a syndicate [borg_to_spawn ? "[lowertext(borg_to_spawn)] cyborg":"operative"]?", ROLE_OPERATIVE, null, ROLE_OPERATIVE, 150, POLL_IGNORE_SYNDICATE) if(nuke_candidates.len) if(!(check_usability(user))) return - used = 1 + used = TRUE var/mob/dead/observer/theghost = pick(nuke_candidates) spawn_antag(theghost.client, get_turf(src), "syndieborg") do_sparks(4, TRUE, src) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 2d21b1aaf5..9e367d43b1 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,502 +1,502 @@ -/obj/machinery/computer/cloning - name = "cloning console" - desc = "Used to clone people and manage DNA." - icon_screen = "dna" - icon_keyboard = "med_key" - circuit = /obj/item/weapon/circuitboard/computer/cloning - req_access = list(GLOB.access_heads) //Only used for record deletion right now. - var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. - var/list/pods //Linked cloning pods - var/temp = "Inactive" - var/scantemp_ckey - var/scantemp = "Ready to Scan" - var/menu = 1 //Which menu screen to display - var/list/records = list() - var/datum/data/record/active_record = null - var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything. - var/loading = 0 // Nice loading text - var/autoprocess = 0 - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/cloning/Initialize() - ..() - updatemodules(TRUE) - -/obj/machinery/computer/cloning/Destroy() - if(pods) - for(var/P in pods) - DetachCloner(P) - pods = null - return ..() - -/obj/machinery/computer/cloning/proc/GetAvailablePod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && pod.clonemind == mind) - return null - if(pod.is_operational() && !(pod.occupant || pod.mess)) - return pod - -/obj/machinery/computer/cloning/proc/HasEfficientPod() - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.is_operational() && pod.efficiency > 5) - return TRUE - -/obj/machinery/computer/cloning/proc/GetAvailableEfficientPod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && pod.clonemind == mind) - return pod - else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) - . = pod - -/obj/machinery/computer/cloning/process() - if(!(scanner && LAZYLEN(pods) && autoprocess)) - return - - if(scanner.occupant && scanner.scan_level > 2) - scan_occupant(scanner.occupant) - - for(var/datum/data/record/R in records) - var/obj/machinery/clonepod/pod = GetAvailableEfficientPod(R.fields["mind"]) - - if(!pod) - return - - if(pod.occupant) - continue //how though? - - if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"])) - records -= R - -/obj/machinery/computer/cloning/proc/updatemodules(findfirstcloner) - src.scanner = findscanner() - if(findfirstcloner && !LAZYLEN(pods)) - findcloner() - -/obj/machinery/computer/cloning/proc/findscanner() - var/obj/machinery/dna_scannernew/scannerf = null - - // Loop through every direction - for(dir in list(NORTH,EAST,SOUTH,WEST)) - - // Try to find a scanner in that direction - scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) - - // If found and operational, return the scanner - if (!isnull(scannerf) && scannerf.is_operational()) - return scannerf - - // If no scanner was found, it will return null - return null - -/obj/machinery/computer/cloning/proc/findcloner() - var/obj/machinery/clonepod/podf = null - - for(dir in list(NORTH,EAST,SOUTH,WEST)) - - podf = locate(/obj/machinery/clonepod, get_step(src, dir)) - - if (!isnull(podf) && podf.is_operational()) - AttachCloner(podf) - -/obj/machinery/computer/cloning/proc/AttachCloner(obj/machinery/clonepod/pod) - if(!pod.connected) - pod.connected = src - LAZYADD(pods, pod) - -/obj/machinery/computer/cloning/proc/DetachCloner(obj/machinery/clonepod/pod) - pod.connected = null - LAZYREMOVE(pods, pod) - -/obj/machinery/computer/cloning/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES - if (!src.diskette) - if(!user.drop_item()) - return - W.loc = src - src.diskette = W - to_chat(user, "You insert [W].") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) - src.updateUsrDialog() - else if(istype(W,/obj/item/device/multitool)) - var/obj/item/device/multitool/P = W - - if(istype(P.buffer, /obj/machinery/clonepod)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/clonepod/pod = P.buffer - if(pod.connected) - pod.connected.DetachCloner(pod) - AttachCloner(pod) - else - P.buffer = src - to_chat(user, "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-") - return - else - return ..() - -/obj/machinery/computer/cloning/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/cloning/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - if(..()) - return - - updatemodules(TRUE) - - var/dat = "" - dat += "Refresh" - - if(scanner && HasEfficientPod() && scanner.scan_level > 2) - if(!autoprocess) - dat += "Autoprocess" - else - dat += "Stop autoprocess" - else - dat += "Autoprocess" - dat += "

Cloning Pod Status

" - dat += "
[temp] 
" - - switch(src.menu) - if(1) - // Modules - if (isnull(src.scanner) || !LAZYLEN(pods)) - dat += "

Modules

" - //dat += "Reload Modules" - if (isnull(src.scanner)) - dat += "ERROR: No Scanner detected!
" - if (!LAZYLEN(pods)) - dat += "ERROR: No Pod detected
" - - // Scanner - if (!isnull(src.scanner)) - var/mob/living/scanner_occupant = get_mob_or_brainmob(scanner.occupant) - - dat += "

Scanner Functions

" - - dat += "
" - if(!scanner_occupant) - dat += "Scanner Unoccupied" - else if(loading) - dat += "[scanner_occupant] => Scanning..." - else - if(scanner_occupant.ckey != scantemp_ckey) - scantemp = "Ready to Scan" - scantemp_ckey = scanner_occupant.ckey - dat += "[scanner_occupant] => [scantemp]" - dat += "
" - - if(scanner_occupant) - dat += "Start Scan" - dat += "
[src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" - else - dat += "Start Scan" - - // Database - dat += "

Database Functions

" - if (src.records.len && src.records.len > 0) - dat += "View Records ([src.records.len])
" - else - dat += "View Records (0)
" - if (src.diskette) - dat += "Eject Disk
" - - - - if(2) - dat += "

Current records

" - dat += "<< Back

" - for(var/datum/data/record/R in records) - dat += "

[R.fields["name"]]

Scan ID [R.fields["id"]] View Record" - if(3) - dat += "

Selected Record

" - dat += "<< Back
" - - if (!src.active_record) - dat += "Record not found." - else - dat += "

[src.active_record.fields["name"]]

" - dat += "Scan ID [src.active_record.fields["id"]] Clone
" - - var/obj/item/weapon/implant/health/H = locate(src.active_record.fields["imp"]) - - if ((H) && (istype(H))) - dat += "Health Implant Data:
[H.sensehealth()]

" - else - dat += "Unable to locate Health Implant.

" - - dat += "Unique Identifier:
[src.active_record.fields["UI"]]
" - dat += "Structural Enzymes:
[src.active_record.fields["SE"]]
" - - if(diskette && diskette.fields) - dat += "
" - dat += "

Inserted Disk

" - dat += "Contents: " - var/list/L = list() - if(diskette.fields["UI"]) - L += "Unique Identifier" - if(diskette.fields["UE"] && diskette.fields["name"] && diskette.fields["blood_type"]) - L += "Unique Enzymes" - if(diskette.fields["SE"]) - L += "Structural Enzymes" - dat += english_list(L, "Empty", " + ", " + ") - dat += "
Load from Disk" - - dat += "
Save to Disk" - dat += "
" - - dat += "Delete Record" - - if(4) - if (!src.active_record) - src.menu = 2 - dat = "[src.temp]
" - dat += "

Confirm Record Deletion

" - - dat += "Scan card to confirm.
" - dat += "Cancel" - - - var/datum/browser/popup = new(user, "cloning", "Cloning System Control") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/cloning/Topic(href, href_list) - if(..()) - return - - if(loading) - return - - if(href_list["task"]) - switch(href_list["task"]) - if("autoprocess") - autoprocess = 1 - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - if("stopautoprocess") - autoprocess = 0 - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - - else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) - scantemp = "" - - loading = 1 - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - say("Initiating scan...") - - spawn(20) - src.scan_occupant(scanner.occupant) - - loading = 0 - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - - //No locking an open scanner. - else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) - if ((!scanner.locked) && (scanner.occupant)) - scanner.locked = 1 - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else - scanner.locked = 0 - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - else if(href_list["view_rec"]) - playsound(src, "terminal_type", 25, 0) - src.active_record = find_record("id", href_list["view_rec"], records) - if(active_record) - if(!active_record.fields["ckey"]) - records -= active_record - active_record = null - src.temp = "Record Corrupt" - else - src.menu = 3 - else - src.temp = "Record missing." - - else if (href_list["del_rec"]) - if ((!src.active_record) || (src.menu < 3)) - return - if (src.menu == 3) //If we are viewing a record, confirm deletion - src.temp = "Delete record?" - src.menu = 4 - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - - else if (src.menu == 4) - var/obj/item/weapon/card/id/C = usr.get_active_held_item() - if (istype(C)||istype(C, /obj/item/device/pda)) - if(src.check_access(C)) - src.temp = "[src.active_record.fields["name"]] => Record deleted." - src.records.Remove(active_record) - active_record = null - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - src.menu = 2 - else - src.temp = "Access Denied." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - - else if (href_list["disk"]) //Load or eject. - switch(href_list["disk"]) - if("load") - if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields) - src.temp = "Load error." - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if (!src.active_record) - src.temp = "Record error." - src.menu = 1 - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - - for(var/key in diskette.fields) - src.active_record.fields[key] = diskette.fields[key] - src.temp = "Load successful." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - if("eject") - if(src.diskette) - src.diskette.loc = src.loc - src.diskette = null - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) - if("save") - if(!diskette || diskette.read_only || !active_record || !active_record.fields) - src.temp = "Save error." - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - - diskette.fields = active_record.fields.Copy() - diskette.name = "data disk - '[src.diskette.fields["name"]]'" - src.temp = "Save successful." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - else if (href_list["refresh"]) - src.updateUsrDialog() - playsound(src, "terminal_type", 25, 0) - - else if (href_list["clone"]) - var/datum/data/record/C = find_record("id", href_list["clone"], records) - //Look for that player! They better be dead! - if(C) - var/obj/machinery/clonepod/pod = GetAvailablePod() - //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. - if(!LAZYLEN(pods)) - temp = "No Clonepods detected." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(!pod) - temp = "No Clonepods available." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(!config.revival_cloning) - temp = "Unable to initiate cloning cycle." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(pod.occupant) - temp = "Cloning cycle already in progress." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) - temp = "[C.fields["name"]] => Cloning cycle in progress..." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - records.Remove(C) - if(active_record == C) - active_record = null - menu = 1 - else - temp = "[C.fields["name"]] => Initialisation failure." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - - else - temp = "Data corruption." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - - else if (href_list["menu"]) - src.menu = text2num(href_list["menu"]) - playsound(src, "terminal_type", 25, 0) - - src.add_fingerprint(usr) - src.updateUsrDialog() - return - -/obj/machinery/computer/cloning/proc/scan_occupant(occupant) - var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) - var/datum/dna/dna - if(iscarbon(mob_occupant)) - var/mob/living/carbon/C = mob_occupant - dna = C.has_dna() - if(istype(mob_occupant, /mob/living/brain)) - var/mob/living/brain/B = mob_occupant - dna = B.stored_dna - - if(!istype(dna)) - scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if(mob_occupant.suiciding || mob_occupant.hellbound) - scantemp = "Subject's brain is not responding to scanning stimuli." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if((mob_occupant.disabilities & NOCLONE) && (src.scanner.scan_level < 2)) - scantemp = "Subject no longer contains the fundamental materials required to create a living clone." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) - return - if ((!mob_occupant.ckey) || (!mob_occupant.client)) - scantemp = "Mental interface failure." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if (find_record("ckey", mob_occupant.ckey, records)) - scantemp = "Subject already in database." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - - var/datum/data/record/R = new() - if(dna.species) - // We store the instance rather than the path, because some - // species (abductors, slimepeople) store state in their - // species datums - R.fields["mrace"] = dna.species - else - var/datum/species/rando_race = pick(config.roundstart_races) - R.fields["mrace"] = rando_race.type - - R.fields["ckey"] = mob_occupant.ckey - R.fields["name"] = mob_occupant.real_name - R.fields["id"] = copytext(md5(mob_occupant.real_name), 2, 6) - R.fields["UE"] = dna.unique_enzymes - R.fields["UI"] = dna.uni_identity - R.fields["SE"] = dna.struc_enzymes - R.fields["blood_type"] = dna.blood_type - R.fields["features"] = dna.features - R.fields["factions"] = mob_occupant.faction - - if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning. - R.fields["mind"] = "\ref[mob_occupant.mind]" - - //Add an implant if needed - var/obj/item/weapon/implant/health/imp - for(var/obj/item/weapon/implant/health/HI in mob_occupant.implants) - imp = HI - break - if(!imp) - imp = new /obj/item/weapon/implant/health(mob_occupant) - imp.implant(mob_occupant) - R.fields["imp"] = "\ref[imp]" - - src.records += R - scantemp = "Subject successfully scanned." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) +/obj/machinery/computer/cloning + name = "cloning console" + desc = "Used to clone people and manage DNA." + icon_screen = "dna" + icon_keyboard = "med_key" + circuit = /obj/item/weapon/circuitboard/computer/cloning + req_access = list(GLOB.access_heads) //Only used for record deletion right now. + var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. + var/list/pods //Linked cloning pods + var/temp = "Inactive" + var/scantemp_ckey + var/scantemp = "Ready to Scan" + var/menu = 1 //Which menu screen to display + var/list/records = list() + var/datum/data/record/active_record = null + var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything. + var/loading = 0 // Nice loading text + var/autoprocess = 0 + + light_color = LIGHT_COLOR_BLUE + +/obj/machinery/computer/cloning/Initialize() + ..() + updatemodules(TRUE) + +/obj/machinery/computer/cloning/Destroy() + if(pods) + for(var/P in pods) + DetachCloner(P) + pods = null + return ..() + +/obj/machinery/computer/cloning/proc/GetAvailablePod(mind = null) + if(pods) + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.occupant && pod.clonemind == mind) + return null + if(pod.is_operational() && !(pod.occupant || pod.mess)) + return pod + +/obj/machinery/computer/cloning/proc/HasEfficientPod() + if(pods) + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.is_operational() && pod.efficiency > 5) + return TRUE + +/obj/machinery/computer/cloning/proc/GetAvailableEfficientPod(mind = null) + if(pods) + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.occupant && pod.clonemind == mind) + return pod + else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) + . = pod + +/obj/machinery/computer/cloning/process() + if(!(scanner && LAZYLEN(pods) && autoprocess)) + return + + if(scanner.occupant && scanner.scan_level > 2) + scan_occupant(scanner.occupant) + + for(var/datum/data/record/R in records) + var/obj/machinery/clonepod/pod = GetAvailableEfficientPod(R.fields["mind"]) + + if(!pod) + return + + if(pod.occupant) + continue //how though? + + if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"])) + records -= R + +/obj/machinery/computer/cloning/proc/updatemodules(findfirstcloner) + src.scanner = findscanner() + if(findfirstcloner && !LAZYLEN(pods)) + findcloner() + +/obj/machinery/computer/cloning/proc/findscanner() + var/obj/machinery/dna_scannernew/scannerf = null + + // Loop through every direction + for(dir in list(NORTH,EAST,SOUTH,WEST)) + + // Try to find a scanner in that direction + scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) + + // If found and operational, return the scanner + if (!isnull(scannerf) && scannerf.is_operational()) + return scannerf + + // If no scanner was found, it will return null + return null + +/obj/machinery/computer/cloning/proc/findcloner() + var/obj/machinery/clonepod/podf = null + + for(dir in list(NORTH,EAST,SOUTH,WEST)) + + podf = locate(/obj/machinery/clonepod, get_step(src, dir)) + + if (!isnull(podf) && podf.is_operational()) + AttachCloner(podf) + +/obj/machinery/computer/cloning/proc/AttachCloner(obj/machinery/clonepod/pod) + if(!pod.connected) + pod.connected = src + LAZYADD(pods, pod) + +/obj/machinery/computer/cloning/proc/DetachCloner(obj/machinery/clonepod/pod) + pod.connected = null + LAZYREMOVE(pods, pod) + +/obj/machinery/computer/cloning/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES + if (!src.diskette) + if(!user.drop_item()) + return + W.loc = src + src.diskette = W + to_chat(user, "You insert [W].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + src.updateUsrDialog() + else if(istype(W,/obj/item/device/multitool)) + var/obj/item/device/multitool/P = W + + if(istype(P.buffer, /obj/machinery/clonepod)) + if(get_area(P.buffer) != get_area(src)) + to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") + P.buffer = null + return + to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") + var/obj/machinery/clonepod/pod = P.buffer + if(pod.connected) + pod.connected.DetachCloner(pod) + AttachCloner(pod) + else + P.buffer = src + to_chat(user, "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-") + return + else + return ..() + +/obj/machinery/computer/cloning/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/cloning/interact(mob/user) + user.set_machine(src) + add_fingerprint(user) + + if(..()) + return + + updatemodules(TRUE) + + var/dat = "" + dat += "Refresh" + + if(scanner && HasEfficientPod() && scanner.scan_level > 2) + if(!autoprocess) + dat += "Autoprocess" + else + dat += "Stop autoprocess" + else + dat += "Autoprocess" + dat += "

Cloning Pod Status

" + dat += "
[temp] 
" + + switch(src.menu) + if(1) + // Modules + if (isnull(src.scanner) || !LAZYLEN(pods)) + dat += "

Modules

" + //dat += "Reload Modules" + if (isnull(src.scanner)) + dat += "ERROR: No Scanner detected!
" + if (!LAZYLEN(pods)) + dat += "ERROR: No Pod detected
" + + // Scanner + if (!isnull(src.scanner)) + var/mob/living/scanner_occupant = get_mob_or_brainmob(scanner.occupant) + + dat += "

Scanner Functions

" + + dat += "
" + if(!scanner_occupant) + dat += "Scanner Unoccupied" + else if(loading) + dat += "[scanner_occupant] => Scanning..." + else + if(scanner_occupant.ckey != scantemp_ckey) + scantemp = "Ready to Scan" + scantemp_ckey = scanner_occupant.ckey + dat += "[scanner_occupant] => [scantemp]" + dat += "
" + + if(scanner_occupant) + dat += "Start Scan" + dat += "
[src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" + else + dat += "Start Scan" + + // Database + dat += "

Database Functions

" + if (src.records.len && src.records.len > 0) + dat += "View Records ([src.records.len])
" + else + dat += "View Records (0)
" + if (src.diskette) + dat += "Eject Disk
" + + + + if(2) + dat += "

Current records

" + dat += "<< Back

" + for(var/datum/data/record/R in records) + dat += "

[R.fields["name"]]

Scan ID [R.fields["id"]] View Record" + if(3) + dat += "

Selected Record

" + dat += "<< Back
" + + if (!src.active_record) + dat += "Record not found." + else + dat += "

[src.active_record.fields["name"]]

" + dat += "Scan ID [src.active_record.fields["id"]] Clone
" + + var/obj/item/weapon/implant/health/H = locate(src.active_record.fields["imp"]) + + if ((H) && (istype(H))) + dat += "Health Implant Data:
[H.sensehealth()]

" + else + dat += "Unable to locate Health Implant.

" + + dat += "Unique Identifier:
[src.active_record.fields["UI"]]
" + dat += "Structural Enzymes:
[src.active_record.fields["SE"]]
" + + if(diskette && diskette.fields) + dat += "
" + dat += "

Inserted Disk

" + dat += "Contents: " + var/list/L = list() + if(diskette.fields["UI"]) + L += "Unique Identifier" + if(diskette.fields["UE"] && diskette.fields["name"] && diskette.fields["blood_type"]) + L += "Unique Enzymes" + if(diskette.fields["SE"]) + L += "Structural Enzymes" + dat += english_list(L, "Empty", " + ", " + ") + dat += "
Load from Disk" + + dat += "
Save to Disk" + dat += "
" + + dat += "Delete Record" + + if(4) + if (!src.active_record) + src.menu = 2 + dat = "[src.temp]
" + dat += "

Confirm Record Deletion

" + + dat += "Scan card to confirm.
" + dat += "Cancel" + + + var/datum/browser/popup = new(user, "cloning", "Cloning System Control") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/cloning/Topic(href, href_list) + if(..()) + return + + if(loading) + return + + if(href_list["task"]) + switch(href_list["task"]) + if("autoprocess") + autoprocess = 1 + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + if("stopautoprocess") + autoprocess = 0 + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + + else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) + scantemp = "" + + loading = 1 + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + say("Initiating scan...") + + spawn(20) + src.scan_occupant(scanner.occupant) + + loading = 0 + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + + + //No locking an open scanner. + else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) + if ((!scanner.locked) && (scanner.occupant)) + scanner.locked = 1 + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else + scanner.locked = 0 + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + + else if(href_list["view_rec"]) + playsound(src, "terminal_type", 25, 0) + src.active_record = find_record("id", href_list["view_rec"], records) + if(active_record) + if(!active_record.fields["ckey"]) + records -= active_record + active_record = null + src.temp = "Record Corrupt" + else + src.menu = 3 + else + src.temp = "Record missing." + + else if (href_list["del_rec"]) + if ((!src.active_record) || (src.menu < 3)) + return + if (src.menu == 3) //If we are viewing a record, confirm deletion + src.temp = "Delete record?" + src.menu = 4 + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + + else if (src.menu == 4) + var/obj/item/weapon/card/id/C = usr.get_active_held_item() + if (istype(C)||istype(C, /obj/item/device/pda)) + if(src.check_access(C)) + src.temp = "[src.active_record.fields["name"]] => Record deleted." + src.records.Remove(active_record) + active_record = null + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + src.menu = 2 + else + src.temp = "Access Denied." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + + else if (href_list["disk"]) //Load or eject. + switch(href_list["disk"]) + if("load") + if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields) + src.temp = "Load error." + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if (!src.active_record) + src.temp = "Record error." + src.menu = 1 + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + + for(var/key in diskette.fields) + src.active_record.fields[key] = diskette.fields[key] + src.temp = "Load successful." + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + + if("eject") + if(src.diskette) + src.diskette.loc = src.loc + src.diskette = null + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + if("save") + if(!diskette || diskette.read_only || !active_record || !active_record.fields) + src.temp = "Save error." + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + + diskette.fields = active_record.fields.Copy() + diskette.name = "data disk - '[src.diskette.fields["name"]]'" + src.temp = "Save successful." + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + + else if (href_list["refresh"]) + src.updateUsrDialog() + playsound(src, "terminal_type", 25, 0) + + else if (href_list["clone"]) + var/datum/data/record/C = find_record("id", href_list["clone"], records) + //Look for that player! They better be dead! + if(C) + var/obj/machinery/clonepod/pod = GetAvailablePod() + //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. + if(!LAZYLEN(pods)) + temp = "No Clonepods detected." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(!pod) + temp = "No Clonepods available." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(!config.revival_cloning) + temp = "Unable to initiate cloning cycle." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(pod.occupant) + temp = "Cloning cycle already in progress." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) + temp = "[C.fields["name"]] => Cloning cycle in progress..." + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + records.Remove(C) + if(active_record == C) + active_record = null + menu = 1 + else + temp = "[C.fields["name"]] => Initialisation failure." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + + else + temp = "Data corruption." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + + else if (href_list["menu"]) + src.menu = text2num(href_list["menu"]) + playsound(src, "terminal_type", 25, 0) + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/obj/machinery/computer/cloning/proc/scan_occupant(occupant) + var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) + var/datum/dna/dna + if(iscarbon(mob_occupant)) + var/mob/living/carbon/C = mob_occupant + dna = C.has_dna() + if(istype(mob_occupant, /mob/living/brain)) + var/mob/living/brain/B = mob_occupant + dna = B.stored_dna + + if(!istype(dna)) + scantemp = "Unable to locate valid genetic data." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if(mob_occupant.suiciding || mob_occupant.hellbound) + scantemp = "Subject's brain is not responding to scanning stimuli." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if((mob_occupant.disabilities & NOCLONE) && (src.scanner.scan_level < 2)) + scantemp = "Subject no longer contains the fundamental materials required to create a living clone." + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) + return + if ((!mob_occupant.ckey) || (!mob_occupant.client)) + scantemp = "Mental interface failure." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if (find_record("ckey", mob_occupant.ckey, records)) + scantemp = "Subject already in database." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + + var/datum/data/record/R = new() + if(dna.species) + // We store the instance rather than the path, because some + // species (abductors, slimepeople) store state in their + // species datums + R.fields["mrace"] = dna.species + else + var/datum/species/rando_race = pick(config.roundstart_races) + R.fields["mrace"] = rando_race.type + + R.fields["ckey"] = mob_occupant.ckey + R.fields["name"] = mob_occupant.real_name + R.fields["id"] = copytext(md5(mob_occupant.real_name), 2, 6) + R.fields["UE"] = dna.unique_enzymes + R.fields["UI"] = dna.uni_identity + R.fields["SE"] = dna.struc_enzymes + R.fields["blood_type"] = dna.blood_type + R.fields["features"] = dna.features + R.fields["factions"] = mob_occupant.faction + + if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning. + R.fields["mind"] = "\ref[mob_occupant.mind]" + + //Add an implant if needed + var/obj/item/weapon/implant/health/imp + for(var/obj/item/weapon/implant/health/HI in mob_occupant.implants) + imp = HI + break + if(!imp) + imp = new /obj/item/weapon/implant/health(mob_occupant) + imp.implant(mob_occupant) + R.fields["imp"] = "\ref[imp]" + + src.records += R + scantemp = "Subject successfully scanned." + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 214163c739..79d6aa0b52 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -1,172 +1,172 @@ - - - -/obj/machinery/computer/robotics - name = "robotics control console" - desc = "Used to remotely lockdown or detonate linked Cyborgs." - icon_screen = "robot" - icon_keyboard = "rd_key" - req_access = list(GLOB.access_robotics) - circuit = /obj/item/weapon/circuitboard/computer/robotics - var/temp = null - - light_color = LIGHT_COLOR_PINK - -/obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) - if(!istype(R)) - return 0 - if(isAI(user)) - if (R.connected_ai != user) - return 0 - if(iscyborg(user)) - if (R != user) - return 0 - if(R.scrambledcodes) - return 0 - return 1 - -/obj/machinery/computer/robotics/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/robotics/interact(mob/user) - if (src.z > 6) - to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") - return - user.set_machine(src) - var/dat - var/robots = 0 - for(var/mob/living/silicon/robot/R in GLOB.mob_list) - if(!can_control(user, R)) - continue - robots++ - dat += "[R.name] |" - if(R.stat) - dat += " Not Responding |" - else if (!R.canmove) - dat += " Locked Down |" - else - dat += " Operating Normally |" - if (!R.canmove) - else if(R.cell) - dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" - else - dat += " No Cell Installed |" - if(R.module) - dat += " Module Installed ([R.module.name]) |" - else - dat += " No Module Installed |" - if(R.connected_ai) - dat += " Slaved to [R.connected_ai.name] |" - else - dat += " Independent from AI |" - if(issilicon(user) || IsAdminGhost(user)) - if(is_servant_of_ratvar(user) && user != R) - dat += "(Convert) " - else if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate)) - dat += "(Hack) " - dat += "([R.canmove ? "Lockdown" : "Release"]) " - dat += "(Destroy)" - dat += "
" - - if(!robots) - dat += "No Cyborg Units detected within access parameters." - dat += "
" - - var/drones = 0 - for(var/mob/living/simple_animal/drone/D in GLOB.mob_list) - if(D.hacked) - continue - drones++ - dat += "[D.name] |" - if(D.stat) - dat += " Not Responding |" - dat += "(Destroy)" - dat += "
" - - if(!drones) - dat += "No Drone Units detected within access parameters." - - var/datum/browser/popup = new(user, "computer", "Cyborg Control Console", 400, 500) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return - -/obj/machinery/computer/robotics/Topic(href, href_list) - if(..()) - return - - if (href_list["temp"]) - src.temp = null - - else if (href_list["killbot"]) - if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["killbot"]) in GLOB.silicon_mobs - if(can_control(usr, R)) - var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") - if(choice == "Confirm" && can_control(usr, R) && !..()) - if(R.syndicate && R.emagged) - to_chat(R, "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered.") - if(R.connected_ai) - to_chat(R.connected_ai, "

ALERT - Cyborg detonation detected: [R.name]
") - R.ResetSecurityCodes() - else - var/turf/T = get_turf(R) - message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name(R, R.client)][ADMIN_JMP(T)]!") - log_game("\[key_name(usr)] detonated [key_name(R)]!") - if(R.connected_ai) - to_chat(R.connected_ai, "

ALERT - Cyborg detonation detected: [R.name]
") - R.self_destruct() - else - to_chat(usr, "Access Denied.") - - else if (href_list["stopbot"]) - if(src.allowed(usr)) - var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) in GLOB.silicon_mobs - if(can_control(usr, R)) - var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") - if(choice == "Confirm" && can_control(usr, R) && !..()) - message_admins("[ADMIN_LOOKUPFLW(usr)] [R.canmove ? "locked down" : "released"] [key_name(R, R.client)][ADMIN_LOOKUPFLW(R)]!") - log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!") - R.SetLockdown(!R.lockcharge) - to_chat(R, "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]") - if(R.connected_ai) - to_chat(R.connected_ai, "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
") - - else - to_chat(usr, "Access Denied.") - - else if (href_list["magbot"]) - if((issilicon(usr) && is_special_character(usr)) || IsAdminGhost(usr)) - var/mob/living/silicon/robot/R = locate(href_list["magbot"]) in GLOB.silicon_mobs - if(istype(R) && !R.emagged && ((R.syndicate && R == usr) || R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) - log_game("[key_name(usr)] emagged [R.name] using robotic console!") - message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)] using robotic console!") - R.SetEmagged(1) - if(is_special_character(R)) - R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes - - else if(href_list["convert"]) - if(issilicon(usr) && is_special_character(usr)) - var/mob/living/silicon/robot/R = locate(href_list["convert"]) in GLOB.silicon_mobs - if(istype(R) && !is_servant_of_ratvar(R) && is_servant_of_ratvar(usr) && R.connected_ai == usr) - log_game("[key_name(usr)] converted [R.name] using robotic console!") - message_admins("[key_name_admin(usr)] converted cyborg [key_name_admin(R)] using robotic console!") - add_servant_of_ratvar(R) - - else if (href_list["killdrone"]) - if(src.allowed(usr)) - var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) - if(D.hacked) - to_chat(usr, "ERROR: [D] is not responding to external commands.") - else - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, D) - s.start() - D.visible_message("\the [D] self destructs!") - D.gib() - - src.updateUsrDialog() - return + + + +/obj/machinery/computer/robotics + name = "robotics control console" + desc = "Used to remotely lockdown or detonate linked Cyborgs." + icon_screen = "robot" + icon_keyboard = "rd_key" + req_access = list(GLOB.access_robotics) + circuit = /obj/item/weapon/circuitboard/computer/robotics + var/temp = null + + light_color = LIGHT_COLOR_PINK + +/obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) + if(!istype(R)) + return 0 + if(isAI(user)) + if (R.connected_ai != user) + return 0 + if(iscyborg(user)) + if (R != user) + return 0 + if(R.scrambledcodes) + return 0 + return 1 + +/obj/machinery/computer/robotics/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/robotics/interact(mob/user) + if (src.z > 6) + to_chat(user, "Unable to establish a connection: \black You're too far away from the station!") + return + user.set_machine(src) + var/dat + var/robots = 0 + for(var/mob/living/silicon/robot/R in GLOB.mob_list) + if(!can_control(user, R)) + continue + robots++ + dat += "[R.name] |" + if(R.stat) + dat += " Not Responding |" + else if (!R.canmove) + dat += " Locked Down |" + else + dat += " Operating Normally |" + if (!R.canmove) + else if(R.cell) + dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" + else + dat += " No Cell Installed |" + if(R.module) + dat += " Module Installed ([R.module.name]) |" + else + dat += " No Module Installed |" + if(R.connected_ai) + dat += " Slaved to [R.connected_ai.name] |" + else + dat += " Independent from AI |" + if(issilicon(user) || IsAdminGhost(user)) + if(is_servant_of_ratvar(user) && user != R) + dat += "(Convert) " + else if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate)) + dat += "(Hack) " + dat += "([R.canmove ? "Lockdown" : "Release"]) " + dat += "(Destroy)" + dat += "
" + + if(!robots) + dat += "No Cyborg Units detected within access parameters." + dat += "
" + + var/drones = 0 + for(var/mob/living/simple_animal/drone/D in GLOB.mob_list) + if(D.hacked) + continue + drones++ + dat += "[D.name] |" + if(D.stat) + dat += " Not Responding |" + dat += "(Destroy)" + dat += "
" + + if(!drones) + dat += "No Drone Units detected within access parameters." + + var/datum/browser/popup = new(user, "computer", "Cyborg Control Console", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/robotics/Topic(href, href_list) + if(..()) + return + + if (href_list["temp"]) + src.temp = null + + else if (href_list["killbot"]) + if(src.allowed(usr)) + var/mob/living/silicon/robot/R = locate(href_list["killbot"]) in GLOB.silicon_mobs + if(can_control(usr, R)) + var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") + if(choice == "Confirm" && can_control(usr, R) && !..()) + if(R.syndicate && R.emagged) + to_chat(R, "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered.") + if(R.connected_ai) + to_chat(R.connected_ai, "

ALERT - Cyborg detonation detected: [R.name]
") + R.ResetSecurityCodes() + else + var/turf/T = get_turf(R) + message_admins("[ADMIN_LOOKUPFLW(usr)] detonated [key_name(R, R.client)][ADMIN_JMP(T)]!") + log_game("\[key_name(usr)] detonated [key_name(R)]!") + if(R.connected_ai) + to_chat(R.connected_ai, "

ALERT - Cyborg detonation detected: [R.name]
") + R.self_destruct() + else + to_chat(usr, "Access Denied.") + + else if (href_list["stopbot"]) + if(src.allowed(usr)) + var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) in GLOB.silicon_mobs + if(can_control(usr, R)) + var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") + if(choice == "Confirm" && can_control(usr, R) && !..()) + message_admins("[ADMIN_LOOKUPFLW(usr)] [R.canmove ? "locked down" : "released"] [key_name(R, R.client)][ADMIN_LOOKUPFLW(R)]!") + log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!") + R.SetLockdown(!R.lockcharge) + to_chat(R, "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]") + if(R.connected_ai) + to_chat(R.connected_ai, "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
") + + else + to_chat(usr, "Access Denied.") + + else if (href_list["magbot"]) + if((issilicon(usr) && is_special_character(usr)) || IsAdminGhost(usr)) + var/mob/living/silicon/robot/R = locate(href_list["magbot"]) in GLOB.silicon_mobs + if(istype(R) && !R.emagged && ((R.syndicate && R == usr) || R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) + log_game("[key_name(usr)] emagged [R.name] using robotic console!") + message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)] using robotic console!") + R.SetEmagged(1) + if(is_special_character(R)) + R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes + + else if(href_list["convert"]) + if(issilicon(usr) && is_special_character(usr)) + var/mob/living/silicon/robot/R = locate(href_list["convert"]) in GLOB.silicon_mobs + if(istype(R) && !is_servant_of_ratvar(R) && is_servant_of_ratvar(usr) && R.connected_ai == usr) + log_game("[key_name(usr)] converted [R.name] using robotic console!") + message_admins("[key_name_admin(usr)] converted cyborg [key_name_admin(R)] using robotic console!") + add_servant_of_ratvar(R) + + else if (href_list["killdrone"]) + if(src.allowed(usr)) + var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) + if(D.hacked) + to_chat(usr, "ERROR: [D] is not responding to external commands.") + else + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, D) + s.start() + D.visible_message("\the [D] self destructs!") + D.gib() + + src.updateUsrDialog() + return diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index e683b77097..fdeb6598e5 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -1,211 +1,211 @@ -#define SAFETY_COOLDOWN 100 - -/obj/machinery/recycler - name = "recycler" - desc = "A large crushing machine used to recycle small items inefficiently. There are lights on the side." - icon = 'icons/obj/recycling.dmi' - icon_state = "grinder-o0" - layer = ABOVE_ALL_MOB_LAYER // Overhead - anchored = 1 - density = 1 - var/safety_mode = FALSE // Temporarily stops machine if it detects a mob - var/icon_name = "grinder-o" - var/blood = 0 - var/eat_dir = WEST - var/amount_produced = 50 - var/datum/material_container/materials - var/crush_damage = 1000 - var/eat_victim_items = TRUE - var/item_recycle_sound = 'sound/items/Welder.ogg' - -/obj/machinery/recycler/New() - ..() - materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null) - B.apply_default_parts(src) - update_icon() - -/obj/item/weapon/circuitboard/machine/recycler - name = "Recycler (Machine Board)" - build_path = /obj/machinery/recycler - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/machinery/recycler/RefreshParts() - var/amt_made = 0 - var/mat_mod = 0 - for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) - mat_mod = 2 * B.rating - mat_mod *= 50000 - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - amt_made = 12.5 * M.rating //% of materials salvaged - materials.max_amount = mat_mod - amount_produced = min(50, amt_made) + 50 - -/obj/machinery/recycler/examine(mob/user) - ..() - to_chat(user, "The power light is [(stat & NOPOWER) ? "off" : "on"].") - to_chat(user, "The safety-mode light is [safety_mode ? "on" : "off"].") - to_chat(user, "The safety-sensors status light is [emagged ? "off" : "on"].") - -/obj/machinery/recycler/power_change() - ..() - update_icon() - - -/obj/machinery/recycler/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I)) - return - - if(exchange_parts(user, I)) - return - - if(default_pry_open(I)) - return - - if(default_unfasten_wrench(user, I)) - return - - if(default_deconstruction_crowbar(I)) - return - return ..() - -/obj/machinery/recycler/emag_act(mob/user) - if(!emagged) - emagged = TRUE - if(safety_mode) - safety_mode = FALSE - update_icon() - playsound(src.loc, "sparks", 75, 1, -1) - to_chat(user, "You use the cryptographic sequencer on the [src.name].") - -/obj/machinery/recycler/update_icon() - ..() - var/is_powered = !(stat & (BROKEN|NOPOWER)) - if(safety_mode) - is_powered = FALSE - icon_state = icon_name + "[is_powered]" + "[(blood ? "bld" : "")]" // add the blood tag at the end - -// This is purely for admin possession !FUN!. -/obj/machinery/recycler/Bump(atom/movable/AM) - ..() - if(AM) - Bumped(AM) - - -/obj/machinery/recycler/Bumped(atom/movable/AM) - - if(stat & (BROKEN|NOPOWER)) - return - if(!anchored) - return - if(safety_mode) - return - - var/move_dir = get_dir(loc, AM.loc) - if(move_dir == eat_dir) - eat(AM) - -/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE) - var/list/to_eat - if(istype(AM0, /obj/item)) - to_eat = AM0.GetAllContents() - else - to_eat = list(AM0) - - var/items_recycled = 0 - - for(var/i in to_eat) - var/atom/movable/AM = i - var/obj/item/bodypart/head/as_head = AM - var/obj/item/device/mmi/as_mmi = AM - var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || istype(AM, /mob/living/brain) - if(isliving(AM) || brain_holder) - if(emagged) - if(!brain_holder) - crush_living(AM) - else - emergency_stop(AM) - else if(istype(AM, /obj/item)) - recycle_item(AM) - items_recycled++ - else - playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) - AM.loc = src.loc - - if(items_recycled && sound) - playsound(src.loc, item_recycle_sound, 50, 1) - -/obj/machinery/recycler/proc/recycle_item(obj/item/I) - I.loc = src.loc - - var/material_amount = materials.get_item_material_amount(I) - if(!material_amount) - qdel(I) - return - materials.insert_item(I, multiplier = (amount_produced / 100)) - qdel(I) - materials.retrieve_all() - - -/obj/machinery/recycler/proc/emergency_stop(mob/living/L) - playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) - safety_mode = TRUE - update_icon() - L.loc = src.loc - addtimer(CALLBACK(src, .proc/reboot), SAFETY_COOLDOWN) - -/obj/machinery/recycler/proc/reboot() - playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) - safety_mode = FALSE - update_icon() - -/obj/machinery/recycler/proc/crush_living(mob/living/L) - - L.loc = src.loc - - if(issilicon(L)) - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - else - playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) - - var/gib = TRUE - // By default, the emagged recycler will gib all non-carbons. (human simple animal mobs don't count) - if(iscarbon(L)) - gib = FALSE - if(L.stat == CONSCIOUS) - L.say("ARRRRRRRRRRRGH!!!") - add_mob_blood(L) - - if(!blood && !issilicon(L)) - blood = TRUE - update_icon() - - // Remove and recycle the equipped items - if(eat_victim_items) - for(var/obj/item/I in L.get_equipped_items()) - if(L.dropItemToGround(I)) - eat(I, sound=FALSE) - - // Instantly lie down, also go unconscious from the pain, before you die. - L.Paralyse(5) - - // For admin fun, var edit emagged to 2. - if(gib || emagged == 2) - L.gib() - else if(emagged == 1) - L.adjustBruteLoss(crush_damage) - -/obj/machinery/recycler/deathtrap - name = "dangerous old crusher" - emagged = TRUE - crush_damage = 120 - flags = NODECONSTRUCT - -/obj/item/weapon/paper/recycler - name = "paper - 'garbage duty instructions'" - info = "

New Assignment

You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.

There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" - +#define SAFETY_COOLDOWN 100 + +/obj/machinery/recycler + name = "recycler" + desc = "A large crushing machine used to recycle small items inefficiently. There are lights on the side." + icon = 'icons/obj/recycling.dmi' + icon_state = "grinder-o0" + layer = ABOVE_ALL_MOB_LAYER // Overhead + anchored = 1 + density = 1 + var/safety_mode = FALSE // Temporarily stops machine if it detects a mob + var/icon_name = "grinder-o" + var/blood = 0 + var/eat_dir = WEST + var/amount_produced = 50 + var/datum/material_container/materials + var/crush_damage = 1000 + var/eat_victim_items = TRUE + var/item_recycle_sound = 'sound/items/Welder.ogg' + +/obj/machinery/recycler/New() + ..() + materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/recycler + name = "Recycler (Machine Board)" + build_path = /obj/machinery/recycler + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/recycler/RefreshParts() + var/amt_made = 0 + var/mat_mod = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + mat_mod = 2 * B.rating + mat_mod *= 50000 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + amt_made = 12.5 * M.rating //% of materials salvaged + materials.max_amount = mat_mod + amount_produced = min(50, amt_made) + 50 + +/obj/machinery/recycler/examine(mob/user) + ..() + to_chat(user, "The power light is [(stat & NOPOWER) ? "off" : "on"].") + to_chat(user, "The safety-mode light is [safety_mode ? "on" : "off"].") + to_chat(user, "The safety-sensors status light is [emagged ? "off" : "on"].") + +/obj/machinery/recycler/power_change() + ..() + update_icon() + + +/obj/machinery/recycler/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I)) + return + + if(exchange_parts(user, I)) + return + + if(default_pry_open(I)) + return + + if(default_unfasten_wrench(user, I)) + return + + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/recycler/emag_act(mob/user) + if(!emagged) + emagged = TRUE + if(safety_mode) + safety_mode = FALSE + update_icon() + playsound(src.loc, "sparks", 75, 1, -1) + to_chat(user, "You use the cryptographic sequencer on the [src.name].") + +/obj/machinery/recycler/update_icon() + ..() + var/is_powered = !(stat & (BROKEN|NOPOWER)) + if(safety_mode) + is_powered = FALSE + icon_state = icon_name + "[is_powered]" + "[(blood ? "bld" : "")]" // add the blood tag at the end + +// This is purely for admin possession !FUN!. +/obj/machinery/recycler/Bump(atom/movable/AM) + ..() + if(AM) + Bumped(AM) + + +/obj/machinery/recycler/Bumped(atom/movable/AM) + + if(stat & (BROKEN|NOPOWER)) + return + if(!anchored) + return + if(safety_mode) + return + + var/move_dir = get_dir(loc, AM.loc) + if(move_dir == eat_dir) + eat(AM) + +/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE) + var/list/to_eat + if(istype(AM0, /obj/item)) + to_eat = AM0.GetAllContents() + else + to_eat = list(AM0) + + var/items_recycled = 0 + + for(var/i in to_eat) + var/atom/movable/AM = i + var/obj/item/bodypart/head/as_head = AM + var/obj/item/device/mmi/as_mmi = AM + var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || istype(AM, /mob/living/brain) + if(isliving(AM) || brain_holder) + if(emagged) + if(!brain_holder) + crush_living(AM) + else + emergency_stop(AM) + else if(istype(AM, /obj/item)) + recycle_item(AM) + items_recycled++ + else + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + AM.loc = src.loc + + if(items_recycled && sound) + playsound(src.loc, item_recycle_sound, 50, 1) + +/obj/machinery/recycler/proc/recycle_item(obj/item/I) + I.loc = src.loc + + var/material_amount = materials.get_item_material_amount(I) + if(!material_amount) + qdel(I) + return + materials.insert_item(I, multiplier = (amount_produced / 100)) + qdel(I) + materials.retrieve_all() + + +/obj/machinery/recycler/proc/emergency_stop(mob/living/L) + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + safety_mode = TRUE + update_icon() + L.loc = src.loc + addtimer(CALLBACK(src, .proc/reboot), SAFETY_COOLDOWN) + +/obj/machinery/recycler/proc/reboot() + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + safety_mode = FALSE + update_icon() + +/obj/machinery/recycler/proc/crush_living(mob/living/L) + + L.loc = src.loc + + if(issilicon(L)) + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + else + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) + + var/gib = TRUE + // By default, the emagged recycler will gib all non-carbons. (human simple animal mobs don't count) + if(iscarbon(L)) + gib = FALSE + if(L.stat == CONSCIOUS) + L.say("ARRRRRRRRRRRGH!!!") + add_mob_blood(L) + + if(!blood && !issilicon(L)) + blood = TRUE + update_icon() + + // Remove and recycle the equipped items + if(eat_victim_items) + for(var/obj/item/I in L.get_equipped_items()) + if(L.dropItemToGround(I)) + eat(I, sound=FALSE) + + // Instantly lie down, also go unconscious from the pain, before you die. + L.Paralyse(5) + + // For admin fun, var edit emagged to 2. + if(gib || emagged == 2) + L.gib() + else if(emagged == 1) + L.adjustBruteLoss(crush_damage) + +/obj/machinery/recycler/deathtrap + name = "dangerous old crusher" + emagged = TRUE + crush_damage = 120 + flags = NODECONSTRUCT + +/obj/item/weapon/paper/recycler + name = "paper - 'garbage duty instructions'" + info = "

New Assignment

You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.

There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" + #undef SAFETY_COOLDOWN \ No newline at end of file diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index f64f761736..18d2a1b5bd 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -1,388 +1,388 @@ -// SUIT STORAGE UNIT ///////////////// -/obj/machinery/suit_storage_unit - name = "suit storage unit" - desc = "An industrial unit made to hold space suits. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." - icon = 'icons/obj/suitstorage.dmi' - icon_state = "close" - anchored = 1 - density = 1 - obj_integrity = 250 - max_integrity = 250 - - var/obj/item/clothing/suit/space/suit = null - var/obj/item/clothing/head/helmet/space/helmet = null - var/obj/item/clothing/mask/mask = null - var/obj/item/storage = null - - var/suit_type = null - var/helmet_type = null - var/mask_type = null - var/storage_type = null - - state_open = FALSE - var/locked = FALSE - panel_open = FALSE - var/safeties = TRUE - - var/uv = FALSE - var/uv_super = FALSE - var/uv_cycles = 6 - -/obj/machinery/suit_storage_unit/standard_unit - suit_type = /obj/item/clothing/suit/space/eva - helmet_type = /obj/item/clothing/head/helmet/space/eva - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/captain - suit_type = /obj/item/clothing/suit/space/hardsuit/captain - mask_type = /obj/item/clothing/mask/gas/sechailer - storage_type = /obj/item/weapon/tank/jetpack/oxygen/captain - -/obj/machinery/suit_storage_unit/engine - suit_type = /obj/item/clothing/suit/space/hardsuit/engine - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/ce - suit_type = /obj/item/clothing/suit/space/hardsuit/engine/elite - mask_type = /obj/item/clothing/mask/breath - storage_type= /obj/item/clothing/shoes/magboots/advance - -/obj/machinery/suit_storage_unit/security - suit_type = /obj/item/clothing/suit/space/hardsuit/security - mask_type = /obj/item/clothing/mask/gas/sechailer - -/obj/machinery/suit_storage_unit/hos - suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos - mask_type = /obj/item/clothing/mask/gas/sechailer - storage_type = /obj/item/weapon/tank/internals/oxygen - -/obj/machinery/suit_storage_unit/atmos - suit_type = /obj/item/clothing/suit/space/hardsuit/engine/atmos - mask_type = /obj/item/clothing/mask/gas - storage_type = /obj/item/weapon/watertank/atmos - -/obj/machinery/suit_storage_unit/mining - suit_type = /obj/item/clothing/suit/hooded/explorer - mask_type = /obj/item/clothing/mask/gas/explorer - -/obj/machinery/suit_storage_unit/mining/eva - suit_type = /obj/item/clothing/suit/space/hardsuit/mining - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/cmo - suit_type = /obj/item/clothing/suit/space/hardsuit/medical - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/rd - suit_type = /obj/item/clothing/suit/space/hardsuit/rd - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/syndicate - suit_type = /obj/item/clothing/suit/space/hardsuit/syndi - mask_type = /obj/item/clothing/mask/gas/syndicate - storage_type = /obj/item/weapon/tank/jetpack/oxygen/harness - -/obj/machinery/suit_storage_unit/ert/command - suit_type = /obj/item/clothing/suit/space/hardsuit/ert - mask_type = /obj/item/clothing/mask/breath - storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double - -/obj/machinery/suit_storage_unit/ert/security - suit_type = /obj/item/clothing/suit/space/hardsuit/ert/sec - mask_type = /obj/item/clothing/mask/breath - storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double - -/obj/machinery/suit_storage_unit/ert/engineer - suit_type = /obj/item/clothing/suit/space/hardsuit/ert/engi - mask_type = /obj/item/clothing/mask/breath - storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double - -/obj/machinery/suit_storage_unit/ert/medical - suit_type = /obj/item/clothing/suit/space/hardsuit/ert/med - mask_type = /obj/item/clothing/mask/breath - storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double - -/obj/machinery/suit_storage_unit/New() - ..() - wires = new /datum/wires/suit_storage_unit(src) - if(suit_type) - suit = new suit_type(src) - if(helmet_type) - helmet = new helmet_type(src) - if(mask_type) - mask = new mask_type(src) - if(storage_type) - storage = new storage_type(src) - update_icon() - -/obj/machinery/suit_storage_unit/Destroy() - if(suit) - qdel(suit) - suit = null - if(helmet) - qdel(helmet) - helmet = null - if(mask) - qdel(mask) - mask = null - if(storage) - qdel(storage) - storage = null - return ..() - -/obj/machinery/suit_storage_unit/update_icon() - cut_overlays() - - if(uv) - if(uv_super) - add_overlay("super") - else if(occupant) - add_overlay("uvhuman") - else - add_overlay("uv") - else if(state_open) - if(stat & BROKEN) - add_overlay("broken") - else - add_overlay("open") - if(suit) - add_overlay("suit") - if(helmet) - add_overlay("helm") - if(storage) - add_overlay("storage") - else if(occupant) - add_overlay("human") - -/obj/machinery/suit_storage_unit/power_change() - ..() - if(!is_operational() && state_open) - open_machine() - dump_contents() - update_icon() - -/obj/machinery/suit_storage_unit/proc/dump_contents() - dropContents() - helmet = null - suit = null - mask = null - storage = null - occupant = null - -/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - open_machine() - dump_contents() - new /obj/item/stack/sheet/metal (loc, 2) - qdel(src) - -/obj/machinery/suit_storage_unit/MouseDrop_T(atom/A, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !Adjacent(A) || !isliving(A)) - return - var/mob/living/target = A - if(!state_open) - to_chat(user, "The unit's doors are shut!") - return - if(!is_operational()) - to_chat(user, "The unit is not operational!") - return - if(occupant || helmet || suit || storage) - to_chat(user, "It's too cluttered inside to fit in!") - return - - if(target == user) - user.visible_message("[user] starts squeezing into [src]!", "You start working your way into [src]...") - else - target.visible_message("[user] starts shoving [target] into [src]!", "[user] starts shoving you into [src]!") - - if(do_mob(user, target, 30)) - if(occupant || helmet || suit || storage) - return - if(target == user) - user.visible_message("[user] slips into [src] and closes the door behind them!", "You slip into [src]'s cramped space and shut its door.") - else - target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") - close_machine(target) - add_fingerprint(user) - -/obj/machinery/suit_storage_unit/proc/cook() - if(uv_cycles) - uv_cycles-- - uv = TRUE - locked = TRUE - update_icon() - if(occupant) - var/mob/living/mob_occupant = occupant - if(uv_super) - mob_occupant.adjustFireLoss(rand(20, 36)) - else - mob_occupant.adjustFireLoss(rand(10, 16)) - mob_occupant.emote("scream") - addtimer(CALLBACK(src, .proc/cook), 50) - else - uv_cycles = initial(uv_cycles) - uv = FALSE - locked = FALSE - if(uv_super) - visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.") - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, 1) - helmet = null - qdel(helmet) - suit = null - qdel(suit) // Delete everything but the occupant. - mask = null - qdel(mask) - storage = null - qdel(storage) - // The wires get damaged too. - wires.cut_all() - else - if(!occupant) - visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.") - else - visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") - playsound(src, 'sound/machines/AirlockClose.ogg', 25, 1) - for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected - I.clean_blood() - I.fingerprints = list() - open_machine(FALSE) - if(occupant) - dump_contents() - -/obj/machinery/suit_storage_unit/proc/shock(mob/user, prb) - if(!prob(prb)) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(5, 1, src) - s.start() - if(electrocute_mob(user, src, src, 1, TRUE)) - return 1 - -/obj/machinery/suit_storage_unit/relaymove(mob/user) - container_resist(user) - -/obj/machinery/suit_storage_unit/container_resist(mob/living/user) - add_fingerprint(user) - if(locked) - visible_message("You see [user] kicking against the doors of [src]!", "You start kicking against the doors...") - addtimer(CALLBACK(src, .proc/resist_open, user), 300) - else - open_machine() - dump_contents() - -/obj/machinery/suit_storage_unit/proc/resist_open(mob/user) - if(!state_open && occupant && (user in src) && user.stat == 0) // Check they're still here. - visible_message("You see [user] bursts out of [src]!", "You escape the cramped confines of [src]!") - open_machine() - -/obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user, params) - if(state_open && is_operational()) - if(istype(I, /obj/item/clothing/suit/space)) - if(suit) - to_chat(user, "The unit already contains a suit!.") - return - if(!user.drop_item()) - return - suit = I - else if(istype(I, /obj/item/clothing/head/helmet)) - if(helmet) - to_chat(user, "The unit already contains a helmet!") - return - if(!user.drop_item()) - return - helmet = I - else if(istype(I, /obj/item/clothing/mask)) - if(mask) - to_chat(user, "The unit already contains a mask!") - return - if(!user.drop_item()) - return - mask = I - else - if(storage) - to_chat(user, "The auxiliary storage compartment is full!") - return - if(!user.drop_item()) - return - storage = I - - I.loc = src - visible_message("[user] inserts [I] into [src]", "You load [I] into [src].") - update_icon() - return - - if(panel_open && is_wire_tool(I)) - wires.interact(user) - if(!state_open) - if(default_deconstruction_screwdriver(user, "panel", "close", I)) - return - if(default_pry_open(I)) - dump_contents() - return - - return ..() - -/obj/machinery/suit_storage_unit/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "suit_storage_unit", name, 400, 305, master_ui, state) - ui.open() - -/obj/machinery/suit_storage_unit/ui_data() - var/list/data = list() - data["locked"] = locked - data["open"] = state_open - data["safeties"] = safeties - data["uv_active"] = uv - data["uv_super"] = uv_super - if(helmet) - data["helmet"] = helmet.name - if(suit) - data["suit"] = suit.name - if(mask) - data["mask"] = mask.name - if(storage) - data["storage"] = storage.name - if(occupant) - data["occupied"] = 1 - return data - -/obj/machinery/suit_storage_unit/ui_act(action, params) - if(..() || uv) - return - switch(action) - if("door") - if(state_open) - close_machine() - else - open_machine(0) - if(occupant) - dump_contents() // Dump out contents if someone is in there. - . = TRUE - if("lock") - locked = !locked - . = TRUE - if("uv") - if(occupant && safeties) - return - else if(!helmet && !mask && !suit && !storage && !occupant) - return - else - if(occupant) - var/mob/living/mob_occupant = occupant - to_chat(mob_occupant, "[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!") - cook() - . = TRUE - if("dispense") - if(!state_open) - return - - var/static/list/valid_items = list("helmet", "suit", "mask", "storage") - var/item_name = params["item"] - if(item_name in valid_items) - var/obj/item/I = vars[item_name] - vars[item_name] = null - if(I) - I.forceMove(loc) - . = TRUE - update_icon() +// SUIT STORAGE UNIT ///////////////// +/obj/machinery/suit_storage_unit + name = "suit storage unit" + desc = "An industrial unit made to hold space suits. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." + icon = 'icons/obj/suitstorage.dmi' + icon_state = "close" + anchored = 1 + density = 1 + obj_integrity = 250 + max_integrity = 250 + + var/obj/item/clothing/suit/space/suit = null + var/obj/item/clothing/head/helmet/space/helmet = null + var/obj/item/clothing/mask/mask = null + var/obj/item/storage = null + + var/suit_type = null + var/helmet_type = null + var/mask_type = null + var/storage_type = null + + state_open = FALSE + var/locked = FALSE + panel_open = FALSE + var/safeties = TRUE + + var/uv = FALSE + var/uv_super = FALSE + var/uv_cycles = 6 + +/obj/machinery/suit_storage_unit/standard_unit + suit_type = /obj/item/clothing/suit/space/eva + helmet_type = /obj/item/clothing/head/helmet/space/eva + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/captain + suit_type = /obj/item/clothing/suit/space/hardsuit/captain + mask_type = /obj/item/clothing/mask/gas/sechailer + storage_type = /obj/item/weapon/tank/jetpack/oxygen/captain + +/obj/machinery/suit_storage_unit/engine + suit_type = /obj/item/clothing/suit/space/hardsuit/engine + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/ce + suit_type = /obj/item/clothing/suit/space/hardsuit/engine/elite + mask_type = /obj/item/clothing/mask/breath + storage_type= /obj/item/clothing/shoes/magboots/advance + +/obj/machinery/suit_storage_unit/security + suit_type = /obj/item/clothing/suit/space/hardsuit/security + mask_type = /obj/item/clothing/mask/gas/sechailer + +/obj/machinery/suit_storage_unit/hos + suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos + mask_type = /obj/item/clothing/mask/gas/sechailer + storage_type = /obj/item/weapon/tank/internals/oxygen + +/obj/machinery/suit_storage_unit/atmos + suit_type = /obj/item/clothing/suit/space/hardsuit/engine/atmos + mask_type = /obj/item/clothing/mask/gas + storage_type = /obj/item/weapon/watertank/atmos + +/obj/machinery/suit_storage_unit/mining + suit_type = /obj/item/clothing/suit/hooded/explorer + mask_type = /obj/item/clothing/mask/gas/explorer + +/obj/machinery/suit_storage_unit/mining/eva + suit_type = /obj/item/clothing/suit/space/hardsuit/mining + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/cmo + suit_type = /obj/item/clothing/suit/space/hardsuit/medical + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/rd + suit_type = /obj/item/clothing/suit/space/hardsuit/rd + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/syndicate + suit_type = /obj/item/clothing/suit/space/hardsuit/syndi + mask_type = /obj/item/clothing/mask/gas/syndicate + storage_type = /obj/item/weapon/tank/jetpack/oxygen/harness + +/obj/machinery/suit_storage_unit/ert/command + suit_type = /obj/item/clothing/suit/space/hardsuit/ert + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/security + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/sec + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/engineer + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/engi + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/medical + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/med + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/New() + ..() + wires = new /datum/wires/suit_storage_unit(src) + if(suit_type) + suit = new suit_type(src) + if(helmet_type) + helmet = new helmet_type(src) + if(mask_type) + mask = new mask_type(src) + if(storage_type) + storage = new storage_type(src) + update_icon() + +/obj/machinery/suit_storage_unit/Destroy() + if(suit) + qdel(suit) + suit = null + if(helmet) + qdel(helmet) + helmet = null + if(mask) + qdel(mask) + mask = null + if(storage) + qdel(storage) + storage = null + return ..() + +/obj/machinery/suit_storage_unit/update_icon() + cut_overlays() + + if(uv) + if(uv_super) + add_overlay("super") + else if(occupant) + add_overlay("uvhuman") + else + add_overlay("uv") + else if(state_open) + if(stat & BROKEN) + add_overlay("broken") + else + add_overlay("open") + if(suit) + add_overlay("suit") + if(helmet) + add_overlay("helm") + if(storage) + add_overlay("storage") + else if(occupant) + add_overlay("human") + +/obj/machinery/suit_storage_unit/power_change() + ..() + if(!is_operational() && state_open) + open_machine() + dump_contents() + update_icon() + +/obj/machinery/suit_storage_unit/proc/dump_contents() + dropContents() + helmet = null + suit = null + mask = null + storage = null + occupant = null + +/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + open_machine() + dump_contents() + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/machinery/suit_storage_unit/MouseDrop_T(atom/A, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !Adjacent(A) || !isliving(A)) + return + var/mob/living/target = A + if(!state_open) + to_chat(user, "The unit's doors are shut!") + return + if(!is_operational()) + to_chat(user, "The unit is not operational!") + return + if(occupant || helmet || suit || storage) + to_chat(user, "It's too cluttered inside to fit in!") + return + + if(target == user) + user.visible_message("[user] starts squeezing into [src]!", "You start working your way into [src]...") + else + target.visible_message("[user] starts shoving [target] into [src]!", "[user] starts shoving you into [src]!") + + if(do_mob(user, target, 30)) + if(occupant || helmet || suit || storage) + return + if(target == user) + user.visible_message("[user] slips into [src] and closes the door behind them!", "You slip into [src]'s cramped space and shut its door.") + else + target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") + close_machine(target) + add_fingerprint(user) + +/obj/machinery/suit_storage_unit/proc/cook() + if(uv_cycles) + uv_cycles-- + uv = TRUE + locked = TRUE + update_icon() + if(occupant) + var/mob/living/mob_occupant = occupant + if(uv_super) + mob_occupant.adjustFireLoss(rand(20, 36)) + else + mob_occupant.adjustFireLoss(rand(10, 16)) + mob_occupant.emote("scream") + addtimer(CALLBACK(src, .proc/cook), 50) + else + uv_cycles = initial(uv_cycles) + uv = FALSE + locked = FALSE + if(uv_super) + visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.") + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, 1) + helmet = null + qdel(helmet) + suit = null + qdel(suit) // Delete everything but the occupant. + mask = null + qdel(mask) + storage = null + qdel(storage) + // The wires get damaged too. + wires.cut_all() + else + if(!occupant) + visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.") + else + visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") + playsound(src, 'sound/machines/AirlockClose.ogg', 25, 1) + for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected + I.clean_blood() + I.fingerprints = list() + open_machine(FALSE) + if(occupant) + dump_contents() + +/obj/machinery/suit_storage_unit/proc/shock(mob/user, prb) + if(!prob(prb)) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if(electrocute_mob(user, src, src, 1, TRUE)) + return 1 + +/obj/machinery/suit_storage_unit/relaymove(mob/user) + container_resist(user) + +/obj/machinery/suit_storage_unit/container_resist(mob/living/user) + add_fingerprint(user) + if(locked) + visible_message("You see [user] kicking against the doors of [src]!", "You start kicking against the doors...") + addtimer(CALLBACK(src, .proc/resist_open, user), 300) + else + open_machine() + dump_contents() + +/obj/machinery/suit_storage_unit/proc/resist_open(mob/user) + if(!state_open && occupant && (user in src) && user.stat == 0) // Check they're still here. + visible_message("You see [user] bursts out of [src]!", "You escape the cramped confines of [src]!") + open_machine() + +/obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user, params) + if(state_open && is_operational()) + if(istype(I, /obj/item/clothing/suit/space)) + if(suit) + to_chat(user, "The unit already contains a suit!.") + return + if(!user.drop_item()) + return + suit = I + else if(istype(I, /obj/item/clothing/head/helmet)) + if(helmet) + to_chat(user, "The unit already contains a helmet!") + return + if(!user.drop_item()) + return + helmet = I + else if(istype(I, /obj/item/clothing/mask)) + if(mask) + to_chat(user, "The unit already contains a mask!") + return + if(!user.drop_item()) + return + mask = I + else + if(storage) + to_chat(user, "The auxiliary storage compartment is full!") + return + if(!user.drop_item()) + return + storage = I + + I.loc = src + visible_message("[user] inserts [I] into [src]", "You load [I] into [src].") + update_icon() + return + + if(panel_open && is_wire_tool(I)) + wires.interact(user) + if(!state_open) + if(default_deconstruction_screwdriver(user, "panel", "close", I)) + return + if(default_pry_open(I)) + dump_contents() + return + + return ..() + +/obj/machinery/suit_storage_unit/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "suit_storage_unit", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/suit_storage_unit/ui_data() + var/list/data = list() + data["locked"] = locked + data["open"] = state_open + data["safeties"] = safeties + data["uv_active"] = uv + data["uv_super"] = uv_super + if(helmet) + data["helmet"] = helmet.name + if(suit) + data["suit"] = suit.name + if(mask) + data["mask"] = mask.name + if(storage) + data["storage"] = storage.name + if(occupant) + data["occupied"] = 1 + return data + +/obj/machinery/suit_storage_unit/ui_act(action, params) + if(..() || uv) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + open_machine(0) + if(occupant) + dump_contents() // Dump out contents if someone is in there. + . = TRUE + if("lock") + locked = !locked + . = TRUE + if("uv") + if(occupant && safeties) + return + else if(!helmet && !mask && !suit && !storage && !occupant) + return + else + if(occupant) + var/mob/living/mob_occupant = occupant + to_chat(mob_occupant, "[src]'s confines grow warm, then hot, then scorching. You're being burned [!mob_occupant.stat ? "alive" : "away"]!") + cook() + . = TRUE + if("dispense") + if(!state_open) + return + + var/static/list/valid_items = list("helmet", "suit", "mask", "storage") + var/item_name = params["item"] + if(item_name in valid_items) + var/obj/item/I = vars[item_name] + vars[item_name] = null + if(I) + I.forceMove(loc) + . = TRUE + update_icon() diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 9e7dbe7fa9..7f66b0ab1a 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -1,69 +1,69 @@ - -/obj/effect/portal - name = "portal" - desc = "Looks unstable. Best to test it with the clown." - icon = 'icons/obj/stationobjs.dmi' - icon_state = "portal" - density = 1 - var/obj/item/target = null - var/creator = null - anchored = 1 - var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent - var/mech_sized = FALSE - -/obj/effect/portal/Bumped(mob/M as mob|obj) - teleport(M) - -/obj/effect/portal/attack_tk(mob/user) - return - -/obj/effect/portal/attack_hand(mob/user) - if(Adjacent(user)) - teleport(user) - -/obj/effect/portal/attackby(obj/item/weapon/W, mob/user, params) - if(user && Adjacent(user)) - teleport(user) - -/obj/effect/portal/make_frozen_visual() - return - -/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) - ..() - GLOB.portals += src - src.target = target - src.creator = creator - - var/area/A = get_area(target) - if(A && A.noteleport) // No point in persisting if the target is unreachable. - qdel(src) - return - if(lifespan > 0) - QDEL_IN(src, lifespan) - -/obj/effect/portal/Destroy() - GLOB.portals -= src - if(istype(creator, /obj/item/weapon/hand_tele)) - var/obj/item/weapon/hand_tele/O = creator - O.active_portals-- - else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector)) - var/obj/item/weapon/gun/energy/wormhole_projector/P = creator - P.portal_destroyed(src) - creator = null - return ..() - -/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) - if(istype(M, /obj/effect)) //sparks don't teleport - return - if(M.anchored) - if(!(istype(M, /obj/mecha) && mech_sized)) - return - if (!( target )) - qdel(src) - return - if (istype(M, /atom/movable)) - if(ismegafauna(M)) - message_admins("[M] [ADMIN_FLW(M)] has teleported through [src].") - do_teleport(M, target, precision) ///You will appear adjacent to the beacon - - + +/obj/effect/portal + name = "portal" + desc = "Looks unstable. Best to test it with the clown." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "portal" + density = 1 + var/obj/item/target = null + var/creator = null + anchored = 1 + var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent + var/mech_sized = FALSE + +/obj/effect/portal/Bumped(mob/M as mob|obj) + teleport(M) + +/obj/effect/portal/attack_tk(mob/user) + return + +/obj/effect/portal/attack_hand(mob/user) + if(Adjacent(user)) + teleport(user) + +/obj/effect/portal/attackby(obj/item/weapon/W, mob/user, params) + if(user && Adjacent(user)) + teleport(user) + +/obj/effect/portal/make_frozen_visual() + return + +/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) + ..() + GLOB.portals += src + src.target = target + src.creator = creator + + var/area/A = get_area(target) + if(A && A.noteleport) // No point in persisting if the target is unreachable. + qdel(src) + return + if(lifespan > 0) + QDEL_IN(src, lifespan) + +/obj/effect/portal/Destroy() + GLOB.portals -= src + if(istype(creator, /obj/item/weapon/hand_tele)) + var/obj/item/weapon/hand_tele/O = creator + O.active_portals-- + else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector)) + var/obj/item/weapon/gun/energy/wormhole_projector/P = creator + P.portal_destroyed(src) + creator = null + return ..() + +/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) + if(istype(M, /obj/effect)) //sparks don't teleport + return + if(M.anchored) + if(!(istype(M, /obj/mecha) && mech_sized)) + return + if (!( target )) + qdel(src) + return + if (istype(M, /atom/movable)) + if(ismegafauna(M)) + message_admins("[M] [ADMIN_FLW(M)] has teleported through [src].") + do_teleport(M, target, precision) ///You will appear adjacent to the beacon + + diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm index bfe86bc8ff..a83c6247f8 100644 --- a/code/game/objects/items/devices/PDA/radio.dm +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -8,8 +8,8 @@ var/on = 0 //Are we currently active?? var/menu_message = "" -/obj/item/radio/integrated/Initialize() - . = ..() +/obj/item/radio/integrated/Initialize() + . = ..() if (istype(loc.loc, /obj/item/device/pda)) hostpda = loc.loc diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index fb70d77ff3..e03c85c09a 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -1,145 +1,145 @@ -// Powersink - used to drain station power - -/obj/item/device/powersink - desc = "A nulling power sink which drains energy from electrical systems." - name = "power sink" - icon_state = "powersink0" - item_state = "electronic" - w_class = WEIGHT_CLASS_BULKY - flags = CONDUCT - throwforce = 5 - throw_speed = 1 - throw_range = 2 - materials = list(MAT_METAL=750) - origin_tech = "powerstorage=5;syndicate=5" - var/drain_rate = 1600000 // amount of power to drain per tick - var/power_drained = 0 // has drained this much power - var/max_power = 1e10 // maximum power that can be drained before exploding - var/mode = 0 // 0 = off, 1=clamped (off), 2=operating - var/admins_warned = 0 // stop spam, only warn the admins once that we are about to boom - - var/const/DISCONNECTED = 0 - var/const/CLAMPED_OFF = 1 - var/const/OPERATING = 2 - - var/obj/structure/cable/attached // the attached cable - -/obj/item/device/powersink/update_icon() - icon_state = "powersink[mode == OPERATING]" - -/obj/item/device/powersink/proc/set_mode(value) - if(value == mode) - return - switch(value) - if(DISCONNECTED) - attached = null - if(mode == OPERATING) - STOP_PROCESSING(SSobj, src) - anchored = 0 - - if(CLAMPED_OFF) - if(!attached) - return - if(mode == OPERATING) - STOP_PROCESSING(SSobj, src) - anchored = 1 - - if(OPERATING) - if(!attached) - return - START_PROCESSING(SSobj, src) - anchored = 1 - - mode = value - update_icon() - set_light(0) - -/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - if(mode == DISCONNECTED) - var/turf/T = loc - if(isturf(T) && !T.intact) - attached = locate() in T - if(!attached) - to_chat(user, "This device must be placed over an exposed, powered cable node!") - else - set_mode(CLAMPED_OFF) - user.visible_message( \ - "[user] attaches \the [src] to the cable.", \ - "You attach \the [src] to the cable.", - "You hear some wires being connected to something.") - else - to_chat(user, "This device must be placed over an exposed, powered cable node!") - else - set_mode(DISCONNECTED) - user.visible_message( \ - "[user] detaches \the [src] from the cable.", \ - "You detach \the [src] from the cable.", - "You hear some wires being disconnected from something.") - else - return ..() - -/obj/item/device/powersink/attack_paw() - return - -/obj/item/device/powersink/attack_ai() - return - -/obj/item/device/powersink/attack_hand(mob/user) - switch(mode) - if(DISCONNECTED) - ..() - - if(CLAMPED_OFF) - user.visible_message( \ - "[user] activates \the [src]!", \ - "You activate \the [src].", - "You hear a click.") - message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(src)]") - log_game("Power sink activated by [key_name(user)] at [COORD(src)]") - set_mode(OPERATING) - - if(OPERATING) - user.visible_message( \ - "[user] deactivates \the [src]!", \ - "You deactivate \the [src].", - "You hear a click.") - set_mode(CLAMPED_OFF) - -/obj/item/device/powersink/process() - if(!attached) - set_mode(DISCONNECTED) - return - - var/datum/powernet/PN = attached.powernet - if(PN) - set_light(5) - - // found a powernet, so drain up to max power from it - - var/drained = min ( drain_rate, PN.avail ) - PN.load += drained - power_drained += drained - - // if tried to drain more than available on powernet - // now look for APCs and drain their cells - if(drained < drain_rate) - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/A = T.master - if(A.operating && A.cell) - A.cell.charge = max(0, A.cell.charge - 50) - power_drained += 50 - if(A.charging == 2) // If the cell was full - A.charging = 1 // It's no longer full - - if(power_drained > max_power * 0.98) - if (!admins_warned) - admins_warned = 1 - message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") - playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) - - if(power_drained >= max_power) - STOP_PROCESSING(SSobj, src) - explosion(src.loc, 4,8,16,32) - qdel(src) +// Powersink - used to drain station power + +/obj/item/device/powersink + desc = "A nulling power sink which drains energy from electrical systems." + name = "power sink" + icon_state = "powersink0" + item_state = "electronic" + w_class = WEIGHT_CLASS_BULKY + flags = CONDUCT + throwforce = 5 + throw_speed = 1 + throw_range = 2 + materials = list(MAT_METAL=750) + origin_tech = "powerstorage=5;syndicate=5" + var/drain_rate = 1600000 // amount of power to drain per tick + var/power_drained = 0 // has drained this much power + var/max_power = 1e10 // maximum power that can be drained before exploding + var/mode = 0 // 0 = off, 1=clamped (off), 2=operating + var/admins_warned = 0 // stop spam, only warn the admins once that we are about to boom + + var/const/DISCONNECTED = 0 + var/const/CLAMPED_OFF = 1 + var/const/OPERATING = 2 + + var/obj/structure/cable/attached // the attached cable + +/obj/item/device/powersink/update_icon() + icon_state = "powersink[mode == OPERATING]" + +/obj/item/device/powersink/proc/set_mode(value) + if(value == mode) + return + switch(value) + if(DISCONNECTED) + attached = null + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 0 + + if(CLAMPED_OFF) + if(!attached) + return + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 1 + + if(OPERATING) + if(!attached) + return + START_PROCESSING(SSobj, src) + anchored = 1 + + mode = value + update_icon() + set_light(0) + +/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode == DISCONNECTED) + var/turf/T = loc + if(isturf(T) && !T.intact) + attached = locate() in T + if(!attached) + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + set_mode(CLAMPED_OFF) + user.visible_message( \ + "[user] attaches \the [src] to the cable.", \ + "You attach \the [src] to the cable.", + "You hear some wires being connected to something.") + else + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + set_mode(DISCONNECTED) + user.visible_message( \ + "[user] detaches \the [src] from the cable.", \ + "You detach \the [src] from the cable.", + "You hear some wires being disconnected from something.") + else + return ..() + +/obj/item/device/powersink/attack_paw() + return + +/obj/item/device/powersink/attack_ai() + return + +/obj/item/device/powersink/attack_hand(mob/user) + switch(mode) + if(DISCONNECTED) + ..() + + if(CLAMPED_OFF) + user.visible_message( \ + "[user] activates \the [src]!", \ + "You activate \the [src].", + "You hear a click.") + message_admins("Power sink activated by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(src)]") + log_game("Power sink activated by [key_name(user)] at [COORD(src)]") + set_mode(OPERATING) + + if(OPERATING) + user.visible_message( \ + "[user] deactivates \the [src]!", \ + "You deactivate \the [src].", + "You hear a click.") + set_mode(CLAMPED_OFF) + +/obj/item/device/powersink/process() + if(!attached) + set_mode(DISCONNECTED) + return + + var/datum/powernet/PN = attached.powernet + if(PN) + set_light(5) + + // found a powernet, so drain up to max power from it + + var/drained = min ( drain_rate, PN.avail ) + PN.load += drained + power_drained += drained + + // if tried to drain more than available on powernet + // now look for APCs and drain their cells + if(drained < drain_rate) + for(var/obj/machinery/power/terminal/T in PN.nodes) + if(istype(T.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = T.master + if(A.operating && A.cell) + A.cell.charge = max(0, A.cell.charge - 50) + power_drained += 50 + if(A.charging == 2) // If the cell was full + A.charging = 1 // It's no longer full + + if(power_drained > max_power * 0.98) + if (!admins_warned) + admins_warned = 1 + message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") + playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + + if(power_drained >= max_power) + STOP_PROCESSING(SSobj, src) + explosion(src.loc, 4,8,16,32) + qdel(src) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 78cacb7281..5343e04f78 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -7,8 +7,8 @@ origin_tech = "bluespace=1" dog_fashion = null -/obj/item/device/radio/beacon/Initialize() - . = ..() +/obj/item/device/radio/beacon/Initialize() + . = ..() GLOB.teleportbeacons += src /obj/item/device/radio/beacon/Destroy() diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 2a1397d519..e1be1ca01b 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -11,8 +11,8 @@ var/obj/item/device/encryptionkey/keyslot2 = null dog_fashion = null -/obj/item/device/radio/headset/Initialize() - . = ..() +/obj/item/device/radio/headset/Initialize() + . = ..() recalculateChannels() /obj/item/device/radio/headset/Destroy() @@ -47,21 +47,21 @@ item_state = "syndie_headset" /obj/item/device/radio/headset/syndicate/alt/Initialize(mapload) - . = ..() + . = ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) /obj/item/device/radio/headset/syndicate/alt/leader name = "team leader headset" command = TRUE -/obj/item/device/radio/headset/syndicate/Initialize() - . = ..() +/obj/item/device/radio/headset/syndicate/Initialize() + . = ..() make_syndie() /obj/item/device/radio/headset/binary origin_tech = "syndicate=3" -/obj/item/device/radio/headset/binary/Initialize() - . = ..() +/obj/item/device/radio/headset/binary/Initialize() + . = ..() qdel(keyslot) keyslot = new /obj/item/device/encryptionkey/binary recalculateChannels() @@ -79,7 +79,7 @@ item_state = "sec_headset_alt" /obj/item/device/radio/headset/headset_sec/alt/Initialize(mapload) - . = ..() + . = ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) /obj/item/device/radio/headset/headset_eng @@ -134,7 +134,7 @@ item_state = "com_headset_alt" /obj/item/device/radio/headset/heads/captain/alt/Initialize(mapload) - . = ..() + . = ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) /obj/item/device/radio/headset/heads/rd @@ -156,7 +156,7 @@ item_state = "com_headset_alt" /obj/item/device/radio/headset/heads/hos/alt/Initialize(mapload) - . = ..() + . = ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) /obj/item/device/radio/headset/heads/ce @@ -213,7 +213,7 @@ keyslot = null /obj/item/device/radio/headset/headset_cent/alt/Initialize(mapload) - . = ..() + . = ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) /obj/item/device/radio/headset/ai diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index c975dbff20..a7dceaccf1 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -11,8 +11,8 @@ var/last_tick //used to delay the powercheck dog_fashion = null -/obj/item/device/radio/intercom/Initialize() - . = ..() +/obj/item/device/radio/intercom/Initialize() + . = ..() START_PROCESSING(SSobj, src) /obj/item/device/radio/intercom/Destroy() diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 9296dd9e09..635338fe96 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -1,211 +1,211 @@ -/obj/item/device/transfer_valve - icon = 'icons/obj/assemblies.dmi' - name = "tank transfer valve" - icon_state = "valve_1" - item_state = "ttv" - desc = "Regulates the transfer of air between two tanks" - var/obj/item/weapon/tank/tank_one - var/obj/item/weapon/tank/tank_two - var/obj/item/device/attached_device - var/mob/attacher = null - var/valve_open = 0 - var/toggle = 1 - origin_tech = "materials=1;engineering=1" - -/obj/item/device/transfer_valve/IsAssemblyHolder() - return 1 - -/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params) - if(istype(item, /obj/item/weapon/tank)) - if(tank_one && tank_two) - to_chat(user, "There are already two tanks attached, remove one first!") - return - - if(!tank_one) - if(!user.transferItemToLoc(item, src)) - return - tank_one = item - to_chat(user, "You attach the tank to the transfer valve.") - if(item.w_class > w_class) - w_class = item.w_class - else if(!tank_two) - if(!user.transferItemToLoc(item, src)) - return - tank_two = item - to_chat(user, "You attach the tank to the transfer valve.") - if(item.w_class > w_class) - w_class = item.w_class - - update_icon() -//TODO: Have this take an assemblyholder - else if(isassembly(item)) - var/obj/item/device/assembly/A = item - if(A.secured) - to_chat(user, "The device is secured.") - return - if(attached_device) - to_chat(user, "There is already a device attached to the valve, remove it first!") - return - if(!user.transferItemToLoc(item, src)) - return - attached_device = A - to_chat(user, "You attach the [item] to the valve controls and secure it.") - A.holder = src - A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). - - GLOB.bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") - log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") - attacher = user - return - -/obj/item/device/transfer_valve/attack_self(mob/user) - user.set_machine(src) - var/dat = {" Valve properties: -
Attachment one: [tank_one] [tank_one ? "Remove" : ""] -
Attachment two: [tank_two] [tank_two ? "Remove" : ""] -
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] -
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} - - var/datum/browser/popup = new(user, "trans_valve", name) - popup.set_content(dat) - popup.open() - return - -/obj/item/device/transfer_valve/Topic(href, href_list) - ..() - if ( usr.stat || usr.restrained() ) - return - if (src.loc == usr) - if(tank_one && href_list["tankone"]) - split_gases() - valve_open = 0 - tank_one.loc = get_turf(src) - tank_one = null - update_icon() - if((!tank_two || tank_two.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) - w_class = WEIGHT_CLASS_NORMAL - else if(tank_two && href_list["tanktwo"]) - split_gases() - valve_open = 0 - tank_two.loc = get_turf(src) - tank_two = null - update_icon() - if((!tank_one || tank_one.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) - w_class = WEIGHT_CLASS_NORMAL - else if(href_list["open"]) - toggle_valve() - else if(attached_device) - if(href_list["rem_device"]) - attached_device.loc = get_turf(src) - attached_device:holder = null - attached_device = null - update_icon() - if(href_list["device"]) - attached_device.attack_self(usr) - - src.attack_self(usr) - src.add_fingerprint(usr) - return - return - -/obj/item/device/transfer_valve/proc/process_activation(obj/item/device/D) - if(toggle) - toggle = 0 - toggle_valve() - spawn(50) // To stop a signal being spammed from a proxy sensor constantly going off or whatever - toggle = 1 - -/obj/item/device/transfer_valve/update_icon() - cut_overlays() - underlays = null - - if(!tank_one && !tank_two && !attached_device) - icon_state = "valve_1" - return - icon_state = "valve" - - if(tank_one) - add_overlay("[tank_one.icon_state]") - if(tank_two) - var/icon/J = new(icon, icon_state = "[tank_two.icon_state]") - J.Shift(WEST, 13) - underlays += J - if(attached_device) - add_overlay("device") - -/obj/item/device/transfer_valve/proc/merge_gases() - tank_two.air_contents.volume += tank_one.air_contents.volume - var/datum/gas_mixture/temp - temp = tank_one.air_contents.remove_ratio(1) - tank_two.air_contents.merge(temp) - -/obj/item/device/transfer_valve/proc/split_gases() - if (!valve_open || !tank_one || !tank_two) - return - var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume - var/datum/gas_mixture/temp - temp = tank_two.air_contents.remove_ratio(ratio1) - tank_one.air_contents.merge(temp) - tank_two.air_contents.volume -= tank_one.air_contents.volume - - /* - Exadv1: I know this isn't how it's going to work, but this was just to check - it explodes properly when it gets a signal (and it does). - */ - -/obj/item/device/transfer_valve/proc/toggle_valve() - if(!valve_open && tank_one && tank_two) - valve_open = 1 - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - - var/attachment = "no device" - if(attached_device) - if(istype(attached_device, /obj/item/device/assembly/signaler)) - attachment = "[attached_device]" - else - attachment = attached_device - - var/attacher_name = "" - if(!attacher) - attacher_name = "Unknown" - else - attacher_name = "[key_name_admin(attacher)]" - - var/log_str1 = "Bomb valve opened in " - var/log_str2 = "with [attachment] attacher: [attacher_name]" - - var/log_attacher = "" - if(attacher) - log_attacher = "[ADMIN_QUE(attacher)] [ADMIN_FLW(attacher)]" - - var/mob/mob = get_mob_by_key(src.fingerprintslast) - var/last_touch_info = "" - if(mob) - last_touch_info = "[ADMIN_QUE(mob)] [ADMIN_FLW(mob)]" - - var/log_str3 = " Last touched by: [key_name_admin(mob)]" - - var/bomb_message = "[log_str1] [A.name][ADMIN_JMP(bombturf)] [log_str2][log_attacher] [log_str3][last_touch_info]" - - GLOB.bombers += bomb_message - - message_admins(bomb_message, 0, 1) - log_game("[log_str1] [A.name][COORD(bombturf)] [log_str2] [log_str3]") - merge_gases() - spawn(20) // In case one tank bursts - for (var/i=0,i<5,i++) - src.update_icon() - sleep(10) - src.update_icon() - - else if(valve_open && tank_one && tank_two) - split_gases() - valve_open = 0 - src.update_icon() - -// this doesn't do anything but the timer etc. expects it to be here -// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs -/obj/item/device/transfer_valve/proc/c_state() - return +/obj/item/device/transfer_valve + icon = 'icons/obj/assemblies.dmi' + name = "tank transfer valve" + icon_state = "valve_1" + item_state = "ttv" + desc = "Regulates the transfer of air between two tanks" + var/obj/item/weapon/tank/tank_one + var/obj/item/weapon/tank/tank_two + var/obj/item/device/attached_device + var/mob/attacher = null + var/valve_open = 0 + var/toggle = 1 + origin_tech = "materials=1;engineering=1" + +/obj/item/device/transfer_valve/IsAssemblyHolder() + return 1 + +/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params) + if(istype(item, /obj/item/weapon/tank)) + if(tank_one && tank_two) + to_chat(user, "There are already two tanks attached, remove one first!") + return + + if(!tank_one) + if(!user.transferItemToLoc(item, src)) + return + tank_one = item + to_chat(user, "You attach the tank to the transfer valve.") + if(item.w_class > w_class) + w_class = item.w_class + else if(!tank_two) + if(!user.transferItemToLoc(item, src)) + return + tank_two = item + to_chat(user, "You attach the tank to the transfer valve.") + if(item.w_class > w_class) + w_class = item.w_class + + update_icon() +//TODO: Have this take an assemblyholder + else if(isassembly(item)) + var/obj/item/device/assembly/A = item + if(A.secured) + to_chat(user, "The device is secured.") + return + if(attached_device) + to_chat(user, "There is already a device attached to the valve, remove it first!") + return + if(!user.transferItemToLoc(item, src)) + return + attached_device = A + to_chat(user, "You attach the [item] to the valve controls and secure it.") + A.holder = src + A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). + + GLOB.bombers += "[key_name(user)] attached a [item] to a transfer valve." + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") + attacher = user + return + +/obj/item/device/transfer_valve/attack_self(mob/user) + user.set_machine(src) + var/dat = {" Valve properties: +
Attachment one: [tank_one] [tank_one ? "Remove" : ""] +
Attachment two: [tank_two] [tank_two ? "Remove" : ""] +
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] +
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} + + var/datum/browser/popup = new(user, "trans_valve", name) + popup.set_content(dat) + popup.open() + return + +/obj/item/device/transfer_valve/Topic(href, href_list) + ..() + if ( usr.stat || usr.restrained() ) + return + if (src.loc == usr) + if(tank_one && href_list["tankone"]) + split_gases() + valve_open = 0 + tank_one.loc = get_turf(src) + tank_one = null + update_icon() + if((!tank_two || tank_two.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) + w_class = WEIGHT_CLASS_NORMAL + else if(tank_two && href_list["tanktwo"]) + split_gases() + valve_open = 0 + tank_two.loc = get_turf(src) + tank_two = null + update_icon() + if((!tank_one || tank_one.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) + w_class = WEIGHT_CLASS_NORMAL + else if(href_list["open"]) + toggle_valve() + else if(attached_device) + if(href_list["rem_device"]) + attached_device.loc = get_turf(src) + attached_device:holder = null + attached_device = null + update_icon() + if(href_list["device"]) + attached_device.attack_self(usr) + + src.attack_self(usr) + src.add_fingerprint(usr) + return + return + +/obj/item/device/transfer_valve/proc/process_activation(obj/item/device/D) + if(toggle) + toggle = 0 + toggle_valve() + spawn(50) // To stop a signal being spammed from a proxy sensor constantly going off or whatever + toggle = 1 + +/obj/item/device/transfer_valve/update_icon() + cut_overlays() + underlays = null + + if(!tank_one && !tank_two && !attached_device) + icon_state = "valve_1" + return + icon_state = "valve" + + if(tank_one) + add_overlay("[tank_one.icon_state]") + if(tank_two) + var/icon/J = new(icon, icon_state = "[tank_two.icon_state]") + J.Shift(WEST, 13) + underlays += J + if(attached_device) + add_overlay("device") + +/obj/item/device/transfer_valve/proc/merge_gases() + tank_two.air_contents.volume += tank_one.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_one.air_contents.remove_ratio(1) + tank_two.air_contents.merge(temp) + +/obj/item/device/transfer_valve/proc/split_gases() + if (!valve_open || !tank_one || !tank_two) + return + var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_two.air_contents.remove_ratio(ratio1) + tank_one.air_contents.merge(temp) + tank_two.air_contents.volume -= tank_one.air_contents.volume + + /* + Exadv1: I know this isn't how it's going to work, but this was just to check + it explodes properly when it gets a signal (and it does). + */ + +/obj/item/device/transfer_valve/proc/toggle_valve() + if(!valve_open && tank_one && tank_two) + valve_open = 1 + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + + var/attachment = "no device" + if(attached_device) + if(istype(attached_device, /obj/item/device/assembly/signaler)) + attachment = "[attached_device]" + else + attachment = attached_device + + var/attacher_name = "" + if(!attacher) + attacher_name = "Unknown" + else + attacher_name = "[key_name_admin(attacher)]" + + var/log_str1 = "Bomb valve opened in " + var/log_str2 = "with [attachment] attacher: [attacher_name]" + + var/log_attacher = "" + if(attacher) + log_attacher = "[ADMIN_QUE(attacher)] [ADMIN_FLW(attacher)]" + + var/mob/mob = get_mob_by_key(src.fingerprintslast) + var/last_touch_info = "" + if(mob) + last_touch_info = "[ADMIN_QUE(mob)] [ADMIN_FLW(mob)]" + + var/log_str3 = " Last touched by: [key_name_admin(mob)]" + + var/bomb_message = "[log_str1] [A.name][ADMIN_JMP(bombturf)] [log_str2][log_attacher] [log_str3][last_touch_info]" + + GLOB.bombers += bomb_message + + message_admins(bomb_message, 0, 1) + log_game("[log_str1] [A.name][COORD(bombturf)] [log_str2] [log_str3]") + merge_gases() + spawn(20) // In case one tank bursts + for (var/i=0,i<5,i++) + src.update_icon() + sleep(10) + src.update_icon() + + else if(valve_open && tank_one && tank_two) + split_gases() + valve_open = 0 + src.update_icon() + +// this doesn't do anything but the timer etc. expects it to be here +// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs +/obj/item/device/transfer_valve/proc/c_state() + return diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index f0fd4947f2..c50ef26b81 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -50,7 +50,7 @@ M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) M.updateappearance(mutations_overlay_update=1) log_attack(log_msg) - return TRUE + return TRUE /obj/item/weapon/dnainjector/attack(mob/target, mob/user) if(!user.IsAdvancedToolUser()) @@ -77,9 +77,9 @@ add_logs(user, target, "injected", src) - if(!inject(target, user)) //Now we actually do the heavy lifting. - to_chat(user, "It appears that [target] does not have compatible DNA.") - + if(!inject(target, user)) //Now we actually do the heavy lifting. + to_chat(user, "It appears that [target] does not have compatible DNA.") + used = 1 icon_state = "dnainjector0" desc += " This one is used up." diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 81ccd127c8..a5f5eb6133 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -48,27 +48,27 @@ /obj/item/weapon/grenade/attack_self(mob/user) if(!active) if(clown_check(user)) - preprime(user) + preprime(user) if(iscarbon(user)) var/mob/living/carbon/C = user C.throw_mode_on() -/obj/item/weapon/grenade/proc/preprime(mob/user) - if(user) - to_chat(user, "You prime the [name]! [det_time/10] seconds!") - playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) - active = TRUE - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - if(user) - var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" - GLOB.bombers += message - message_admins(message) - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - - addtimer(CALLBACK(src, .proc/prime), det_time) +/obj/item/weapon/grenade/proc/preprime(mob/user) + if(user) + to_chat(user, "You prime the [name]! [det_time/10] seconds!") + playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) + active = TRUE + icon_state = initial(icon_state) + "_active" + add_fingerprint(user) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + if(user) + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" + GLOB.bombers += message + message_admins(message) + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + + addtimer(CALLBACK(src, .proc/prime), det_time) /obj/item/weapon/grenade/proc/prime() @@ -108,4 +108,4 @@ if(damage && attack_type == PROJECTILE_ATTACK && prob(15)) owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") prime() - return 1 //It hit the grenade, not them + return 1 //It hit the grenade, not them diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm index 2cc1e7824f..9d7516faac 100644 --- a/code/game/objects/items/weapons/implants/implantchair.dm +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -1,189 +1,189 @@ -/obj/machinery/implantchair - name = "mindshield implanter" - desc = "Used to implant occupants with mindshield implants." - icon = 'icons/obj/machines/implantchair.dmi' - icon_state = "implantchair" - density = 1 - opacity = 0 - anchored = TRUE - - var/ready = TRUE - var/replenishing = FALSE - - var/ready_implants = 5 - var/max_implants = 5 - var/injection_cooldown = 600 - var/replenish_cooldown = 6000 - var/implant_type = /obj/item/weapon/implant/mindshield - var/auto_inject = FALSE - var/auto_replenish = TRUE - var/special = FALSE - var/special_name = "special function" - -/obj/machinery/implantchair/New() - ..() - open_machine() - update_icon() - - -/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) - - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state) - ui.open() - - -/obj/machinery/implantchair/ui_data() - var/list/data = list() - data["occupied"] = occupant ? 1 : 0 - data["open"] = state_open - - data["occupant"] = list() - if(occupant) - var/mob/living/mob_occupant = occupant - data["occupant"]["name"] = mob_occupant.name - data["occupant"]["stat"] = mob_occupant.stat - - data["special_name"] = special ? special_name : null - data["ready_implants"] = ready_implants - data["ready"] = ready - data["replenishing"] = replenishing - - return data - -/obj/machinery/implantchair/ui_act(action, params) - if(..()) - return - switch(action) - if("door") - if(state_open) - close_machine() - else - open_machine() - . = TRUE - if("implant") - implant(occupant,usr) - . = TRUE - -/obj/machinery/implantchair/proc/implant(mob/living/M,mob/user) - if (!istype(M)) - return - if(!ready_implants || !ready) - return - if(implant_action(M,user)) - ready_implants-- - if(!replenishing && auto_replenish) - replenishing = TRUE - addtimer(CALLBACK(src,"replenish"),replenish_cooldown) - if(injection_cooldown > 0) - ready = FALSE - addtimer(CALLBACK(src,"set_ready"),injection_cooldown) - else - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, 1) - update_icon() - -/obj/machinery/implantchair/proc/implant_action(mob/living/M) - var/obj/item/weapon/implant/I = new implant_type - if(I.implant(M)) - visible_message("[M] has been implanted by the [name].") - return 1 - -/obj/machinery/implantchair/update_icon() - icon_state = initial(icon_state) - if(state_open) - icon_state += "_open" - if(occupant) - icon_state += "_occupied" - if(ready) - add_overlay("ready") - else - cut_overlays() - -/obj/machinery/implantchair/proc/replenish() - if(ready_implants < max_implants) - ready_implants++ - if(ready_implants < max_implants) - addtimer(CALLBACK(src,"replenish"),replenish_cooldown) - else - replenishing = FALSE - -/obj/machinery/implantchair/proc/set_ready() - ready = TRUE - update_icon() - -/obj/machinery/implantchair/container_resist(mob/living/user) - if(state_open) - return - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - to_chat(user, "You lean on the back of [src] and start pushing the door open... (this will take about about a minute.)") - audible_message("You hear a metallic creaking from [src]!",hearing_distance = 2) - - if(do_after(user, 600, target = src)) - if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) - return - visible_message("[user] successfully broke out of [src]!") - to_chat(user, "You successfully break out of [src]!") - open_machine() - -/obj/machinery/implantchair/relaymove(mob/user) - container_resist(user) - -/obj/machinery/implantchair/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !isliving(target) || !user.IsAdvancedToolUser()) - return - close_machine(target) - -/obj/machinery/implantchair/close_machine(mob/living/user) - if((isnull(user) || istype(user)) && state_open) - ..(user) - if(auto_inject && ready && ready_implants > 0) - implant(user,null) - -/obj/machinery/implantchair/genepurge - name = "Genetic purifier" - desc = "Used to purge human genome of foreign influences" - special = TRUE - special_name = "Purge genome" - injection_cooldown = 0 - replenish_cooldown = 300 - -/obj/machinery/implantchair/genepurge/implant_action(mob/living/carbon/human/H,mob/user) - if(!istype(H)) - return 0 - H.set_species(/datum/species/human, 1)//lizards go home - purrbation_remove(H)//remove cats - H.dna.remove_all_mutations()//hulks out - return 1 - - -/obj/machinery/implantchair/brainwash - name = "Neural Imprinter" - desc = "Used to indoctrinate rehabilitate hardened recidivists." - special_name = "Imprint" - injection_cooldown = 3000 - auto_inject = FALSE - auto_replenish = FALSE - special = TRUE - var/objective = "Obey the law. Praise Nanotrasen." - var/custom = FALSE - -/obj/machinery/implantchair/brainwash/implant_action(mob/living/C,mob/user) - if(!istype(C) || !C.mind) // I don't know how this makes any sense for silicons but laws trump objectives anyway. - return 0 - if(custom) - if(!user || !user.Adjacent(src)) - return 0 - objective = stripped_input(usr,"What order do you want to imprint on [C]?","Enter the order","",120) - message_admins("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") - log_game("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") - var/datum/objective/custom_objective = new/datum/objective(objective) - custom_objective.owner = C.mind - C.mind.objectives += custom_objective - C.mind.announce_objectives() - message_admins("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") - log_game("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") - return 1 - +/obj/machinery/implantchair + name = "mindshield implanter" + desc = "Used to implant occupants with mindshield implants." + icon = 'icons/obj/machines/implantchair.dmi' + icon_state = "implantchair" + density = 1 + opacity = 0 + anchored = TRUE + + var/ready = TRUE + var/replenishing = FALSE + + var/ready_implants = 5 + var/max_implants = 5 + var/injection_cooldown = 600 + var/replenish_cooldown = 6000 + var/implant_type = /obj/item/weapon/implant/mindshield + var/auto_inject = FALSE + var/auto_replenish = TRUE + var/special = FALSE + var/special_name = "special function" + +/obj/machinery/implantchair/New() + ..() + open_machine() + update_icon() + + +/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state) + ui.open() + + +/obj/machinery/implantchair/ui_data() + var/list/data = list() + data["occupied"] = occupant ? 1 : 0 + data["open"] = state_open + + data["occupant"] = list() + if(occupant) + var/mob/living/mob_occupant = occupant + data["occupant"]["name"] = mob_occupant.name + data["occupant"]["stat"] = mob_occupant.stat + + data["special_name"] = special ? special_name : null + data["ready_implants"] = ready_implants + data["ready"] = ready + data["replenishing"] = replenishing + + return data + +/obj/machinery/implantchair/ui_act(action, params) + if(..()) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + open_machine() + . = TRUE + if("implant") + implant(occupant,usr) + . = TRUE + +/obj/machinery/implantchair/proc/implant(mob/living/M,mob/user) + if (!istype(M)) + return + if(!ready_implants || !ready) + return + if(implant_action(M,user)) + ready_implants-- + if(!replenishing && auto_replenish) + replenishing = TRUE + addtimer(CALLBACK(src,"replenish"),replenish_cooldown) + if(injection_cooldown > 0) + ready = FALSE + addtimer(CALLBACK(src,"set_ready"),injection_cooldown) + else + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, 1) + update_icon() + +/obj/machinery/implantchair/proc/implant_action(mob/living/M) + var/obj/item/weapon/implant/I = new implant_type + if(I.implant(M)) + visible_message("[M] has been implanted by the [name].") + return 1 + +/obj/machinery/implantchair/update_icon() + icon_state = initial(icon_state) + if(state_open) + icon_state += "_open" + if(occupant) + icon_state += "_occupied" + if(ready) + add_overlay("ready") + else + cut_overlays() + +/obj/machinery/implantchair/proc/replenish() + if(ready_implants < max_implants) + ready_implants++ + if(ready_implants < max_implants) + addtimer(CALLBACK(src,"replenish"),replenish_cooldown) + else + replenishing = FALSE + +/obj/machinery/implantchair/proc/set_ready() + ready = TRUE + update_icon() + +/obj/machinery/implantchair/container_resist(mob/living/user) + if(state_open) + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + to_chat(user, "You lean on the back of [src] and start pushing the door open... (this will take about about a minute.)") + audible_message("You hear a metallic creaking from [src]!",hearing_distance = 2) + + if(do_after(user, 600, target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) + return + visible_message("[user] successfully broke out of [src]!") + to_chat(user, "You successfully break out of [src]!") + open_machine() + +/obj/machinery/implantchair/relaymove(mob/user) + container_resist(user) + +/obj/machinery/implantchair/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !isliving(target) || !user.IsAdvancedToolUser()) + return + close_machine(target) + +/obj/machinery/implantchair/close_machine(mob/living/user) + if((isnull(user) || istype(user)) && state_open) + ..(user) + if(auto_inject && ready && ready_implants > 0) + implant(user,null) + +/obj/machinery/implantchair/genepurge + name = "Genetic purifier" + desc = "Used to purge human genome of foreign influences" + special = TRUE + special_name = "Purge genome" + injection_cooldown = 0 + replenish_cooldown = 300 + +/obj/machinery/implantchair/genepurge/implant_action(mob/living/carbon/human/H,mob/user) + if(!istype(H)) + return 0 + H.set_species(/datum/species/human, 1)//lizards go home + purrbation_remove(H)//remove cats + H.dna.remove_all_mutations()//hulks out + return 1 + + +/obj/machinery/implantchair/brainwash + name = "Neural Imprinter" + desc = "Used to indoctrinate rehabilitate hardened recidivists." + special_name = "Imprint" + injection_cooldown = 3000 + auto_inject = FALSE + auto_replenish = FALSE + special = TRUE + var/objective = "Obey the law. Praise Nanotrasen." + var/custom = FALSE + +/obj/machinery/implantchair/brainwash/implant_action(mob/living/C,mob/user) + if(!istype(C) || !C.mind) // I don't know how this makes any sense for silicons but laws trump objectives anyway. + return 0 + if(custom) + if(!user || !user.Adjacent(src)) + return 0 + objective = stripped_input(usr,"What order do you want to imprint on [C]?","Enter the order","",120) + message_admins("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") + log_game("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") + var/datum/objective/custom_objective = new/datum/objective(objective) + custom_objective.owner = C.mind + C.mind.objectives += custom_objective + C.mind.announce_objectives() + message_admins("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + log_game("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + return 1 + diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 1962fbd818..90e7d1be1a 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,305 +1,305 @@ -/obj/item/weapon/storage/box/syndicate - -/obj/item/weapon/storage/box/syndicate/PopulateContents() - switch (pickweight(list("bloodyspai" = 3, "stealth" = 2, "bond" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "darklord" = 1, "sniper" = 1, "metaops" = 1, "ninja" = 1))) - if("bloodyspai") // 27 tc now this is more right - new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set - new /obj/item/clothing/mask/chameleon(src) // Goes with above - new /obj/item/weapon/card/id/syndicate(src) // 2 tc - new /obj/item/clothing/shoes/chameleon(src) // 2 tc - new /obj/item/device/camera_bug(src) // 1 tc - new /obj/item/device/multitool/ai_detect(src) // 1 tc - new /obj/item/device/encryptionkey/syndicate(src) // 2 tc - new /obj/item/weapon/reagent_containers/syringe/mulligan(src) // 4 tc - new /obj/item/weapon/switchblade(src) //I'll count this as 2 tc - new /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals - new /obj/item/device/flashlight/emp(src) // 2 tc - new /obj/item/device/chameleon(src) // 7 tc - - if("stealth") // 31 tc - new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src) - new /obj/item/weapon/pen/sleepy(src) - new /obj/item/device/healthanalyzer/rad_laser(src) - new /obj/item/device/chameleon(src) - new /obj/item/weapon/soap/syndie(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - - if("bond") // 29 tc - new /obj/item/weapon/gun/ballistic/automatic/pistol(src) - new /obj/item/weapon/suppressor(src) - new /obj/item/ammo_box/magazine/m10mm(src) - new /obj/item/ammo_box/magazine/m10mm(src) - new /obj/item/clothing/under/chameleon(src) - new /obj/item/weapon/card/id/syndicate(src) - new /obj/item/weapon/reagent_containers/syringe/stimulants(src) - - if("screwed") // 29 tc - new /obj/item/device/sbeacondrop/bomb(src) - new /obj/item/weapon/grenade/syndieminibomb(src) - new /obj/item/device/sbeacondrop/powersink(src) - new /obj/item/clothing/suit/space/syndicate/black/red(src) - new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) - new /obj/item/device/encryptionkey/syndicate(src) - - if("guns") // 28 tc now - new /obj/item/weapon/gun/ballistic/revolver(src) - new /obj/item/ammo_box/a357(src) - new /obj/item/ammo_box/a357(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/weapon/grenade/plastic/c4(src) - new /obj/item/clothing/gloves/color/latex/nitrile(src) - new /obj/item/clothing/mask/gas/clown_hat(src) - new /obj/item/clothing/under/suit_jacket/really_black(src) - - if("murder") // 28 tc now - new /obj/item/weapon/melee/energy/sword/saber(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/clothing/shoes/chameleon(src) - new /obj/item/device/encryptionkey/syndicate(src) - new /obj/item/weapon/grenade/syndieminibomb(src) - - if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? - new /obj/item/weapon/implanter/freedom(src) - new /obj/item/weapon/implanter/uplink/precharged(src) - new /obj/item/weapon/implanter/emp(src) - new /obj/item/weapon/implanter/adrenalin(src) - new /obj/item/weapon/implanter/explosive(src) - new /obj/item/weapon/implanter/storage(src) - - if("hacker") // 26 tc - new /obj/item/weapon/aiModule/syndicate(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) - new /obj/item/weapon/aiModule/toyAI(src) - new /obj/item/device/multitool/ai_detect(src) - - if("lordsingulo") // 24 tc - new /obj/item/device/sbeacondrop(src) - new /obj/item/clothing/suit/space/syndicate/black/red(src) - new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) - new /obj/item/weapon/card/emag(src) - - if("sabotage") // 26 tc now - new /obj/item/weapon/grenade/plastic/c4 (src) - new /obj/item/weapon/grenade/plastic/c4 (src) - new /obj/item/device/doorCharge(src) - 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/storage/toolbox/syndicate(src) //To actually get to those places - new /obj/item/pizzabox/bomb - - if("darklord") //20 tc + tk + summon item close enough for now - new /obj/item/weapon/twohanded/dualsaber(src) - new /obj/item/weapon/dnainjector/telemut/darkbundle(src) - new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) - new /obj/item/weapon/card/id/syndicate(src) - new /obj/item/clothing/shoes/chameleon(src) //because slipping while being a dark lord sucks - new /obj/item/weapon/spellbook/oneuse/summonitem(src) - - if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks - new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(src) // 12 tc - new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/clothing/gloves/color/latex/nitrile(src) - new /obj/item/clothing/mask/gas/clown_hat(src) - new /obj/item/clothing/under/suit_jacket/really_black(src) - - if("metaops") // 30 tc - new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc - new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted(src) // 8 tc - new /obj/item/weapon/implanter/explosive(src) // 2 tc - new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc - new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc - new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc - new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc - new /obj/item/weapon/card/emag(src) // 6 tc - - if("ninja") // 33 tc worth - new /obj/item/weapon/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc? - new /obj/item/weapon/implanter/adrenalin(src) // 8 tc - new /obj/item/weapon/throwing_star(src) // ~5 tc for all 6 - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/storage/belt/chameleon(src) // Unique but worth at least 2 tc - new /obj/item/weapon/card/id/syndicate(src) // 2 tc - new /obj/item/device/chameleon(src) // 7 tc - -/obj/item/weapon/storage/box/syndie_kit - name = "box" - desc = "A sleek, sturdy box." - icon_state = "syndiebox" - illustration = "writing_syndie" - -/obj/item/weapon/storage/box/syndie_kit/imp_freedom - name = "boxed freedom implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_freedom/PopulateContents() - var/obj/item/weapon/implanter/O = new(src) - O.imp = new /obj/item/weapon/implant/freedom(O) - O.update_icon() - -/obj/item/weapon/storage/box/syndie_kit/imp_microbomb - name = "Microbomb Implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_microbomb/PopulateContents() - var/obj/item/weapon/implanter/O = new(src) - O.imp = new /obj/item/weapon/implant/explosive(O) - O.update_icon() - -/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb - name = "Macrobomb Implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb/PopulateContents() - var/obj/item/weapon/implanter/O = new(src) - O.imp = new /obj/item/weapon/implant/explosive/macro(O) - O.update_icon() - -/obj/item/weapon/storage/box/syndie_kit/imp_uplink - name = "boxed uplink implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_uplink/PopulateContents() - ..() - var/obj/item/weapon/implanter/O = new(src) - O.imp = new /obj/item/weapon/implant/uplink(O) - O.update_icon() - -/obj/item/weapon/storage/box/syndie_kit/bioterror - name = "bioterror syringe box" - -/obj/item/weapon/storage/box/syndie_kit/bioterror/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/weapon/reagent_containers/syringe/bioterror(src) - -/obj/item/weapon/storage/box/syndie_kit/imp_adrenal - name = "boxed adrenal implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_adrenal/PopulateContents() - var/obj/item/weapon/implanter/O = new(src) - O.imp = new /obj/item/weapon/implant/adrenalin(O) - O.update_icon() - -/obj/item/weapon/storage/box/syndie_kit/imp_storage - name = "boxed storage implant (with injector)" - -/obj/item/weapon/storage/box/syndie_kit/imp_storage/PopulateContents() - new /obj/item/weapon/implanter/storage(src) - -/obj/item/weapon/storage/box/syndie_kit/space - name = "boxed space suit and helmet" - can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate) - max_w_class = WEIGHT_CLASS_NORMAL - -/obj/item/weapon/storage/box/syndie_kit/space/PopulateContents() - new /obj/item/clothing/suit/space/syndicate/black/red(src) // Black and red is so in right now - new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) - -/obj/item/weapon/storage/box/syndie_kit/emp - name = "boxed EMP kit" - -/obj/item/weapon/storage/box/syndie_kit/emp/PopulateContents() - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/grenade/empgrenade(src) - new /obj/item/weapon/implanter/emp(src) - -/obj/item/weapon/storage/box/syndie_kit/chemical - name = "boxed chemical kit" - storage_slots = 14 - -/obj/item/weapon/storage/box/syndie_kit/chemical/PopulateContents() - new /obj/item/weapon/reagent_containers/glass/bottle/polonium(src) - new /obj/item/weapon/reagent_containers/glass/bottle/venom(src) - new /obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2(src) - new /obj/item/weapon/reagent_containers/glass/bottle/formaldehyde(src) - new /obj/item/weapon/reagent_containers/glass/bottle/spewium(src) - new /obj/item/weapon/reagent_containers/glass/bottle/cyanide(src) - new /obj/item/weapon/reagent_containers/glass/bottle/histamine(src) - new /obj/item/weapon/reagent_containers/glass/bottle/initropidril(src) - new /obj/item/weapon/reagent_containers/glass/bottle/pancuronium(src) - new /obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental(src) - new /obj/item/weapon/reagent_containers/glass/bottle/coniine(src) - new /obj/item/weapon/reagent_containers/glass/bottle/curare(src) - new /obj/item/weapon/reagent_containers/glass/bottle/amanitin(src) - new /obj/item/weapon/reagent_containers/syringe(src) - -/obj/item/weapon/storage/box/syndie_kit/nuke - name = "box" - -/obj/item/weapon/storage/box/syndie_kit/nuke/PopulateContents() - new /obj/item/weapon/screwdriver/nuke(src) - new /obj/item/nuke_core_container(src) - new /obj/item/weapon/paper/nuke_instructions(src) - -/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade - name = "boxed virus grenade kit" - -/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade/PopulateContents() - new /obj/item/weapon/grenade/chem_grenade/tuberculosis(src) - for(var/i in 1 to 5) - new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src) - new /obj/item/weapon/reagent_containers/syringe(src) - new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src) - -/obj/item/weapon/storage/box/syndie_kit/chameleon - name = "chameleon kit" - -/obj/item/weapon/storage/box/syndie_kit/chameleon/PopulateContents() - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/suit/chameleon(src) - new /obj/item/clothing/gloves/chameleon(src) - new /obj/item/clothing/shoes/chameleon(src) - new /obj/item/clothing/glasses/chameleon(src) - new /obj/item/clothing/head/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/weapon/storage/backpack/chameleon(src) - new /obj/item/device/radio/headset/chameleon(src) - new /obj/item/weapon/stamp/chameleon(src) - new /obj/item/device/pda/chameleon(src) - new /obj/item/weapon/gun/energy/laser/chameleon(src) - -//5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars. -//Not counting the damage it will do while embedded (2*4 = 8, at 15% chance) -/obj/item/weapon/storage/box/syndie_kit/throwing_weapons/PopulateContents() - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/throwing_star(src) - new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) - new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) - -/obj/item/weapon/storage/box/syndie_kit/cutouts/PopulateContents() - for(var/i in 1 to 3) - new/obj/item/cardboard_cutout/adaptive(src) - new/obj/item/toy/crayon/rainbow(src) - -/obj/item/weapon/storage/box/syndie_kit/romerol/PopulateContents() - new /obj/item/weapon/reagent_containers/glass/bottle/romerol(src) - new /obj/item/weapon/reagent_containers/syringe(src) - new /obj/item/weapon/reagent_containers/dropper(src) - -/obj/item/weapon/storage/box/syndie_kit/ez_clean/PopulateContents() - for(var/i in 1 to 3) - new/obj/item/weapon/grenade/chem_grenade/ez_clean(src) - -/obj/item/weapon/storage/box/hug/reverse_revolver/PopulateContents() - new /obj/item/weapon/gun/ballistic/revolver/reverse(src) - -/obj/item/weapon/storage/box/syndie_kit/mimery/PopulateContents() - new /obj/item/weapon/spellbook/oneuse/mimery_blockade(src) - new /obj/item/weapon/spellbook/oneuse/mimery_guns(src) - -/obj/item/weapon/storage/box/syndie_kit/holoparasite - name = "box" - -/obj/item/weapon/storage/box/syndie_kit/holoparasite/PopulateContents() - new /obj/item/weapon/guardiancreator/tech/choose/traitor(src) +/obj/item/weapon/storage/box/syndicate + +/obj/item/weapon/storage/box/syndicate/PopulateContents() + switch (pickweight(list("bloodyspai" = 3, "stealth" = 2, "bond" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "darklord" = 1, "sniper" = 1, "metaops" = 1, "ninja" = 1))) + if("bloodyspai") // 27 tc now this is more right + new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set + new /obj/item/clothing/mask/chameleon(src) // Goes with above + new /obj/item/weapon/card/id/syndicate(src) // 2 tc + new /obj/item/clothing/shoes/chameleon(src) // 2 tc + new /obj/item/device/camera_bug(src) // 1 tc + new /obj/item/device/multitool/ai_detect(src) // 1 tc + new /obj/item/device/encryptionkey/syndicate(src) // 2 tc + new /obj/item/weapon/reagent_containers/syringe/mulligan(src) // 4 tc + new /obj/item/weapon/switchblade(src) //I'll count this as 2 tc + new /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals + new /obj/item/device/flashlight/emp(src) // 2 tc + new /obj/item/device/chameleon(src) // 7 tc + + if("stealth") // 31 tc + new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src) + new /obj/item/weapon/pen/sleepy(src) + new /obj/item/device/healthanalyzer/rad_laser(src) + new /obj/item/device/chameleon(src) + new /obj/item/weapon/soap/syndie(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + + if("bond") // 29 tc + new /obj/item/weapon/gun/ballistic/automatic/pistol(src) + new /obj/item/weapon/suppressor(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/clothing/under/chameleon(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/weapon/reagent_containers/syringe/stimulants(src) + + if("screwed") // 29 tc + new /obj/item/device/sbeacondrop/bomb(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/device/sbeacondrop/powersink(src) + new /obj/item/clothing/suit/space/syndicate/black/red(src) + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + new /obj/item/device/encryptionkey/syndicate(src) + + if("guns") // 28 tc now + new /obj/item/weapon/gun/ballistic/revolver(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/grenade/plastic/c4(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/clothing/mask/gas/clown_hat(src) + new /obj/item/clothing/under/suit_jacket/really_black(src) + + if("murder") // 28 tc now + new /obj/item/weapon/melee/energy/sword/saber(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/clothing/shoes/chameleon(src) + new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + + if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? + new /obj/item/weapon/implanter/freedom(src) + new /obj/item/weapon/implanter/uplink/precharged(src) + new /obj/item/weapon/implanter/emp(src) + new /obj/item/weapon/implanter/adrenalin(src) + new /obj/item/weapon/implanter/explosive(src) + new /obj/item/weapon/implanter/storage(src) + + if("hacker") // 26 tc + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) + new /obj/item/weapon/aiModule/toyAI(src) + new /obj/item/device/multitool/ai_detect(src) + + if("lordsingulo") // 24 tc + new /obj/item/device/sbeacondrop(src) + new /obj/item/clothing/suit/space/syndicate/black/red(src) + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + new /obj/item/weapon/card/emag(src) + + if("sabotage") // 26 tc now + new /obj/item/weapon/grenade/plastic/c4 (src) + new /obj/item/weapon/grenade/plastic/c4 (src) + new /obj/item/device/doorCharge(src) + 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/storage/toolbox/syndicate(src) //To actually get to those places + new /obj/item/pizzabox/bomb + + if("darklord") //20 tc + tk + summon item close enough for now + new /obj/item/weapon/twohanded/dualsaber(src) + new /obj/item/weapon/dnainjector/telemut/darkbundle(src) + new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/clothing/shoes/chameleon(src) //because slipping while being a dark lord sucks + new /obj/item/weapon/spellbook/oneuse/summonitem(src) + + if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks + new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(src) // 12 tc + new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/clothing/mask/gas/clown_hat(src) + new /obj/item/clothing/under/suit_jacket/really_black(src) + + if("metaops") // 30 tc + new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc + new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted(src) // 8 tc + new /obj/item/weapon/implanter/explosive(src) // 2 tc + new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc + new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc + new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc + new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc + new /obj/item/weapon/card/emag(src) // 6 tc + + if("ninja") // 33 tc worth + new /obj/item/weapon/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc? + new /obj/item/weapon/implanter/adrenalin(src) // 8 tc + new /obj/item/weapon/throwing_star(src) // ~5 tc for all 6 + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/storage/belt/chameleon(src) // Unique but worth at least 2 tc + new /obj/item/weapon/card/id/syndicate(src) // 2 tc + new /obj/item/device/chameleon(src) // 7 tc + +/obj/item/weapon/storage/box/syndie_kit + name = "box" + desc = "A sleek, sturdy box." + icon_state = "syndiebox" + illustration = "writing_syndie" + +/obj/item/weapon/storage/box/syndie_kit/imp_freedom + name = "boxed freedom implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/PopulateContents() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/freedom(O) + O.update_icon() + +/obj/item/weapon/storage/box/syndie_kit/imp_microbomb + name = "Microbomb Implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_microbomb/PopulateContents() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/explosive(O) + O.update_icon() + +/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb + name = "Macrobomb Implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb/PopulateContents() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/explosive/macro(O) + O.update_icon() + +/obj/item/weapon/storage/box/syndie_kit/imp_uplink + name = "boxed uplink implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/PopulateContents() + ..() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/uplink(O) + O.update_icon() + +/obj/item/weapon/storage/box/syndie_kit/bioterror + name = "bioterror syringe box" + +/obj/item/weapon/storage/box/syndie_kit/bioterror/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + +/obj/item/weapon/storage/box/syndie_kit/imp_adrenal + name = "boxed adrenal implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_adrenal/PopulateContents() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/adrenalin(O) + O.update_icon() + +/obj/item/weapon/storage/box/syndie_kit/imp_storage + name = "boxed storage implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_storage/PopulateContents() + new /obj/item/weapon/implanter/storage(src) + +/obj/item/weapon/storage/box/syndie_kit/space + name = "boxed space suit and helmet" + can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate) + max_w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/storage/box/syndie_kit/space/PopulateContents() + new /obj/item/clothing/suit/space/syndicate/black/red(src) // Black and red is so in right now + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + +/obj/item/weapon/storage/box/syndie_kit/emp + name = "boxed EMP kit" + +/obj/item/weapon/storage/box/syndie_kit/emp/PopulateContents() + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/implanter/emp(src) + +/obj/item/weapon/storage/box/syndie_kit/chemical + name = "boxed chemical kit" + storage_slots = 14 + +/obj/item/weapon/storage/box/syndie_kit/chemical/PopulateContents() + new /obj/item/weapon/reagent_containers/glass/bottle/polonium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/venom(src) + new /obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2(src) + new /obj/item/weapon/reagent_containers/glass/bottle/formaldehyde(src) + new /obj/item/weapon/reagent_containers/glass/bottle/spewium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/cyanide(src) + new /obj/item/weapon/reagent_containers/glass/bottle/histamine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/initropidril(src) + new /obj/item/weapon/reagent_containers/glass/bottle/pancuronium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental(src) + new /obj/item/weapon/reagent_containers/glass/bottle/coniine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/curare(src) + new /obj/item/weapon/reagent_containers/glass/bottle/amanitin(src) + new /obj/item/weapon/reagent_containers/syringe(src) + +/obj/item/weapon/storage/box/syndie_kit/nuke + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/nuke/PopulateContents() + new /obj/item/weapon/screwdriver/nuke(src) + new /obj/item/nuke_core_container(src) + new /obj/item/weapon/paper/nuke_instructions(src) + +/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade + name = "boxed virus grenade kit" + +/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade/PopulateContents() + new /obj/item/weapon/grenade/chem_grenade/tuberculosis(src) + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src) + new /obj/item/weapon/reagent_containers/syringe(src) + new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src) + +/obj/item/weapon/storage/box/syndie_kit/chameleon + name = "chameleon kit" + +/obj/item/weapon/storage/box/syndie_kit/chameleon/PopulateContents() + new /obj/item/clothing/under/chameleon(src) + new /obj/item/clothing/suit/chameleon(src) + new /obj/item/clothing/gloves/chameleon(src) + new /obj/item/clothing/shoes/chameleon(src) + new /obj/item/clothing/glasses/chameleon(src) + new /obj/item/clothing/head/chameleon(src) + new /obj/item/clothing/mask/chameleon(src) + new /obj/item/weapon/storage/backpack/chameleon(src) + new /obj/item/device/radio/headset/chameleon(src) + new /obj/item/weapon/stamp/chameleon(src) + new /obj/item/device/pda/chameleon(src) + new /obj/item/weapon/gun/energy/laser/chameleon(src) + +//5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars. +//Not counting the damage it will do while embedded (2*4 = 8, at 15% chance) +/obj/item/weapon/storage/box/syndie_kit/throwing_weapons/PopulateContents() + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) + new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) + +/obj/item/weapon/storage/box/syndie_kit/cutouts/PopulateContents() + for(var/i in 1 to 3) + new/obj/item/cardboard_cutout/adaptive(src) + new/obj/item/toy/crayon/rainbow(src) + +/obj/item/weapon/storage/box/syndie_kit/romerol/PopulateContents() + new /obj/item/weapon/reagent_containers/glass/bottle/romerol(src) + new /obj/item/weapon/reagent_containers/syringe(src) + new /obj/item/weapon/reagent_containers/dropper(src) + +/obj/item/weapon/storage/box/syndie_kit/ez_clean/PopulateContents() + for(var/i in 1 to 3) + new/obj/item/weapon/grenade/chem_grenade/ez_clean(src) + +/obj/item/weapon/storage/box/hug/reverse_revolver/PopulateContents() + new /obj/item/weapon/gun/ballistic/revolver/reverse(src) + +/obj/item/weapon/storage/box/syndie_kit/mimery/PopulateContents() + new /obj/item/weapon/spellbook/oneuse/mimery_blockade(src) + new /obj/item/weapon/spellbook/oneuse/mimery_guns(src) + +/obj/item/weapon/storage/box/syndie_kit/holoparasite + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/holoparasite/PopulateContents() + new /obj/item/weapon/guardiancreator/tech/choose/traitor(src) new /obj/item/weapon/paper/guardian(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm old mode 100644 new mode 100755 index 97548b97d6..4ffa4a9b89 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -140,8 +140,8 @@ item_state = "plasmaman_tank_belt" slot_flags = SLOT_BELT force = 5 - volume = 3 - w_class = WEIGHT_CLASS_SMALL //thanks i forgot this + volume = 3 + w_class = WEIGHT_CLASS_SMALL //thanks i forgot this /obj/item/weapon/tank/internals/plasmaman/belt/full/New() ..() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 71e7c0e566..084ac19f63 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -1,553 +1,553 @@ -/obj/item/weapon - -/obj/item/weapon/banhammer - desc = "A banhammer" - name = "banhammer" - icon = 'icons/obj/items.dmi' - icon_state = "toyhammer" - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_TINY - throw_speed = 3 - throw_range = 7 - attack_verb = list("banned") - obj_integrity = 200 - max_integrity = 200 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) - resistance_flags = FIRE_PROOF - -/obj/item/weapon/banhammer/suicide_act(mob/user) - user.visible_message("[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.") - return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) - -/obj/item/weapon/banhammer/attack(mob/M, mob/user) - to_chat(M, " You have been banned FOR NO REISIN by [user]") - to_chat(user, "You have BANNED [M]") - playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much - -/obj/item/weapon/sord - name = "\improper SORD" - desc = "This thing is so unspeakably shitty you are having a hard time even holding it." - icon_state = "sord" - item_state = "sord" - slot_flags = SLOT_BELT - force = 2 - throwforce = 1 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - -/obj/item/weapon/sord/suicide_act(mob/user) - user.visible_message("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.", \ - "You try to impale yourself with [src], but it's USELESS...") - return SHAME - -/obj/item/weapon/claymore - name = "claymore" - desc = "What are you standing around staring at this for? Get to killing!" - icon_state = "claymore" - item_state = "claymore" - hitsound = 'sound/weapons/bladeslice.ogg' - flags = CONDUCT - slot_flags = SLOT_BELT | SLOT_BACK - force = 40 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - block_chance = 50 - sharpness = IS_SHARP - obj_integrity = 200 - max_integrity = 200 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) - resistance_flags = FIRE_PROOF - -/obj/item/weapon/claymore/suicide_act(mob/user) - user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return(BRUTELOSS) - -/obj/item/weapon/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS - desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." - flags = CONDUCT | NODROP | DROPDEL - slot_flags = null - block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY - luminosity = 3 - attack_verb = list("brutalized", "eviscerated", "disemboweled", "hacked", "carved", "cleaved") //ONLY THE MOST VISCERAL ATTACK VERBS - var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE - var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK - -/obj/item/weapon/claymore/highlander/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/weapon/claymore/highlander/Destroy() - if(nuke_disk) - nuke_disk.forceMove(get_turf(src)) - nuke_disk.visible_message("The nuke disk is vulnerable!") - nuke_disk = null - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/weapon/claymore/highlander/process() - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - loc.layer = LARGE_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) - H.bleedsuppress = TRUE //AND WE WON'T BLEED OUT LIKE COWARDS - else - if(!admin_spawned) - qdel(src) - - -/obj/item/weapon/claymore/highlander/pickup(mob/living/user) - to_chat(user, "The power of Scotland protects you! You are shielded from all stuns and knockdowns.") - user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") - user.status_flags += IGNORESLOWDOWN - -/obj/item/weapon/claymore/highlander/dropped(mob/living/user) - user.status_flags -= IGNORESLOWDOWN - qdel(src) //If this ever happens, it's because you lost an arm - -/obj/item/weapon/claymore/highlander/examine(mob/user) - ..() - to_chat(user, "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade.") - if(nuke_disk) - to_chat(user, "It's holding the nuke disk!") - -/obj/item/weapon/claymore/highlander/attack(mob/living/target, mob/living/user) - . = ..() - if(target && target.stat == DEAD && target.mind && target.mind.special_role == "highlander") - user.fully_heal() //STEAL THE LIFE OF OUR FALLEN FOES - add_notch(user) - target.visible_message("[target] crumbles to dust beneath [user]'s blows!", "As you fall, your body crumbles to dust!") - target.dust() - -/obj/item/weapon/claymore/highlander/attack_self(mob/living/user) - var/closest_victim - var/closest_distance = 255 - for(var/mob/living/carbon/human/H in GLOB.player_list - user) - if(H.client && H.mind.special_role == "highlander" && (!closest_victim || get_dist(user, closest_victim) < closest_distance)) - closest_victim = H - if(!closest_victim) - to_chat(user, "[src] thrums for a moment and falls dark. Perhaps there's nobody nearby.") - return - to_chat(user, "[src] thrums and points to the [dir2text(get_dir(user, closest_victim))].") - -/obj/item/weapon/claymore/highlander/IsReflect() - return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME? - -/obj/item/weapon/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE - notches++ - force++ - var/new_name = name - switch(notches) - if(1) - to_chat(user, "Your first kill - hopefully one of many. You scratch a notch into [src]'s blade.") - to_chat(user, "You feel your fallen foe's soul entering your blade, restoring your wounds!") - new_name = "notched claymore" - if(2) - to_chat(user, "Another falls before you. Another soul fuses with your own. Another notch in the blade.") - new_name = "double-notched claymore" - add_atom_colour(rgb(255, 235, 235), ADMIN_COLOUR_PRIORITY) - if(3) - to_chat(user, "You're beginning to relish the thrill of battle.") - new_name = "triple-notched claymore" - add_atom_colour(rgb(255, 215, 215), ADMIN_COLOUR_PRIORITY) - if(4) - to_chat(user, "You've lost count of how many you've killed.") - new_name = "many-notched claymore" - add_atom_colour(rgb(255, 195, 195), ADMIN_COLOUR_PRIORITY) - if(5) - to_chat(user, "Five voices now echo in your mind, cheering the slaughter.") - new_name = "battle-tested claymore" - add_atom_colour(rgb(255, 175, 175), ADMIN_COLOUR_PRIORITY) - if(6) - to_chat(user, "Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe.") - new_name = "battle-scarred claymore" - add_atom_colour(rgb(255, 155, 155), ADMIN_COLOUR_PRIORITY) - if(7) - to_chat(user, "Kill. Butcher. Conquer.") - new_name = "vicious claymore" - add_atom_colour(rgb(255, 135, 135), ADMIN_COLOUR_PRIORITY) - if(8) - to_chat(user, "IT NEVER GETS OLD. THE SCREAMING. THE BLOOD AS IT SPRAYS ACROSS YOUR FACE.") - new_name = "bloodthirsty claymore" - add_atom_colour(rgb(255, 115, 115), ADMIN_COLOUR_PRIORITY) - if(9) - to_chat(user, "ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE.") - new_name = "gore-stained claymore" - add_atom_colour(rgb(255, 95, 95), ADMIN_COLOUR_PRIORITY) - if(10) - user.visible_message("[user]'s eyes light up with a vengeful fire!", \ - "YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! THERE CAN BE ONLY ONE!!!") - user.update_icons() - new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]" - icon_state = "claymore_valhalla" - item_state = "cultblade" - remove_atom_colour(ADMIN_COLOUR_PRIORITY) - - name = new_name - playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) - -/obj/item/weapon/katana - name = "katana" - desc = "Woefully underpowered in D20" - icon_state = "katana" - item_state = "katana" - flags = CONDUCT - slot_flags = SLOT_BELT | SLOT_BACK - force = 40 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - block_chance = 50 - sharpness = IS_SHARP - obj_integrity = 200 - max_integrity = 200 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) - resistance_flags = FIRE_PROOF - -/obj/item/weapon/katana/cursed - slot_flags = null - -/obj/item/weapon/katana/suicide_act(mob/user) - user.visible_message("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!") - return(BRUTELOSS) - -/obj/item/weapon/wirerod - name = "wired rod" - desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." - icon_state = "wiredrod" - item_state = "rods" - flags = CONDUCT - force = 9 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=1150, MAT_GLASS=75) - attack_verb = list("hit", "bludgeoned", "whacked", "bonked") - -/obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/shard)) - var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear - - remove_item_from_storage(user) - qdel(I) - qdel(src) - - user.put_in_hands(S) - to_chat(user, "You fasten the glass shard to the top of the rod with the cable.") - - else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags & NODROP)) - var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod - - remove_item_from_storage(user) - - to_chat(user, "You fasten [I] to the top of the rod with the cable.") - - qdel(I) - qdel(src) - - user.put_in_hands(P) - else - return ..() - - -/obj/item/weapon/throwing_star - name = "throwing star" - desc = "An ancient weapon still used to this day due to it's ease of lodging itself into victim's body parts" - icon_state = "throwingstar" - item_state = "eshield0" - force = 2 - throwforce = 20 //This is never used on mobs since this has a 100% embed chance. - throw_speed = 4 - embedded_pain_multiplier = 4 - w_class = WEIGHT_CLASS_SMALL - embed_chance = 100 - embedded_fall_chance = 0 //Hahaha! - sharpness = IS_SHARP - materials = list(MAT_METAL=500, MAT_GLASS=500) - resistance_flags = FIRE_PROOF - - -/obj/item/weapon/switchblade - name = "switchblade" - icon_state = "switchblade" - desc = "A sharp, concealable, spring-loaded knife." - flags = CONDUCT - force = 3 - w_class = WEIGHT_CLASS_SMALL - throwforce = 5 - throw_speed = 3 - throw_range = 6 - materials = list(MAT_METAL=12000) - origin_tech = "engineering=3;combat=2" - hitsound = 'sound/weapons/Genhit.ogg' - attack_verb = list("stubbed", "poked") - resistance_flags = FIRE_PROOF - var/extended = 0 - -/obj/item/weapon/switchblade/attack_self(mob/user) - extended = !extended - playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) - if(extended) - force = 20 - w_class = WEIGHT_CLASS_NORMAL - throwforce = 23 - icon_state = "switchblade_ext" - attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - else - force = 3 - w_class = WEIGHT_CLASS_SMALL - throwforce = 5 - icon_state = "switchblade" - attack_verb = list("stubbed", "poked") - hitsound = 'sound/weapons/Genhit.ogg' - sharpness = IS_BLUNT - -/obj/item/weapon/switchblade/suicide_act(mob/user) - user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/weapon/phone - name = "red phone" - desc = "Should anything ever go wrong..." - icon = 'icons/obj/items.dmi' - icon_state = "red_phone" - force = 3 - throwforce = 2 - throw_speed = 3 - throw_range = 4 - w_class = WEIGHT_CLASS_SMALL - attack_verb = list("called", "rang") - hitsound = 'sound/weapons/ring.ogg' - -/obj/item/weapon/phone/suicide_act(mob/user) - if(locate(/obj/structure/chair/stool) in user.loc) - user.visible_message("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") - else - user.visible_message("[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") - return(OXYLOSS) - -/obj/item/weapon/cane - name = "cane" - desc = "A cane used by a true gentleman. Or a clown." - icon = 'icons/obj/weapons.dmi' - icon_state = "cane" - item_state = "stick" - force = 5 - throwforce = 5 - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=50) - attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") - -/obj/item/weapon/staff - name = "wizard staff" - desc = "Apparently a staff used by the wizard." - icon = 'icons/obj/wizard.dmi' - icon_state = "staff" - force = 3 - throwforce = 5 - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - armour_penetration = 100 - attack_verb = list("bludgeoned", "whacked", "disciplined") - resistance_flags = FLAMMABLE - -/obj/item/weapon/staff/broom - name = "broom" - desc = "Used for sweeping, and flying into the night while cackling. Black cat not included." - icon = 'icons/obj/wizard.dmi' - icon_state = "broom" - resistance_flags = FLAMMABLE - -/obj/item/weapon/staff/stick - name = "stick" - desc = "A great tool to drag someone else's drinks across the bar." - icon = 'icons/obj/weapons.dmi' - icon_state = "stick" - item_state = "stick" - force = 3 - throwforce = 5 - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - -/obj/item/weapon/ectoplasm - name = "ectoplasm" - desc = "spooky" - gender = PLURAL - icon = 'icons/obj/wizard.dmi' - icon_state = "ectoplasm" - -/obj/item/weapon/ectoplasm/suicide_act(mob/user) - user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.") - return (OXYLOSS) - -/obj/item/weapon/mounted_chainsaw - name = "mounted chainsaw" - desc = "A chainsaw that has replaced your arm." - icon_state = "chainsaw_on" - item_state = "mounted_chainsaw" - flags = NODROP | ABSTRACT | DROPDEL - w_class = WEIGHT_CLASS_HUGE - force = 21 - throwforce = 0 - throw_range = 0 - throw_speed = 0 - sharpness = IS_SHARP - attack_verb = list("sawed", "torn", "cut", "chopped", "diced") - hitsound = 'sound/weapons/chainsawhit.ogg' - -/obj/item/weapon/mounted_chainsaw/Destroy() - var/obj/item/bodypart/part - new /obj/item/weapon/twohanded/required/chainsaw(get_turf(src)) - if(iscarbon(loc)) - var/mob/living/carbon/holder = loc - var/index = holder.get_held_index_of_item(src) - if(index) - part = holder.hand_bodyparts[index] - . = ..() - if(part) - part.drop_limb() - -/obj/item/weapon/statuebust - name = "bust" - desc = "A priceless ancient marble bust, the kind that belongs in a museum." //or you can hit people with it - icon = 'icons/obj/statue.dmi' - icon_state = "bust" - force = 15 - throwforce = 10 - throw_speed = 5 - throw_range = 2 - attack_verb = list("busted") - -/obj/item/weapon/tailclub - name = "tail club" - desc = "For the beating to death of lizards with their own tails." - icon_state = "tailclub" - force = 14 - throwforce = 1 // why are you throwing a club do you even weapon - throw_speed = 1 - throw_range = 1 - attack_verb = list("clubbed", "bludgeoned") - -/obj/item/weapon/melee/chainofcommand/tailwhip - name = "liz o' nine tails" - desc = "A whip fashioned from the severed tails of lizards." - icon_state = "tailwhip" - origin_tech = "engineering=3;combat=3;biotech=3" - needs_permit = 0 - -/obj/item/weapon/melee/skateboard - name = "skateboard" - desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." - icon_state = "skateboard" - item_state = "skateboard" - force = 12 - throwforce = 4 - w_class = WEIGHT_CLASS_HUGE - attack_verb = list("smacked", "whacked", "slammed", "smashed") - -/obj/item/weapon/melee/skateboard/attack_self(mob/user) - new /obj/vehicle/scooter/skateboard(get_turf(user)) - qdel(src) - -/obj/item/weapon/melee/baseball_bat - name = "baseball bat" - desc = "There ain't a skull in the league that can withstand a swatter." - icon = 'icons/obj/items.dmi' - icon_state = "baseball_bat" - item_state = "baseball_bat" - force = 10 - throwforce = 12 - attack_verb = list("beat", "smacked") - w_class = WEIGHT_CLASS_HUGE - var/homerun_ready = 0 - var/homerun_able = 0 - -/obj/item/weapon/melee/baseball_bat/homerun - name = "home run bat" - desc = "This thing looks dangerous... Dangerously good at baseball, that is." - homerun_able = 1 - -/obj/item/weapon/melee/baseball_bat/attack_self(mob/user) - if(!homerun_able) - ..() - return - if(homerun_ready) - to_chat(user, "You're already ready to do a home run!") - ..() - return - to_chat(user, "You begin gathering strength...") - playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, 1) - if(do_after(user, 90, target = src)) - to_chat(user, "You gather power! Time for a home run!") - homerun_ready = 1 - ..() - -/obj/item/weapon/melee/baseball_bat/attack(mob/living/target, mob/living/user) - . = ..() - var/atom/throw_target = get_edge_target_turf(target, user.dir) - if(homerun_ready) - user.visible_message("It's a home run!") - target.throw_at(throw_target, rand(8,10), 14, user) - target.ex_act(2) - playsound(get_turf(src), 'sound/weapons/HOMERUN.ogg', 100, 1) - homerun_ready = 0 - return - else if(!target.anchored) - target.throw_at(throw_target, rand(1,2), 7, user) - -/obj/item/weapon/melee/baseball_bat/ablative - name = "metal baseball bat" - desc = "This bat is made of highly reflective, highly armored material." - icon_state = "baseball_bat_metal" - item_state = "baseball_bat_metal" - force = 12 - throwforce = 15 - -/obj/item/weapon/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers - var/picksound = rand(1,2) - var/turf = get_turf(src) - if(picksound == 1) - playsound(turf, 'sound/weapons/effects/batreflect1.ogg', 50, 1) - if(picksound == 2) - playsound(turf, 'sound/weapons/effects/batreflect2.ogg', 50, 1) - return 1 - -/obj/item/weapon/melee/flyswatter - name = "Flyswatter" - desc = "Useful for killing insects of all sizes." - icon = 'icons/obj/weapons.dmi' - icon_state = "flyswatter" - item_state = "flyswatter" - force = 1 - throwforce = 1 - attack_verb = list("swatted", "smacked") - hitsound = 'sound/effects/snap.ogg' - w_class = WEIGHT_CLASS_SMALL - //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. - var/list/strong_against - -/obj/item/weapon/melee/flyswatter/New() - ..() - strong_against = typecacheof(list( - /mob/living/simple_animal/hostile/poison/bees/, - /mob/living/simple_animal/butterfly, - /mob/living/simple_animal/cockroach, - /obj/item/queen_bee - )) - - -/obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) - if(proximity_flag) - if(is_type_in_typecache(target, strong_against)) - new /obj/effect/decal/cleanable/deadcockroach(get_turf(target)) - to_chat(user, "You easily splat the [target].") - if(istype(target, /mob/living/)) - var/mob/living/bug = target - bug.death(1) - else - qdel(target) +/obj/item/weapon + +/obj/item/weapon/banhammer + desc = "A banhammer" + name = "banhammer" + icon = 'icons/obj/items.dmi' + icon_state = "toyhammer" + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + attack_verb = list("banned") + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/banhammer/suicide_act(mob/user) + user.visible_message("[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.") + return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) + +/obj/item/weapon/banhammer/attack(mob/M, mob/user) + to_chat(M, " You have been banned FOR NO REISIN by [user]") + to_chat(user, "You have BANNED [M]") + playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much + +/obj/item/weapon/sord + name = "\improper SORD" + desc = "This thing is so unspeakably shitty you are having a hard time even holding it." + icon_state = "sord" + item_state = "sord" + slot_flags = SLOT_BELT + force = 2 + throwforce = 1 + w_class = WEIGHT_CLASS_NORMAL + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/sord/suicide_act(mob/user) + user.visible_message("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.", \ + "You try to impale yourself with [src], but it's USELESS...") + return SHAME + +/obj/item/weapon/claymore + name = "claymore" + desc = "What are you standing around staring at this for? Get to killing!" + icon_state = "claymore" + item_state = "claymore" + hitsound = 'sound/weapons/bladeslice.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT | SLOT_BACK + force = 40 + throwforce = 10 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 50 + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/claymore/suicide_act(mob/user) + user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +/obj/item/weapon/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS + desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." + flags = CONDUCT | NODROP | DROPDEL + slot_flags = null + block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY + luminosity = 3 + attack_verb = list("brutalized", "eviscerated", "disemboweled", "hacked", "carved", "cleaved") //ONLY THE MOST VISCERAL ATTACK VERBS + var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE + var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK + +/obj/item/weapon/claymore/highlander/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/weapon/claymore/highlander/Destroy() + if(nuke_disk) + nuke_disk.forceMove(get_turf(src)) + nuke_disk.visible_message("The nuke disk is vulnerable!") + nuke_disk = null + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/weapon/claymore/highlander/process() + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + loc.layer = LARGE_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) + H.bleedsuppress = TRUE //AND WE WON'T BLEED OUT LIKE COWARDS + else + if(!admin_spawned) + qdel(src) + + +/obj/item/weapon/claymore/highlander/pickup(mob/living/user) + to_chat(user, "The power of Scotland protects you! You are shielded from all stuns and knockdowns.") + user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") + user.status_flags += IGNORESLOWDOWN + +/obj/item/weapon/claymore/highlander/dropped(mob/living/user) + user.status_flags -= IGNORESLOWDOWN + qdel(src) //If this ever happens, it's because you lost an arm + +/obj/item/weapon/claymore/highlander/examine(mob/user) + ..() + to_chat(user, "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade.") + if(nuke_disk) + to_chat(user, "It's holding the nuke disk!") + +/obj/item/weapon/claymore/highlander/attack(mob/living/target, mob/living/user) + . = ..() + if(target && target.stat == DEAD && target.mind && target.mind.special_role == "highlander") + user.fully_heal() //STEAL THE LIFE OF OUR FALLEN FOES + add_notch(user) + target.visible_message("[target] crumbles to dust beneath [user]'s blows!", "As you fall, your body crumbles to dust!") + target.dust() + +/obj/item/weapon/claymore/highlander/attack_self(mob/living/user) + var/closest_victim + var/closest_distance = 255 + for(var/mob/living/carbon/human/H in GLOB.player_list - user) + if(H.client && H.mind.special_role == "highlander" && (!closest_victim || get_dist(user, closest_victim) < closest_distance)) + closest_victim = H + if(!closest_victim) + to_chat(user, "[src] thrums for a moment and falls dark. Perhaps there's nobody nearby.") + return + to_chat(user, "[src] thrums and points to the [dir2text(get_dir(user, closest_victim))].") + +/obj/item/weapon/claymore/highlander/IsReflect() + return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME? + +/obj/item/weapon/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE + notches++ + force++ + var/new_name = name + switch(notches) + if(1) + to_chat(user, "Your first kill - hopefully one of many. You scratch a notch into [src]'s blade.") + to_chat(user, "You feel your fallen foe's soul entering your blade, restoring your wounds!") + new_name = "notched claymore" + if(2) + to_chat(user, "Another falls before you. Another soul fuses with your own. Another notch in the blade.") + new_name = "double-notched claymore" + add_atom_colour(rgb(255, 235, 235), ADMIN_COLOUR_PRIORITY) + if(3) + to_chat(user, "You're beginning to relish the thrill of battle.") + new_name = "triple-notched claymore" + add_atom_colour(rgb(255, 215, 215), ADMIN_COLOUR_PRIORITY) + if(4) + to_chat(user, "You've lost count of how many you've killed.") + new_name = "many-notched claymore" + add_atom_colour(rgb(255, 195, 195), ADMIN_COLOUR_PRIORITY) + if(5) + to_chat(user, "Five voices now echo in your mind, cheering the slaughter.") + new_name = "battle-tested claymore" + add_atom_colour(rgb(255, 175, 175), ADMIN_COLOUR_PRIORITY) + if(6) + to_chat(user, "Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe.") + new_name = "battle-scarred claymore" + add_atom_colour(rgb(255, 155, 155), ADMIN_COLOUR_PRIORITY) + if(7) + to_chat(user, "Kill. Butcher. Conquer.") + new_name = "vicious claymore" + add_atom_colour(rgb(255, 135, 135), ADMIN_COLOUR_PRIORITY) + if(8) + to_chat(user, "IT NEVER GETS OLD. THE SCREAMING. THE BLOOD AS IT SPRAYS ACROSS YOUR FACE.") + new_name = "bloodthirsty claymore" + add_atom_colour(rgb(255, 115, 115), ADMIN_COLOUR_PRIORITY) + if(9) + to_chat(user, "ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE.") + new_name = "gore-stained claymore" + add_atom_colour(rgb(255, 95, 95), ADMIN_COLOUR_PRIORITY) + if(10) + user.visible_message("[user]'s eyes light up with a vengeful fire!", \ + "YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! THERE CAN BE ONLY ONE!!!") + user.update_icons() + new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]" + icon_state = "claymore_valhalla" + item_state = "cultblade" + remove_atom_colour(ADMIN_COLOUR_PRIORITY) + + name = new_name + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + +/obj/item/weapon/katana + name = "katana" + desc = "Woefully underpowered in D20" + icon_state = "katana" + item_state = "katana" + flags = CONDUCT + slot_flags = SLOT_BELT | SLOT_BACK + force = 40 + throwforce = 10 + w_class = WEIGHT_CLASS_NORMAL + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 50 + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/katana/cursed + slot_flags = null + +/obj/item/weapon/katana/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!") + return(BRUTELOSS) + +/obj/item/weapon/wirerod + name = "wired rod" + desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." + icon_state = "wiredrod" + item_state = "rods" + flags = CONDUCT + force = 9 + throwforce = 10 + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=1150, MAT_GLASS=75) + attack_verb = list("hit", "bludgeoned", "whacked", "bonked") + +/obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/shard)) + var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear + + remove_item_from_storage(user) + qdel(I) + qdel(src) + + user.put_in_hands(S) + to_chat(user, "You fasten the glass shard to the top of the rod with the cable.") + + else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags & NODROP)) + var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod + + remove_item_from_storage(user) + + to_chat(user, "You fasten [I] to the top of the rod with the cable.") + + qdel(I) + qdel(src) + + user.put_in_hands(P) + else + return ..() + + +/obj/item/weapon/throwing_star + name = "throwing star" + desc = "An ancient weapon still used to this day due to it's ease of lodging itself into victim's body parts" + icon_state = "throwingstar" + item_state = "eshield0" + force = 2 + throwforce = 20 //This is never used on mobs since this has a 100% embed chance. + throw_speed = 4 + embedded_pain_multiplier = 4 + w_class = WEIGHT_CLASS_SMALL + embed_chance = 100 + embedded_fall_chance = 0 //Hahaha! + sharpness = IS_SHARP + materials = list(MAT_METAL=500, MAT_GLASS=500) + resistance_flags = FIRE_PROOF + + +/obj/item/weapon/switchblade + name = "switchblade" + icon_state = "switchblade" + desc = "A sharp, concealable, spring-loaded knife." + flags = CONDUCT + force = 3 + w_class = WEIGHT_CLASS_SMALL + throwforce = 5 + throw_speed = 3 + throw_range = 6 + materials = list(MAT_METAL=12000) + origin_tech = "engineering=3;combat=2" + hitsound = 'sound/weapons/Genhit.ogg' + attack_verb = list("stubbed", "poked") + resistance_flags = FIRE_PROOF + var/extended = 0 + +/obj/item/weapon/switchblade/attack_self(mob/user) + extended = !extended + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) + if(extended) + force = 20 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 23 + icon_state = "switchblade_ext" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + else + force = 3 + w_class = WEIGHT_CLASS_SMALL + throwforce = 5 + icon_state = "switchblade" + attack_verb = list("stubbed", "poked") + hitsound = 'sound/weapons/Genhit.ogg' + sharpness = IS_BLUNT + +/obj/item/weapon/switchblade/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/phone + name = "red phone" + desc = "Should anything ever go wrong..." + icon = 'icons/obj/items.dmi' + icon_state = "red_phone" + force = 3 + throwforce = 2 + throw_speed = 3 + throw_range = 4 + w_class = WEIGHT_CLASS_SMALL + attack_verb = list("called", "rang") + hitsound = 'sound/weapons/ring.ogg' + +/obj/item/weapon/phone/suicide_act(mob/user) + if(locate(/obj/structure/chair/stool) in user.loc) + user.visible_message("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") + else + user.visible_message("[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") + return(OXYLOSS) + +/obj/item/weapon/cane + name = "cane" + desc = "A cane used by a true gentleman. Or a clown." + icon = 'icons/obj/weapons.dmi' + icon_state = "cane" + item_state = "stick" + force = 5 + throwforce = 5 + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=50) + attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") + +/obj/item/weapon/staff + name = "wizard staff" + desc = "Apparently a staff used by the wizard." + icon = 'icons/obj/wizard.dmi' + icon_state = "staff" + force = 3 + throwforce = 5 + throw_speed = 2 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + armour_penetration = 100 + attack_verb = list("bludgeoned", "whacked", "disciplined") + resistance_flags = FLAMMABLE + +/obj/item/weapon/staff/broom + name = "broom" + desc = "Used for sweeping, and flying into the night while cackling. Black cat not included." + icon = 'icons/obj/wizard.dmi' + icon_state = "broom" + resistance_flags = FLAMMABLE + +/obj/item/weapon/staff/stick + name = "stick" + desc = "A great tool to drag someone else's drinks across the bar." + icon = 'icons/obj/weapons.dmi' + icon_state = "stick" + item_state = "stick" + force = 3 + throwforce = 5 + throw_speed = 2 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/weapon/ectoplasm + name = "ectoplasm" + desc = "spooky" + gender = PLURAL + icon = 'icons/obj/wizard.dmi' + icon_state = "ectoplasm" + +/obj/item/weapon/ectoplasm/suicide_act(mob/user) + user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.") + return (OXYLOSS) + +/obj/item/weapon/mounted_chainsaw + name = "mounted chainsaw" + desc = "A chainsaw that has replaced your arm." + icon_state = "chainsaw_on" + item_state = "mounted_chainsaw" + flags = NODROP | ABSTRACT | DROPDEL + w_class = WEIGHT_CLASS_HUGE + force = 21 + throwforce = 0 + throw_range = 0 + throw_speed = 0 + sharpness = IS_SHARP + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = 'sound/weapons/chainsawhit.ogg' + +/obj/item/weapon/mounted_chainsaw/Destroy() + var/obj/item/bodypart/part + new /obj/item/weapon/twohanded/required/chainsaw(get_turf(src)) + if(iscarbon(loc)) + var/mob/living/carbon/holder = loc + var/index = holder.get_held_index_of_item(src) + if(index) + part = holder.hand_bodyparts[index] + . = ..() + if(part) + part.drop_limb() + +/obj/item/weapon/statuebust + name = "bust" + desc = "A priceless ancient marble bust, the kind that belongs in a museum." //or you can hit people with it + icon = 'icons/obj/statue.dmi' + icon_state = "bust" + force = 15 + throwforce = 10 + throw_speed = 5 + throw_range = 2 + attack_verb = list("busted") + +/obj/item/weapon/tailclub + name = "tail club" + desc = "For the beating to death of lizards with their own tails." + icon_state = "tailclub" + force = 14 + throwforce = 1 // why are you throwing a club do you even weapon + throw_speed = 1 + throw_range = 1 + attack_verb = list("clubbed", "bludgeoned") + +/obj/item/weapon/melee/chainofcommand/tailwhip + name = "liz o' nine tails" + desc = "A whip fashioned from the severed tails of lizards." + icon_state = "tailwhip" + origin_tech = "engineering=3;combat=3;biotech=3" + needs_permit = 0 + +/obj/item/weapon/melee/skateboard + name = "skateboard" + desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." + icon_state = "skateboard" + item_state = "skateboard" + force = 12 + throwforce = 4 + w_class = WEIGHT_CLASS_HUGE + attack_verb = list("smacked", "whacked", "slammed", "smashed") + +/obj/item/weapon/melee/skateboard/attack_self(mob/user) + new /obj/vehicle/scooter/skateboard(get_turf(user)) + qdel(src) + +/obj/item/weapon/melee/baseball_bat + name = "baseball bat" + desc = "There ain't a skull in the league that can withstand a swatter." + icon = 'icons/obj/items.dmi' + icon_state = "baseball_bat" + item_state = "baseball_bat" + force = 10 + throwforce = 12 + attack_verb = list("beat", "smacked") + w_class = WEIGHT_CLASS_HUGE + var/homerun_ready = 0 + var/homerun_able = 0 + +/obj/item/weapon/melee/baseball_bat/homerun + name = "home run bat" + desc = "This thing looks dangerous... Dangerously good at baseball, that is." + homerun_able = 1 + +/obj/item/weapon/melee/baseball_bat/attack_self(mob/user) + if(!homerun_able) + ..() + return + if(homerun_ready) + to_chat(user, "You're already ready to do a home run!") + ..() + return + to_chat(user, "You begin gathering strength...") + playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, 1) + if(do_after(user, 90, target = src)) + to_chat(user, "You gather power! Time for a home run!") + homerun_ready = 1 + ..() + +/obj/item/weapon/melee/baseball_bat/attack(mob/living/target, mob/living/user) + . = ..() + var/atom/throw_target = get_edge_target_turf(target, user.dir) + if(homerun_ready) + user.visible_message("It's a home run!") + target.throw_at(throw_target, rand(8,10), 14, user) + target.ex_act(2) + playsound(get_turf(src), 'sound/weapons/HOMERUN.ogg', 100, 1) + homerun_ready = 0 + return + else if(!target.anchored) + target.throw_at(throw_target, rand(1,2), 7, user) + +/obj/item/weapon/melee/baseball_bat/ablative + name = "metal baseball bat" + desc = "This bat is made of highly reflective, highly armored material." + icon_state = "baseball_bat_metal" + item_state = "baseball_bat_metal" + force = 12 + throwforce = 15 + +/obj/item/weapon/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers + var/picksound = rand(1,2) + var/turf = get_turf(src) + if(picksound == 1) + playsound(turf, 'sound/weapons/effects/batreflect1.ogg', 50, 1) + if(picksound == 2) + playsound(turf, 'sound/weapons/effects/batreflect2.ogg', 50, 1) + return 1 + +/obj/item/weapon/melee/flyswatter + name = "Flyswatter" + desc = "Useful for killing insects of all sizes." + icon = 'icons/obj/weapons.dmi' + icon_state = "flyswatter" + item_state = "flyswatter" + force = 1 + throwforce = 1 + attack_verb = list("swatted", "smacked") + hitsound = 'sound/effects/snap.ogg' + w_class = WEIGHT_CLASS_SMALL + //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. + var/list/strong_against + +/obj/item/weapon/melee/flyswatter/New() + ..() + strong_against = typecacheof(list( + /mob/living/simple_animal/hostile/poison/bees/, + /mob/living/simple_animal/butterfly, + /mob/living/simple_animal/cockroach, + /obj/item/queen_bee + )) + + +/obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag) + if(is_type_in_typecache(target, strong_against)) + new /obj/effect/decal/cleanable/deadcockroach(get_turf(target)) + to_chat(user, "You easily splat the [target].") + if(istype(target, /mob/living/)) + var/mob/living/bug = target + bug.death(1) + else + qdel(target) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index e3aed96516..36730239ea 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -1,316 +1,316 @@ -/* -CONTAINS: -BEDSHEETS -LINEN BINS -*/ - -/obj/item/weapon/bedsheet - name = "bedsheet" - desc = "A surprisingly soft linen bedsheet." - icon = 'icons/obj/bedsheets.dmi' - icon_state = "sheetwhite" - item_state = "bedsheet" - slot_flags = SLOT_NECK - layer = MOB_LAYER - throwforce = 0 - throw_speed = 1 - throw_range = 2 - w_class = WEIGHT_CLASS_TINY - item_color = "white" - resistance_flags = FLAMMABLE - - dog_fashion = /datum/dog_fashion/head/ghost - -/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user) - if(!attempt_initiate_surgery(src, M, user)) - ..() - -/obj/item/weapon/bedsheet/attack_self(mob/user) - user.drop_item() - if(layer == initial(layer)) - layer = ABOVE_MOB_LAYER - to_chat(user, "You cover yourself with [src].") - else - layer = initial(layer) - to_chat(user, "You smooth [src] out beneath you.") - add_fingerprint(user) - return - -/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp()) - var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) - transfer_fingerprints_to(C) - C.add_fingerprint(user) - qdel(src) - to_chat(user, "You tear [src] up.") - else - return ..() - -/obj/item/weapon/bedsheet/blue - icon_state = "sheetblue" - item_color = "blue" - -/obj/item/weapon/bedsheet/green - icon_state = "sheetgreen" - item_color = "green" - -/obj/item/weapon/bedsheet/orange - icon_state = "sheetorange" - item_color = "orange" - -/obj/item/weapon/bedsheet/purple - icon_state = "sheetpurple" - item_color = "purple" - -/obj/item/weapon/bedsheet/patriot - name = "patriotic bedsheet" - desc = "You've never felt more free than when sleeping on this." - icon_state = "sheetUSA" - item_color = "sheetUSA" - -/obj/item/weapon/bedsheet/rainbow - name = "rainbow bedsheet" - desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." - icon_state = "sheetrainbow" - item_color = "rainbow" - -/obj/item/weapon/bedsheet/red - icon_state = "sheetred" - item_color = "red" - -/obj/item/weapon/bedsheet/yellow - icon_state = "sheetyellow" - item_color = "yellow" - -/obj/item/weapon/bedsheet/mime - name = "mime's blanket" - desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." - icon_state = "sheetmime" - item_color = "mime" - -/obj/item/weapon/bedsheet/clown - name = "clown's blanket" - desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." - icon_state = "sheetclown" - item_color = "clown" - -/obj/item/weapon/bedsheet/captain - name = "captain's bedsheet" - desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." - icon_state = "sheetcaptain" - item_color = "captain" - -/obj/item/weapon/bedsheet/rd - name = "research director's bedsheet" - desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." - icon_state = "sheetrd" - item_color = "director" - -// for Free Golems. -/obj/item/weapon/bedsheet/rd/royal_cape - name = "Royal Cape of the Liberator" - desc = "Majestic." - -/obj/item/weapon/bedsheet/medical - name = "medical blanket" - desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." - icon_state = "sheetmedical" - item_color = "medical" - -/obj/item/weapon/bedsheet/cmo - name = "chief medical officer's bedsheet" - desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." - icon_state = "sheetcmo" - item_color = "cmo" - -/obj/item/weapon/bedsheet/hos - name = "head of security's bedsheet" - desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" - icon_state = "sheethos" - item_color = "hosred" - -/obj/item/weapon/bedsheet/hop - name = "head of personnel's bedsheet" - desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." - icon_state = "sheethop" - item_color = "hop" - -/obj/item/weapon/bedsheet/ce - name = "chief engineer's bedsheet" - desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." - icon_state = "sheetce" - item_color = "chief" - -/obj/item/weapon/bedsheet/qm - name = "quartermaster's bedsheet" - desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." - icon_state = "sheetqm" - item_color = "qm" - -/obj/item/weapon/bedsheet/brown - icon_state = "sheetbrown" - item_color = "cargo" - -/obj/item/weapon/bedsheet/black - icon_state = "sheetblack" - item_color = "black" - -/obj/item/weapon/bedsheet/centcom - name = "\improper Centcom bedsheet" - desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." - icon_state = "sheetcentcom" - item_color = "centcom" - -/obj/item/weapon/bedsheet/syndie - name = "syndicate bedsheet" - desc = "It has a syndicate emblem and it has an aura of evil." - icon_state = "sheetsyndie" - item_color = "syndie" - -/obj/item/weapon/bedsheet/cult - name = "cultist's bedsheet" - desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." - icon_state = "sheetcult" - item_color = "cult" - -/obj/item/weapon/bedsheet/wiz - name = "wizard's bedsheet" - desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" - icon_state = "sheetwiz" - item_color = "wiz" - -/obj/item/weapon/bedsheet/nanotrasen - name = "nanotrasen bedsheet" - desc = "It has the Nanotrasen logo on it and has an aura of duty." - icon_state = "sheetNT" - item_color = "nanotrasen" - -/obj/item/weapon/bedsheet/ian - icon_state = "sheetian" - item_color = "ian" - - -/obj/item/weapon/bedsheet/random - icon_state = "sheetrainbow" - item_color = "rainbow" - name = "random bedsheet" - desc = "If you're reading this description ingame, something has gone wrong! Honk!" - -/obj/item/weapon/bedsheet/random/New() - var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) - name = initial(B.name) - desc = initial(B.desc) - icon_state = initial(B.icon_state) - item_state = initial(B.item_state) - item_color = initial(B.item_color) - -/obj/structure/bedsheetbin - name = "linen bin" - desc = "It looks rather cosy." - icon = 'icons/obj/structures.dmi' - icon_state = "linenbin-full" - anchored = 1 - resistance_flags = FLAMMABLE - obj_integrity = 70 - max_integrity = 70 - var/amount = 10 - var/list/sheets = list() - var/obj/item/hidden = null - - -/obj/structure/bedsheetbin/examine(mob/user) - ..() - if(amount < 1) - to_chat(user, "There are no bed sheets in the bin.") - else if(amount == 1) - to_chat(user, "There is one bed sheet in the bin.") - else - to_chat(user, "There are [amount] bed sheets in the bin.") - - -/obj/structure/bedsheetbin/update_icon() - switch(amount) - if(0) - icon_state = "linenbin-empty" - if(1 to 5) - icon_state = "linenbin-half" - else - icon_state = "linenbin-full" - -/obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) - if(amount) - amount = 0 - update_icon() - ..() - -/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/bedsheet)) - if(!user.drop_item()) - return - I.loc = src - sheets.Add(I) - amount++ - to_chat(user, "You put [I] in [src].") - update_icon() - else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. - if(!user.drop_item()) - to_chat(user, "\The [I] is stuck to your hand, you cannot hide it among the sheets!") - return - I.loc = src - hidden = I - to_chat(user, "You hide [I] among the sheets.") - - - -/obj/structure/bedsheetbin/attack_paw(mob/user) - return attack_hand(user) - - -/obj/structure/bedsheetbin/attack_hand(mob/user) - if(user.lying) - return - if(amount >= 1) - amount-- - - var/obj/item/weapon/bedsheet/B - if(sheets.len > 0) - B = sheets[sheets.len] - sheets.Remove(B) - - else - B = new /obj/item/weapon/bedsheet(loc) - - B.loc = user.loc - user.put_in_hands(B) - to_chat(user, "You take [B] out of [src].") - update_icon() - - if(hidden) - hidden.loc = user.loc - to_chat(user, "[hidden] falls out of [B]!") - hidden = null - - - add_fingerprint(user) -/obj/structure/bedsheetbin/attack_tk(mob/user) - if(amount >= 1) - amount-- - - var/obj/item/weapon/bedsheet/B - if(sheets.len > 0) - B = sheets[sheets.len] - sheets.Remove(B) - - else - B = new /obj/item/weapon/bedsheet(loc) - - B.loc = loc - to_chat(user, "You telekinetically remove [B] from [src].") - update_icon() - - if(hidden) - hidden.loc = loc - hidden = null - - - add_fingerprint(user) +/* +CONTAINS: +BEDSHEETS +LINEN BINS +*/ + +/obj/item/weapon/bedsheet + name = "bedsheet" + desc = "A surprisingly soft linen bedsheet." + icon = 'icons/obj/bedsheets.dmi' + icon_state = "sheetwhite" + item_state = "bedsheet" + slot_flags = SLOT_NECK + layer = MOB_LAYER + throwforce = 0 + throw_speed = 1 + throw_range = 2 + w_class = WEIGHT_CLASS_TINY + item_color = "white" + resistance_flags = FLAMMABLE + + dog_fashion = /datum/dog_fashion/head/ghost + +/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user) + if(!attempt_initiate_surgery(src, M, user)) + ..() + +/obj/item/weapon/bedsheet/attack_self(mob/user) + user.drop_item() + if(layer == initial(layer)) + layer = ABOVE_MOB_LAYER + to_chat(user, "You cover yourself with [src].") + else + layer = initial(layer) + to_chat(user, "You smooth [src] out beneath you.") + add_fingerprint(user) + return + +/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp()) + var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) + transfer_fingerprints_to(C) + C.add_fingerprint(user) + qdel(src) + to_chat(user, "You tear [src] up.") + else + return ..() + +/obj/item/weapon/bedsheet/blue + icon_state = "sheetblue" + item_color = "blue" + +/obj/item/weapon/bedsheet/green + icon_state = "sheetgreen" + item_color = "green" + +/obj/item/weapon/bedsheet/orange + icon_state = "sheetorange" + item_color = "orange" + +/obj/item/weapon/bedsheet/purple + icon_state = "sheetpurple" + item_color = "purple" + +/obj/item/weapon/bedsheet/patriot + name = "patriotic bedsheet" + desc = "You've never felt more free than when sleeping on this." + icon_state = "sheetUSA" + item_color = "sheetUSA" + +/obj/item/weapon/bedsheet/rainbow + name = "rainbow bedsheet" + desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." + icon_state = "sheetrainbow" + item_color = "rainbow" + +/obj/item/weapon/bedsheet/red + icon_state = "sheetred" + item_color = "red" + +/obj/item/weapon/bedsheet/yellow + icon_state = "sheetyellow" + item_color = "yellow" + +/obj/item/weapon/bedsheet/mime + name = "mime's blanket" + desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." + icon_state = "sheetmime" + item_color = "mime" + +/obj/item/weapon/bedsheet/clown + name = "clown's blanket" + desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." + icon_state = "sheetclown" + item_color = "clown" + +/obj/item/weapon/bedsheet/captain + name = "captain's bedsheet" + desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." + icon_state = "sheetcaptain" + item_color = "captain" + +/obj/item/weapon/bedsheet/rd + name = "research director's bedsheet" + desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." + icon_state = "sheetrd" + item_color = "director" + +// for Free Golems. +/obj/item/weapon/bedsheet/rd/royal_cape + name = "Royal Cape of the Liberator" + desc = "Majestic." + +/obj/item/weapon/bedsheet/medical + name = "medical blanket" + desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." + icon_state = "sheetmedical" + item_color = "medical" + +/obj/item/weapon/bedsheet/cmo + name = "chief medical officer's bedsheet" + desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." + icon_state = "sheetcmo" + item_color = "cmo" + +/obj/item/weapon/bedsheet/hos + name = "head of security's bedsheet" + desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" + icon_state = "sheethos" + item_color = "hosred" + +/obj/item/weapon/bedsheet/hop + name = "head of personnel's bedsheet" + desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." + icon_state = "sheethop" + item_color = "hop" + +/obj/item/weapon/bedsheet/ce + name = "chief engineer's bedsheet" + desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." + icon_state = "sheetce" + item_color = "chief" + +/obj/item/weapon/bedsheet/qm + name = "quartermaster's bedsheet" + desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." + icon_state = "sheetqm" + item_color = "qm" + +/obj/item/weapon/bedsheet/brown + icon_state = "sheetbrown" + item_color = "cargo" + +/obj/item/weapon/bedsheet/black + icon_state = "sheetblack" + item_color = "black" + +/obj/item/weapon/bedsheet/centcom + name = "\improper Centcom bedsheet" + desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." + icon_state = "sheetcentcom" + item_color = "centcom" + +/obj/item/weapon/bedsheet/syndie + name = "syndicate bedsheet" + desc = "It has a syndicate emblem and it has an aura of evil." + icon_state = "sheetsyndie" + item_color = "syndie" + +/obj/item/weapon/bedsheet/cult + name = "cultist's bedsheet" + desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." + icon_state = "sheetcult" + item_color = "cult" + +/obj/item/weapon/bedsheet/wiz + name = "wizard's bedsheet" + desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" + icon_state = "sheetwiz" + item_color = "wiz" + +/obj/item/weapon/bedsheet/nanotrasen + name = "nanotrasen bedsheet" + desc = "It has the Nanotrasen logo on it and has an aura of duty." + icon_state = "sheetNT" + item_color = "nanotrasen" + +/obj/item/weapon/bedsheet/ian + icon_state = "sheetian" + item_color = "ian" + + +/obj/item/weapon/bedsheet/random + icon_state = "sheetrainbow" + item_color = "rainbow" + name = "random bedsheet" + desc = "If you're reading this description ingame, something has gone wrong! Honk!" + +/obj/item/weapon/bedsheet/random/New() + var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) + name = initial(B.name) + desc = initial(B.desc) + icon_state = initial(B.icon_state) + item_state = initial(B.item_state) + item_color = initial(B.item_color) + +/obj/structure/bedsheetbin + name = "linen bin" + desc = "It looks rather cosy." + icon = 'icons/obj/structures.dmi' + icon_state = "linenbin-full" + anchored = 1 + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + var/amount = 10 + var/list/sheets = list() + var/obj/item/hidden = null + + +/obj/structure/bedsheetbin/examine(mob/user) + ..() + if(amount < 1) + to_chat(user, "There are no bed sheets in the bin.") + else if(amount == 1) + to_chat(user, "There is one bed sheet in the bin.") + else + to_chat(user, "There are [amount] bed sheets in the bin.") + + +/obj/structure/bedsheetbin/update_icon() + switch(amount) + if(0) + icon_state = "linenbin-empty" + if(1 to 5) + icon_state = "linenbin-half" + else + icon_state = "linenbin-full" + +/obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) + if(amount) + amount = 0 + update_icon() + ..() + +/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/bedsheet)) + if(!user.drop_item()) + return + I.loc = src + sheets.Add(I) + amount++ + to_chat(user, "You put [I] in [src].") + update_icon() + else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. + if(!user.drop_item()) + to_chat(user, "\The [I] is stuck to your hand, you cannot hide it among the sheets!") + return + I.loc = src + hidden = I + to_chat(user, "You hide [I] among the sheets.") + + + +/obj/structure/bedsheetbin/attack_paw(mob/user) + return attack_hand(user) + + +/obj/structure/bedsheetbin/attack_hand(mob/user) + if(user.lying) + return + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = user.loc + user.put_in_hands(B) + to_chat(user, "You take [B] out of [src].") + update_icon() + + if(hidden) + hidden.loc = user.loc + to_chat(user, "[hidden] falls out of [B]!") + hidden = null + + + add_fingerprint(user) +/obj/structure/bedsheetbin/attack_tk(mob/user) + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = loc + to_chat(user, "You telekinetically remove [B] from [src].") + update_icon() + + if(hidden) + hidden.loc = loc + hidden = null + + + add_fingerprint(user) 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 eb66e9c9b0..98a52994e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -1,283 +1,283 @@ -/obj/structure/closet/secure_closet/captains - name = "\proper captain's locker" - req_access = list(GLOB.access_captain) - icon_state = "cap" - -/obj/structure/closet/secure_closet/captains/PopulateContents() - ..() - new /obj/item/clothing/suit/hooded/wintercoat/captain(src) - if(prob(50)) - new /obj/item/weapon/storage/backpack/captain(src) - 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/backpack/dufflebag/captain(src) - new /obj/item/clothing/head/crown/fancy(src) - new /obj/item/clothing/suit/captunic(src) - new /obj/item/clothing/under/captainparade(src) - new /obj/item/clothing/head/caphat/parade(src) - new /obj/item/clothing/under/rank/captain(src) - new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) - new /obj/item/weapon/cartridge/captain(src) - new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/weapon/storage/box/silver_ids(src) - new /obj/item/device/radio/headset/heads/captain/alt(src) - new /obj/item/device/radio/headset/heads/captain(src) - new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) - new /obj/item/clothing/gloves/color/captain(src) - new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) - new /obj/item/weapon/storage/belt/sabre(src) - new /obj/item/weapon/gun/energy/e_gun(src) - new /obj/item/weapon/door_remote/captain(src) - -/obj/structure/closet/secure_closet/hop - name = "\proper head of personnel's locker" - req_access = list(GLOB.access_hop) - icon_state = "hop" - -/obj/structure/closet/secure_closet/hop/PopulateContents() - ..() - new /obj/item/clothing/neck/cloak/hop(src) - new /obj/item/clothing/under/rank/head_of_personnel(src) - new /obj/item/clothing/head/hopcap(src) - new /obj/item/weapon/cartridge/hop(src) - new /obj/item/device/radio/headset/heads/hop(src) - new /obj/item/clothing/shoes/sneakers/brown(src) - new /obj/item/weapon/storage/box/ids(src) - new /obj/item/weapon/storage/box/ids(src) - new /obj/item/device/megaphone/command(src) - new /obj/item/clothing/suit/armor/vest/alt(src) - new /obj/item/device/assembly/flash/handheld(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) - new /obj/item/weapon/gun/energy/e_gun(src) - new /obj/item/clothing/neck/petcollar(src) - new /obj/item/weapon/door_remote/civillian(src) - -/obj/structure/closet/secure_closet/hos - name = "\proper head of security's locker" - req_access = list(GLOB.access_hos) - icon_state = "hos" - -/obj/structure/closet/secure_closet/hos/PopulateContents() - ..() - new /obj/item/clothing/neck/cloak/hos(src) - new /obj/item/weapon/cartridge/hos(src) - new /obj/item/device/radio/headset/heads/hos(src) - new /obj/item/clothing/under/hosparadefem(src) - new /obj/item/clothing/under/hosparademale(src) - new /obj/item/clothing/suit/armor/vest/leather(src) - new /obj/item/clothing/suit/armor/hos(src) - new /obj/item/clothing/under/rank/head_of_security/alt(src) - new /obj/item/clothing/head/HoS(src) - new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src) - new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) - new /obj/item/device/megaphone/sec(src) - new /obj/item/weapon/holosign_creator/security(src) - new /obj/item/weapon/storage/lockbox/loyalty(src) - new /obj/item/clothing/mask/gas/sechailer/swat(src) - new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/weapon/shield/riot/tele(src) - new /obj/item/weapon/storage/belt/security/full(src) - new /obj/item/weapon/gun/energy/e_gun/hos(src) - new /obj/item/device/flashlight/seclite(src) - new /obj/item/weapon/pinpointer(src) - -/obj/structure/closet/secure_closet/warden - name = "\proper warden's locker" - req_access = list(GLOB.access_armory) - icon_state = "warden" - -/obj/structure/closet/secure_closet/warden/PopulateContents() - ..() - new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/clothing/suit/armor/vest/warden(src) - new /obj/item/clothing/head/warden(src) - new /obj/item/clothing/head/beret/sec/navywarden(src) - new /obj/item/clothing/suit/armor/vest/warden/alt(src) - new /obj/item/clothing/under/rank/warden/navyblue(src) - new /obj/item/clothing/glasses/hud/security/sunglasses(src) - new /obj/item/weapon/holosign_creator/security(src) - new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/weapon/storage/box/zipties(src) - new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/weapon/storage/belt/security/full(src) - 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/dual_tube(src) - -/obj/structure/closet/secure_closet/security - name = "security officer's locker" - req_access = list(GLOB.access_security) - icon_state = "sec" - -/obj/structure/closet/secure_closet/security/PopulateContents() - ..() - new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/head/helmet/sec(src) - new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/device/radio/headset/headset_sec/alt(src) - new /obj/item/clothing/glasses/hud/security/sunglasses(src) - new /obj/item/device/flashlight/seclite(src) - -/obj/structure/closet/secure_closet/security/sec - -/obj/structure/closet/secure_closet/security/sec/PopulateContents() - ..() - new /obj/item/weapon/storage/belt/security/full(src) - -/obj/structure/closet/secure_closet/security/cargo - -/obj/structure/closet/secure_closet/security/cargo/PopulateContents() - ..() - new /obj/item/clothing/tie/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/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/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/device/encryptionkey/headset_med(src) - -/obj/structure/closet/secure_closet/detective - name = "\proper detective's cabinet" - req_access = list(GLOB.access_forensics_lockers) - icon_state = "cabinet" - resistance_flags = FLAMMABLE - obj_integrity = 70 - max_integrity = 70 - -/obj/structure/closet/secure_closet/detective/PopulateContents() - ..() - new /obj/item/clothing/under/rank/det(src) - new /obj/item/clothing/suit/det_suit(src) - 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/suit/det_suit/grey(src) - new /obj/item/clothing/head/fedora(src) - new /obj/item/clothing/shoes/laceup(src) - new /obj/item/weapon/storage/box/evidence(src) - new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/device/detective_scanner(src) - new /obj/item/device/flashlight/seclite(src) - new /obj/item/weapon/holosign_creator/security(src) - new /obj/item/weapon/reagent_containers/spray/pepper(src) - new /obj/item/clothing/suit/armor/vest/det_suit(src) - new /obj/item/weapon/storage/belt/holster/full(src) - -/obj/structure/closet/secure_closet/injection - name = "lethal injections" - req_access = list(GLOB.access_hos) - -/obj/structure/closet/secure_closet/injection/PopulateContents() - ..() - for(var/i in 1 to 5) - new /obj/item/weapon/reagent_containers/syringe/lethal/execution(src) - -/obj/structure/closet/secure_closet/brig - name = "brig locker" - req_access = list(GLOB.access_brig) - anchored = 1 - var/id = null - -/obj/structure/closet/secure_closet/brig/PopulateContents() - ..() - new /obj/item/clothing/under/rank/prisoner( src ) - new /obj/item/clothing/shoes/sneakers/orange( src ) - -/obj/structure/closet/secure_closet/courtroom - name = "courtroom locker" - req_access = list(GLOB.access_court) - -/obj/structure/closet/secure_closet/courtroom/PopulateContents() - ..() - new /obj/item/clothing/shoes/sneakers/brown(src) - for(var/i in 1 to 3) - new /obj/item/weapon/paper/Court (src) - new /obj/item/weapon/pen (src) - new /obj/item/clothing/suit/judgerobe (src) - new /obj/item/clothing/head/powdered_wig (src) - new /obj/item/weapon/storage/briefcase(src) - -/obj/structure/closet/secure_closet/armory1 - name = "armory armor locker" - req_access = list(GLOB.access_armory) - icon_state = "armory" - -/obj/structure/closet/secure_closet/armory1/PopulateContents() - ..() - new /obj/item/clothing/suit/armor/laserproof(src) - for(var/i in 1 to 3) - new /obj/item/clothing/suit/armor/riot(src) - for(var/i in 1 to 3) - new /obj/item/clothing/head/helmet/riot(src) - for(var/i in 1 to 3) - new /obj/item/weapon/shield/riot(src) - -/obj/structure/closet/secure_closet/armory2 - name = "armory ballistics locker" - req_access = list(GLOB.access_armory) - icon_state = "armory" - -/obj/structure/closet/secure_closet/armory2/PopulateContents() - ..() - new /obj/item/weapon/storage/box/firingpins(src) - for(var/i in 1 to 3) - new /obj/item/weapon/storage/box/rubbershot(src) - for(var/i in 1 to 3) - new /obj/item/weapon/gun/ballistic/shotgun/riot(src) - -/obj/structure/closet/secure_closet/armory3 - name = "armory energy gun locker" - req_access = list(GLOB.access_armory) - icon_state = "armory" - -/obj/structure/closet/secure_closet/armory3/PopulateContents() - ..() - new /obj/item/weapon/storage/box/firingpins(src) - new /obj/item/weapon/gun/energy/ionrifle(src) - for(var/i in 1 to 3) - new /obj/item/weapon/gun/energy/e_gun(src) - for(var/i in 1 to 3) - new /obj/item/weapon/gun/energy/laser(src) - -/obj/structure/closet/secure_closet/tac - name = "armory tac locker" - req_access = list(GLOB.access_armory) - icon_state = "tac" - -/obj/structure/closet/secure_closet/tac/PopulateContents() - ..() - new /obj/item/weapon/gun/ballistic/automatic/wt550(src) - new /obj/item/clothing/head/helmet/alt(src) - new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/clothing/suit/armor/bulletproof(src) - -/obj/structure/closet/secure_closet/lethalshots - name = "shotgun lethal rounds" - req_access = list(GLOB.access_armory) - icon_state = "tac" - -/obj/structure/closet/secure_closet/lethalshots/PopulateContents() - ..() - for(var/i in 1 to 3) - new /obj/item/weapon/storage/box/lethalshot(src) +/obj/structure/closet/secure_closet/captains + name = "\proper captain's locker" + req_access = list(GLOB.access_captain) + icon_state = "cap" + +/obj/structure/closet/secure_closet/captains/PopulateContents() + ..() + new /obj/item/clothing/suit/hooded/wintercoat/captain(src) + if(prob(50)) + new /obj/item/weapon/storage/backpack/captain(src) + 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/backpack/dufflebag/captain(src) + new /obj/item/clothing/head/crown/fancy(src) + new /obj/item/clothing/suit/captunic(src) + new /obj/item/clothing/under/captainparade(src) + new /obj/item/clothing/head/caphat/parade(src) + new /obj/item/clothing/under/rank/captain(src) + new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) + new /obj/item/weapon/cartridge/captain(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/storage/box/silver_ids(src) + new /obj/item/device/radio/headset/heads/captain/alt(src) + new /obj/item/device/radio/headset/heads/captain(src) + new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) + new /obj/item/clothing/gloves/color/captain(src) + new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + new /obj/item/weapon/storage/belt/sabre(src) + new /obj/item/weapon/gun/energy/e_gun(src) + new /obj/item/weapon/door_remote/captain(src) + +/obj/structure/closet/secure_closet/hop + name = "\proper head of personnel's locker" + req_access = list(GLOB.access_hop) + icon_state = "hop" + +/obj/structure/closet/secure_closet/hop/PopulateContents() + ..() + new /obj/item/clothing/neck/cloak/hop(src) + new /obj/item/clothing/under/rank/head_of_personnel(src) + new /obj/item/clothing/head/hopcap(src) + new /obj/item/weapon/cartridge/hop(src) + new /obj/item/device/radio/headset/heads/hop(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/clothing/suit/armor/vest/alt(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + new /obj/item/weapon/gun/energy/e_gun(src) + new /obj/item/clothing/neck/petcollar(src) + new /obj/item/weapon/door_remote/civillian(src) + +/obj/structure/closet/secure_closet/hos + name = "\proper head of security's locker" + req_access = list(GLOB.access_hos) + icon_state = "hos" + +/obj/structure/closet/secure_closet/hos/PopulateContents() + ..() + new /obj/item/clothing/neck/cloak/hos(src) + new /obj/item/weapon/cartridge/hos(src) + new /obj/item/device/radio/headset/heads/hos(src) + new /obj/item/clothing/under/hosparadefem(src) + new /obj/item/clothing/under/hosparademale(src) + new /obj/item/clothing/suit/armor/vest/leather(src) + new /obj/item/clothing/suit/armor/hos(src) + new /obj/item/clothing/under/rank/head_of_security/alt(src) + new /obj/item/clothing/head/HoS(src) + new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src) + new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) + new /obj/item/device/megaphone/sec(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/weapon/storage/lockbox/loyalty(src) + new /obj/item/clothing/mask/gas/sechailer/swat(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/shield/riot/tele(src) + new /obj/item/weapon/storage/belt/security/full(src) + new /obj/item/weapon/gun/energy/e_gun/hos(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/pinpointer(src) + +/obj/structure/closet/secure_closet/warden + name = "\proper warden's locker" + req_access = list(GLOB.access_armory) + icon_state = "warden" + +/obj/structure/closet/secure_closet/warden/PopulateContents() + ..() + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/clothing/suit/armor/vest/warden(src) + new /obj/item/clothing/head/warden(src) + new /obj/item/clothing/head/beret/sec/navywarden(src) + new /obj/item/clothing/suit/armor/vest/warden/alt(src) + new /obj/item/clothing/under/rank/warden/navyblue(src) + new /obj/item/clothing/glasses/hud/security/sunglasses(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/weapon/storage/box/zipties(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/belt/security/full(src) + 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/dual_tube(src) + +/obj/structure/closet/secure_closet/security + name = "security officer's locker" + req_access = list(GLOB.access_security) + icon_state = "sec" + +/obj/structure/closet/secure_closet/security/PopulateContents() + ..() + new /obj/item/clothing/suit/armor/vest(src) + new /obj/item/clothing/head/helmet/sec(src) + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/radio/headset/headset_sec/alt(src) + new /obj/item/clothing/glasses/hud/security/sunglasses(src) + new /obj/item/device/flashlight/seclite(src) + +/obj/structure/closet/secure_closet/security/sec + +/obj/structure/closet/secure_closet/security/sec/PopulateContents() + ..() + new /obj/item/weapon/storage/belt/security/full(src) + +/obj/structure/closet/secure_closet/security/cargo + +/obj/structure/closet/secure_closet/security/cargo/PopulateContents() + ..() + new /obj/item/clothing/tie/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/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/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/device/encryptionkey/headset_med(src) + +/obj/structure/closet/secure_closet/detective + name = "\proper detective's cabinet" + req_access = list(GLOB.access_forensics_lockers) + icon_state = "cabinet" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/secure_closet/detective/PopulateContents() + ..() + new /obj/item/clothing/under/rank/det(src) + new /obj/item/clothing/suit/det_suit(src) + 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/suit/det_suit/grey(src) + new /obj/item/clothing/head/fedora(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/weapon/storage/box/evidence(src) + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/detective_scanner(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/weapon/reagent_containers/spray/pepper(src) + new /obj/item/clothing/suit/armor/vest/det_suit(src) + new /obj/item/weapon/storage/belt/holster/full(src) + +/obj/structure/closet/secure_closet/injection + name = "lethal injections" + req_access = list(GLOB.access_hos) + +/obj/structure/closet/secure_closet/injection/PopulateContents() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/syringe/lethal/execution(src) + +/obj/structure/closet/secure_closet/brig + name = "brig locker" + req_access = list(GLOB.access_brig) + anchored = 1 + var/id = null + +/obj/structure/closet/secure_closet/brig/PopulateContents() + ..() + new /obj/item/clothing/under/rank/prisoner( src ) + new /obj/item/clothing/shoes/sneakers/orange( src ) + +/obj/structure/closet/secure_closet/courtroom + name = "courtroom locker" + req_access = list(GLOB.access_court) + +/obj/structure/closet/secure_closet/courtroom/PopulateContents() + ..() + new /obj/item/clothing/shoes/sneakers/brown(src) + for(var/i in 1 to 3) + new /obj/item/weapon/paper/Court (src) + new /obj/item/weapon/pen (src) + new /obj/item/clothing/suit/judgerobe (src) + new /obj/item/clothing/head/powdered_wig (src) + new /obj/item/weapon/storage/briefcase(src) + +/obj/structure/closet/secure_closet/armory1 + name = "armory armor locker" + req_access = list(GLOB.access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory1/PopulateContents() + ..() + new /obj/item/clothing/suit/armor/laserproof(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/armor/riot(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/riot(src) + for(var/i in 1 to 3) + new /obj/item/weapon/shield/riot(src) + +/obj/structure/closet/secure_closet/armory2 + name = "armory ballistics locker" + req_access = list(GLOB.access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory2/PopulateContents() + ..() + new /obj/item/weapon/storage/box/firingpins(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/rubbershot(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/ballistic/shotgun/riot(src) + +/obj/structure/closet/secure_closet/armory3 + name = "armory energy gun locker" + req_access = list(GLOB.access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory3/PopulateContents() + ..() + new /obj/item/weapon/storage/box/firingpins(src) + new /obj/item/weapon/gun/energy/ionrifle(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/e_gun(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser(src) + +/obj/structure/closet/secure_closet/tac + name = "armory tac locker" + req_access = list(GLOB.access_armory) + icon_state = "tac" + +/obj/structure/closet/secure_closet/tac/PopulateContents() + ..() + new /obj/item/weapon/gun/ballistic/automatic/wt550(src) + new /obj/item/clothing/head/helmet/alt(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + +/obj/structure/closet/secure_closet/lethalshots + name = "shotgun lethal rounds" + req_access = list(GLOB.access_armory) + icon_state = "tac" + +/obj/structure/closet/secure_closet/lethalshots/PopulateContents() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/lethalshot(src) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index ada75846e7..4c57c55e6a 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -1,221 +1,221 @@ -//NOT using the existing /obj/machinery/door type, since that has some complications on its own, mainly based on its -//machineryness - -/obj/structure/mineral_door - name = "metal door" - density = 1 - anchored = 1 - opacity = 1 - - icon = 'icons/obj/doors/mineral_doors.dmi' - icon_state = "metal" - - var/initial_state - var/state = 0 //closed, 1 == open - var/isSwitchingStates = 0 - var/close_delay = -1 //-1 if does not auto close. - obj_integrity = 200 - max_integrity = 200 - armor = list(melee = 10, bullet = 0, laser = 0, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 50, acid = 50) - var/sheetType = /obj/item/stack/sheet/metal - var/sheetAmount = 7 - var/openSound = 'sound/effects/stonedoor_openclose.ogg' - var/closeSound = 'sound/effects/stonedoor_openclose.ogg' - CanAtmosPass = ATMOS_PASS_DENSITY - -/obj/structure/mineral_door/New(location) - ..() - initial_state = icon_state - air_update_turf(1) - -/obj/structure/mineral_door/Destroy() - density = 0 - air_update_turf(1) - return ..() - -/obj/structure/mineral_door/Move() - var/turf/T = loc - ..() - move_update_air(T) - -/obj/structure/mineral_door/Bumped(atom/user) - ..() - if(!state) - return TryToSwitchState(user) - -/obj/structure/mineral_door/attack_ai(mob/user) //those aren't machinery, they're just big fucking slabs of a mineral - if(isAI(user)) //so the AI can't open it - return - else if(iscyborg(user)) //but cyborgs can - if(get_dist(user,src) <= 1) //not remotely though - return TryToSwitchState(user) - -/obj/structure/mineral_door/attack_paw(mob/user) - return TryToSwitchState(user) - -/obj/structure/mineral_door/attack_hand(mob/user) - return TryToSwitchState(user) - -/obj/structure/mineral_door/CanPass(atom/movable/mover, turf/target, height=0) - if(istype(mover, /obj/effect/beam)) - return !opacity - return !density - -/obj/structure/mineral_door/proc/TryToSwitchState(atom/user) - if(isSwitchingStates) - return - if(isliving(user)) - var/mob/living/M = user - if(world.time - M.last_bumped <= 60) - return //NOTE do we really need that? - if(M.client) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(!C.handcuffed) - SwitchState() - else - SwitchState() - else if(istype(user, /obj/mecha)) - SwitchState() - -/obj/structure/mineral_door/proc/SwitchState() - if(state) - Close() - else - Open() - -/obj/structure/mineral_door/proc/Open() - isSwitchingStates = 1 - playsound(loc, openSound, 100, 1) - flick("[initial_state]opening",src) - sleep(10) - density = 0 - opacity = 0 - state = 1 - air_update_turf(1) - update_icon() - isSwitchingStates = 0 - - if(close_delay != -1) - addtimer(CALLBACK(src, .proc/Close), close_delay) - -/obj/structure/mineral_door/proc/Close() - if(isSwitchingStates || state != 1) - return - var/turf/T = get_turf(src) - for(var/mob/living/L in T) - return - isSwitchingStates = 1 - playsound(loc, closeSound, 100, 1) - flick("[initial_state]closing",src) - sleep(10) - density = 1 - opacity = 1 - state = 0 - air_update_turf(1) - update_icon() - isSwitchingStates = 0 - -/obj/structure/mineral_door/update_icon() - if(state) - icon_state = "[initial_state]open" - else - icon_state = initial_state - -/obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W,/obj/item/weapon/pickaxe)) - var/obj/item/weapon/pickaxe/digTool = W - to_chat(user, "You start digging the [name]...") - if(do_after(user,digTool.digspeed*(1+round(max_integrity*0.01)), target = src) && src) - to_chat(user, "You finish digging.") - deconstruct(TRUE) - else if(user.a_intent != INTENT_HARM) - attack_hand(user) - else - return ..() - -/obj/structure/mineral_door/deconstruct(disassembled = TRUE) - var/turf/T = get_turf(src) - if(disassembled) - new sheetType(T, sheetAmount) - else - new sheetType(T, max(sheetAmount - 2, 1)) - qdel(src) - -/obj/structure/mineral_door/iron - name = "iron door" - obj_integrity = 300 - max_integrity = 300 - -/obj/structure/mineral_door/silver - name = "silver door" - icon_state = "silver" - sheetType = /obj/item/stack/sheet/mineral/silver - obj_integrity = 300 - max_integrity = 300 - -/obj/structure/mineral_door/gold - name = "gold door" - icon_state = "gold" - sheetType = /obj/item/stack/sheet/mineral/gold - -/obj/structure/mineral_door/uranium - name = "uranium door" - icon_state = "uranium" - sheetType = /obj/item/stack/sheet/mineral/uranium - obj_integrity = 300 - max_integrity = 300 - light_range = 2 - -/obj/structure/mineral_door/sandstone - name = "sandstone door" - icon_state = "sandstone" - sheetType = /obj/item/stack/sheet/mineral/sandstone - obj_integrity = 100 - max_integrity = 100 - -/obj/structure/mineral_door/transparent - opacity = 0 - -/obj/structure/mineral_door/transparent/Close() - ..() - opacity = 0 - -/obj/structure/mineral_door/transparent/plasma - name = "plasma door" - icon_state = "plasma" - sheetType = /obj/item/stack/sheet/mineral/plasma - -/obj/structure/mineral_door/transparent/plasma/attackby(obj/item/weapon/W, mob/user, params) - if(W.is_hot()) - var/turf/T = get_turf(src) - message_admins("Plasma mineral door ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) - log_game("Plasma mineral door ignited by [key_name(user)] in [COORD(T)]") - TemperatureAct() - else - return ..() - -/obj/structure/mineral_door/transparent/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > 300) - TemperatureAct() - -/obj/structure/mineral_door/transparent/plasma/proc/TemperatureAct() - atmos_spawn_air("plasma=500;TEMP=1000") - deconstruct(FALSE) - -/obj/structure/mineral_door/transparent/diamond - name = "diamond door" - icon_state = "diamond" - sheetType = /obj/item/stack/sheet/mineral/diamond - obj_integrity = 1000 - max_integrity = 1000 - -/obj/structure/mineral_door/wood - name = "wood door" - icon_state = "wood" - openSound = 'sound/effects/doorcreaky.ogg' - closeSound = 'sound/effects/doorcreaky.ogg' - sheetType = /obj/item/stack/sheet/mineral/wood - resistance_flags = FLAMMABLE - obj_integrity = 200 - max_integrity = 200 +//NOT using the existing /obj/machinery/door type, since that has some complications on its own, mainly based on its +//machineryness + +/obj/structure/mineral_door + name = "metal door" + density = 1 + anchored = 1 + opacity = 1 + + icon = 'icons/obj/doors/mineral_doors.dmi' + icon_state = "metal" + + var/initial_state + var/state = 0 //closed, 1 == open + var/isSwitchingStates = 0 + var/close_delay = -1 //-1 if does not auto close. + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 10, bullet = 0, laser = 0, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 50, acid = 50) + var/sheetType = /obj/item/stack/sheet/metal + var/sheetAmount = 7 + var/openSound = 'sound/effects/stonedoor_openclose.ogg' + var/closeSound = 'sound/effects/stonedoor_openclose.ogg' + CanAtmosPass = ATMOS_PASS_DENSITY + +/obj/structure/mineral_door/New(location) + ..() + initial_state = icon_state + air_update_turf(1) + +/obj/structure/mineral_door/Destroy() + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/mineral_door/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/mineral_door/Bumped(atom/user) + ..() + if(!state) + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_ai(mob/user) //those aren't machinery, they're just big fucking slabs of a mineral + if(isAI(user)) //so the AI can't open it + return + else if(iscyborg(user)) //but cyborgs can + if(get_dist(user,src) <= 1) //not remotely though + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_paw(mob/user) + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_hand(mob/user) + return TryToSwitchState(user) + +/obj/structure/mineral_door/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover, /obj/effect/beam)) + return !opacity + return !density + +/obj/structure/mineral_door/proc/TryToSwitchState(atom/user) + if(isSwitchingStates) + return + if(isliving(user)) + var/mob/living/M = user + if(world.time - M.last_bumped <= 60) + return //NOTE do we really need that? + if(M.client) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!C.handcuffed) + SwitchState() + else + SwitchState() + else if(istype(user, /obj/mecha)) + SwitchState() + +/obj/structure/mineral_door/proc/SwitchState() + if(state) + Close() + else + Open() + +/obj/structure/mineral_door/proc/Open() + isSwitchingStates = 1 + playsound(loc, openSound, 100, 1) + flick("[initial_state]opening",src) + sleep(10) + density = 0 + opacity = 0 + state = 1 + air_update_turf(1) + update_icon() + isSwitchingStates = 0 + + if(close_delay != -1) + addtimer(CALLBACK(src, .proc/Close), close_delay) + +/obj/structure/mineral_door/proc/Close() + if(isSwitchingStates || state != 1) + return + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + return + isSwitchingStates = 1 + playsound(loc, closeSound, 100, 1) + flick("[initial_state]closing",src) + sleep(10) + density = 1 + opacity = 1 + state = 0 + air_update_turf(1) + update_icon() + isSwitchingStates = 0 + +/obj/structure/mineral_door/update_icon() + if(state) + icon_state = "[initial_state]open" + else + icon_state = initial_state + +/obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/digTool = W + to_chat(user, "You start digging the [name]...") + if(do_after(user,digTool.digspeed*(1+round(max_integrity*0.01)), target = src) && src) + to_chat(user, "You finish digging.") + deconstruct(TRUE) + else if(user.a_intent != INTENT_HARM) + attack_hand(user) + else + return ..() + +/obj/structure/mineral_door/deconstruct(disassembled = TRUE) + var/turf/T = get_turf(src) + if(disassembled) + new sheetType(T, sheetAmount) + else + new sheetType(T, max(sheetAmount - 2, 1)) + qdel(src) + +/obj/structure/mineral_door/iron + name = "iron door" + obj_integrity = 300 + max_integrity = 300 + +/obj/structure/mineral_door/silver + name = "silver door" + icon_state = "silver" + sheetType = /obj/item/stack/sheet/mineral/silver + obj_integrity = 300 + max_integrity = 300 + +/obj/structure/mineral_door/gold + name = "gold door" + icon_state = "gold" + sheetType = /obj/item/stack/sheet/mineral/gold + +/obj/structure/mineral_door/uranium + name = "uranium door" + icon_state = "uranium" + sheetType = /obj/item/stack/sheet/mineral/uranium + obj_integrity = 300 + max_integrity = 300 + light_range = 2 + +/obj/structure/mineral_door/sandstone + name = "sandstone door" + icon_state = "sandstone" + sheetType = /obj/item/stack/sheet/mineral/sandstone + obj_integrity = 100 + max_integrity = 100 + +/obj/structure/mineral_door/transparent + opacity = 0 + +/obj/structure/mineral_door/transparent/Close() + ..() + opacity = 0 + +/obj/structure/mineral_door/transparent/plasma + name = "plasma door" + icon_state = "plasma" + sheetType = /obj/item/stack/sheet/mineral/plasma + +/obj/structure/mineral_door/transparent/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_hot()) + var/turf/T = get_turf(src) + message_admins("Plasma mineral door ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(T)]",0,1) + log_game("Plasma mineral door ignited by [key_name(user)] in [COORD(T)]") + TemperatureAct() + else + return ..() + +/obj/structure/mineral_door/transparent/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + TemperatureAct() + +/obj/structure/mineral_door/transparent/plasma/proc/TemperatureAct() + atmos_spawn_air("plasma=500;TEMP=1000") + deconstruct(FALSE) + +/obj/structure/mineral_door/transparent/diamond + name = "diamond door" + icon_state = "diamond" + sheetType = /obj/item/stack/sheet/mineral/diamond + obj_integrity = 1000 + max_integrity = 1000 + +/obj/structure/mineral_door/wood + name = "wood door" + icon_state = "wood" + openSound = 'sound/effects/doorcreaky.ogg' + closeSound = 'sound/effects/doorcreaky.ogg' + sheetType = /obj/item/stack/sheet/mineral/wood + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 6ead5a263e..b82d1f65e2 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -387,8 +387,8 @@ Traitors and the like can also be revived with the previous role mostly intact. for(var/obj/effect/landmark/L in GLOB.landmarks_list) if(L.name=="carpspawn") ninja_spawn += L - var/datum/antagonist/ninja/ninjadatum = new_character.mind.has_antag_datum(ANTAG_DATUM_NINJA) - ninjadatum.equip_space_ninja() + var/datum/antagonist/ninja/ninjadatum = new_character.mind.has_antag_datum(ANTAG_DATUM_NINJA) + ninjadatum.equip_space_ninja() if(ninja_spawn.len) var/obj/effect/landmark/ninja_spawn_here = pick(ninja_spawn) new_character.loc = ninja_spawn_here.loc @@ -586,7 +586,7 @@ Traitors and the like can also be revived with the previous role mostly intact. empulse(O, heavy, light) log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") - message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") + message_admins("[key_name_admin(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") SSblackbox.add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 44c77bb19a..d8c6427477 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -1,115 +1,115 @@ -/obj/item/device/assembly/timer - name = "timer" - desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." - icon_state = "timer" - materials = list(MAT_METAL=500, MAT_GLASS=50) - origin_tech = "magnets=1;engineering=1" - attachable = 1 - - var/timing = 0 - var/time = 5 - var/saved_time = 5 - var/loop = 0 - - -/obj/item/device/assembly/timer/New() - ..() - START_PROCESSING(SSobj, src) - -/obj/item/device/assembly/timer/describe() - if(timing) - return "The timer is counting down from [time]!" - return "The timer is set for [time] seconds." - - -/obj/item/device/assembly/timer/activate() - if(!..()) - return 0//Cooldown check - timing = !timing - update_icon() - return 1 - - -/obj/item/device/assembly/timer/toggle_secure() - secured = !secured - if(secured) - START_PROCESSING(SSobj, src) - else - timing = 0 - STOP_PROCESSING(SSobj, src) - update_icon() - return secured - - -/obj/item/device/assembly/timer/proc/timer_end() - if(!secured || next_activate > world.time) - return FALSE - pulse(0) - audible_message("\icon[src] *beep* *beep*", null, 3) - if(loop) - timing = 1 - update_icon() - - -/obj/item/device/assembly/timer/process() - if(timing) - time-- - if(time <= 0) - timing = 0 - timer_end() - time = saved_time - - -/obj/item/device/assembly/timer/update_icon() - cut_overlays() - attached_overlays = list() - if(timing) - add_overlay("timer_timing") - attached_overlays += "timer_timing" - if(holder) - holder.update_icon() - - -/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires - if(is_secured(user)) - var/second = time % 60 - var/minute = (time - second) / 60 - var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" - dat += "

Stop repeating" : "1'>Set to repeat")]" - dat += "

Refresh" - dat += "

Close" - var/datum/browser/popup = new(user, "timer", name) - popup.set_content(dat) - popup.open() - - -/obj/item/device/assembly/timer/Topic(href, href_list) - ..() - if(usr.incapacitated() || !in_range(loc, usr)) - usr << browse(null, "window=timer") - onclose(usr, "timer") - return - - if(href_list["time"]) - timing = text2num(href_list["time"]) - if(timing && istype(holder, /obj/item/device/transfer_valve)) - var/timer_message = "[ADMIN_LOOKUPFLW(usr)] activated [src] attachment on [holder]." - message_admins(timer_message) - GLOB.bombers += timer_message - log_game("[key_name(usr)] activated [src] attachment on [holder]") - update_icon() - if(href_list["repeat"]) - loop = text2num(href_list["repeat"]) - - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 1), 600) - saved_time = time - - if(href_list["close"]) - usr << browse(null, "window=timer") - return - - if(usr) - attack_self(usr) +/obj/item/device/assembly/timer + name = "timer" + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." + icon_state = "timer" + materials = list(MAT_METAL=500, MAT_GLASS=50) + origin_tech = "magnets=1;engineering=1" + attachable = 1 + + var/timing = 0 + var/time = 5 + var/saved_time = 5 + var/loop = 0 + + +/obj/item/device/assembly/timer/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/assembly/timer/describe() + if(timing) + return "The timer is counting down from [time]!" + return "The timer is set for [time] seconds." + + +/obj/item/device/assembly/timer/activate() + if(!..()) + return 0//Cooldown check + timing = !timing + update_icon() + return 1 + + +/obj/item/device/assembly/timer/toggle_secure() + secured = !secured + if(secured) + START_PROCESSING(SSobj, src) + else + timing = 0 + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + + +/obj/item/device/assembly/timer/proc/timer_end() + if(!secured || next_activate > world.time) + return FALSE + pulse(0) + audible_message("\icon[src] *beep* *beep*", null, 3) + if(loop) + timing = 1 + update_icon() + + +/obj/item/device/assembly/timer/process() + if(timing) + time-- + if(time <= 0) + timing = 0 + timer_end() + time = saved_time + + +/obj/item/device/assembly/timer/update_icon() + cut_overlays() + attached_overlays = list() + if(timing) + add_overlay("timer_timing") + attached_overlays += "timer_timing" + if(holder) + holder.update_icon() + + +/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" + dat += "

Stop repeating" : "1'>Set to repeat")]" + dat += "

Refresh" + dat += "

Close" + var/datum/browser/popup = new(user, "timer", name) + popup.set_content(dat) + popup.open() + + +/obj/item/device/assembly/timer/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=timer") + onclose(usr, "timer") + return + + if(href_list["time"]) + timing = text2num(href_list["time"]) + if(timing && istype(holder, /obj/item/device/transfer_valve)) + var/timer_message = "[ADMIN_LOOKUPFLW(usr)] activated [src] attachment on [holder]." + message_admins(timer_message) + GLOB.bombers += timer_message + log_game("[key_name(usr)] activated [src] attachment on [holder]") + update_icon() + if(href_list["repeat"]) + loop = text2num(href_list["repeat"]) + + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 1), 600) + saved_time = time + + if(href_list["close"]) + usr << browse(null, "window=timer") + return + + if(usr) + attack_self(usr) diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 376e907ab6..16c786c044 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -1,142 +1,142 @@ -#define PUMP_OUT "out" -#define PUMP_IN "in" -#define PUMP_MAX_PRESSURE (ONE_ATMOSPHERE * 30) -#define PUMP_MIN_PRESSURE (ONE_ATMOSPHERE / 10) -#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE) - -/obj/machinery/portable_atmospherics/pump - name = "portable air pump" - icon_state = "psiphon:0" - density = 1 - - var/on = FALSE - var/direction = PUMP_OUT - var/obj/machinery/atmospherics/components/binary/pump/pump - - volume = 1000 - -/obj/machinery/portable_atmospherics/pump/Initialize() - ..() - pump = new(src, FALSE) - pump.on = TRUE - pump.stat = 0 - pump.build_network() - -/obj/machinery/portable_atmospherics/pump/Destroy() - var/turf/T = get_turf(src) - T.assume_air(air_contents) - air_update_turf() - qdel(pump) - pump = null - return ..() - -/obj/machinery/portable_atmospherics/pump/update_icon() - icon_state = "psiphon:[on]" - - cut_overlays() - if(holding) - add_overlay("siphon-open") - if(connected_port) - add_overlay("siphon-connector") - -/obj/machinery/portable_atmospherics/pump/process_atmos() - ..() - if(!on) - pump.AIR1 = null - pump.AIR2 = null - return - - var/turf/T = get_turf(src) - if(direction == PUMP_OUT) // Hook up the internal pump. - pump.AIR1 = holding ? holding.air_contents : air_contents - pump.AIR2 = holding ? air_contents : T.return_air() - else - pump.AIR1 = holding ? air_contents : T.return_air() - pump.AIR2 = holding ? holding.air_contents : air_contents - - pump.process_atmos() // Pump gas. - if(!holding) - air_update_turf() // Update the environment if needed. - -/obj/machinery/portable_atmospherics/pump/emp_act(severity) - if(is_operational()) - if(prob(50 / severity)) - on = !on - if(prob(100 / severity)) - direction = PUMP_OUT - pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) - update_icon() - ..() - - -/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ - datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) - ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "portable_pump", name, 420, 415, master_ui, state) - ui.open() - -/obj/machinery/portable_atmospherics/pump/ui_data() - var/data = list() - data["on"] = on - data["direction"] = direction - data["connected"] = connected_port ? 1 : 0 - data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) - data["target_pressure"] = round(pump.target_pressure ? pump.target_pressure : 0) - data["default_pressure"] = round(PUMP_DEFAULT_PRESSURE) - data["min_pressure"] = round(PUMP_MIN_PRESSURE) - data["max_pressure"] = round(PUMP_MAX_PRESSURE) - - if(holding) - data["holding"] = list() - data["holding"]["name"] = holding.name - data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) - return data - -/obj/machinery/portable_atmospherics/pump/ui_act(action, params) - if(..()) - return - switch(action) - if("power") - on = !on - if(on && !holding) - var/plasma = air_contents.gases["plasma"] - var/n2o = air_contents.gases["n2o"] - if(n2o || plasma) - var/area/A = get_area(src) - message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][ADMIN_JMP(src)]") - log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][COORD(src)]") - . = TRUE - if("direction") - if(direction == PUMP_OUT) - direction = PUMP_IN - else - direction = PUMP_OUT - . = TRUE - if("pressure") - var/pressure = params["pressure"] - if(pressure == "reset") - pressure = PUMP_DEFAULT_PRESSURE - . = TRUE - else if(pressure == "min") - pressure = PUMP_MIN_PRESSURE - . = TRUE - else if(pressure == "max") - pressure = PUMP_MAX_PRESSURE - . = TRUE - else if(pressure == "input") - pressure = input("New release pressure ([PUMP_MIN_PRESSURE]-[PUMP_MAX_PRESSURE] kPa):", name, pump.target_pressure) as num|null - if(!isnull(pressure) && !..()) - . = TRUE - else if(text2num(pressure) != null) - pressure = text2num(pressure) - . = TRUE - if(.) - pump.target_pressure = Clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) - investigate_log("was set to [pump.target_pressure] kPa by [key_name(usr)].", "atmos") - if("eject") - if(holding) - holding.loc = get_turf(src) - holding = null - . = TRUE +#define PUMP_OUT "out" +#define PUMP_IN "in" +#define PUMP_MAX_PRESSURE (ONE_ATMOSPHERE * 30) +#define PUMP_MIN_PRESSURE (ONE_ATMOSPHERE / 10) +#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE) + +/obj/machinery/portable_atmospherics/pump + name = "portable air pump" + icon_state = "psiphon:0" + density = 1 + + var/on = FALSE + var/direction = PUMP_OUT + var/obj/machinery/atmospherics/components/binary/pump/pump + + volume = 1000 + +/obj/machinery/portable_atmospherics/pump/Initialize() + ..() + pump = new(src, FALSE) + pump.on = TRUE + pump.stat = 0 + pump.build_network() + +/obj/machinery/portable_atmospherics/pump/Destroy() + var/turf/T = get_turf(src) + T.assume_air(air_contents) + air_update_turf() + qdel(pump) + pump = null + return ..() + +/obj/machinery/portable_atmospherics/pump/update_icon() + icon_state = "psiphon:[on]" + + cut_overlays() + if(holding) + add_overlay("siphon-open") + if(connected_port) + add_overlay("siphon-connector") + +/obj/machinery/portable_atmospherics/pump/process_atmos() + ..() + if(!on) + pump.AIR1 = null + pump.AIR2 = null + return + + var/turf/T = get_turf(src) + if(direction == PUMP_OUT) // Hook up the internal pump. + pump.AIR1 = holding ? holding.air_contents : air_contents + pump.AIR2 = holding ? air_contents : T.return_air() + else + pump.AIR1 = holding ? air_contents : T.return_air() + pump.AIR2 = holding ? holding.air_contents : air_contents + + pump.process_atmos() // Pump gas. + if(!holding) + air_update_turf() // Update the environment if needed. + +/obj/machinery/portable_atmospherics/pump/emp_act(severity) + if(is_operational()) + if(prob(50 / severity)) + on = !on + if(prob(100 / severity)) + direction = PUMP_OUT + pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) + update_icon() + ..() + + +/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "portable_pump", name, 420, 415, master_ui, state) + ui.open() + +/obj/machinery/portable_atmospherics/pump/ui_data() + var/data = list() + data["on"] = on + data["direction"] = direction + data["connected"] = connected_port ? 1 : 0 + data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["target_pressure"] = round(pump.target_pressure ? pump.target_pressure : 0) + data["default_pressure"] = round(PUMP_DEFAULT_PRESSURE) + data["min_pressure"] = round(PUMP_MIN_PRESSURE) + data["max_pressure"] = round(PUMP_MAX_PRESSURE) + + if(holding) + data["holding"] = list() + data["holding"]["name"] = holding.name + data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) + return data + +/obj/machinery/portable_atmospherics/pump/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + if(on && !holding) + var/plasma = air_contents.gases["plasma"] + var/n2o = air_contents.gases["n2o"] + if(n2o || plasma) + var/area/A = get_area(src) + message_admins("[ADMIN_LOOKUPFLW(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][ADMIN_JMP(src)]") + log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [A][COORD(src)]") + . = TRUE + if("direction") + if(direction == PUMP_OUT) + direction = PUMP_IN + else + direction = PUMP_OUT + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "reset") + pressure = PUMP_DEFAULT_PRESSURE + . = TRUE + else if(pressure == "min") + pressure = PUMP_MIN_PRESSURE + . = TRUE + else if(pressure == "max") + pressure = PUMP_MAX_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New release pressure ([PUMP_MIN_PRESSURE]-[PUMP_MAX_PRESSURE] kPa):", name, pump.target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + pump.target_pressure = Clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) + investigate_log("was set to [pump.target_pressure] kPa by [key_name(usr)].", "atmos") + if("eject") + if(holding) + holding.loc = get_turf(src) + holding = null + . = TRUE update_icon() \ No newline at end of file diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 9b5876c239..4d5d4eb80c 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -75,8 +75,6 @@ H.dna.features["ears"] = "None" H.regenerate_icons() - handle_roundstart_items(H) - /datum/job/proc/get_access() if(!config) //Needed for robots. return src.minimal_access.Copy() diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index a5d07591b5..f4824a96a2 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -1,93 +1,93 @@ - - -/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins) - if(!z_levels || !z_levels.len) - WARNING("No Z levels provided - Not generating ruins") - return - - for(var/zl in z_levels) - var/turf/T = locate(1, 1, zl) - if(!T) - WARNING("Z level [zl] does not exist - Not generating ruins") - return - - var/overall_sanity = 100 - var/list/ruins = potentialRuins.Copy() - - while(budget > 0 && overall_sanity > 0) - // Pick a ruin - var/datum/map_template/ruin/ruin = null - if(ruins && ruins.len) - ruin = ruins[pick(ruins)] - else - log_world("Ruin loader had no ruins to pick from with [budget] left to spend.") - break - // Can we afford it - if(ruin.cost > budget) - overall_sanity-- - continue - // If so, try to place it - var/sanity = 100 - // And if we can't fit it anywhere, give up, try again - - while(sanity > 0) - sanity-- - var/width_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(ruin.width / 2) - var/height_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(ruin.height / 2) - var/z_level = pick(z_levels) - var/turf/T = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z_level) - var/valid = TRUE - - for(var/turf/check in ruin.get_affected_turfs(T,1)) - var/area/new_area = get_area(check) - if(!(istype(new_area, whitelist))) - valid = FALSE - break - - if(!valid) - continue - - log_world("Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])") - - var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T) - R.Load(ruins,ruin) - budget -= ruin.cost - if(!ruin.allow_duplicates) - ruins -= ruin.name - break - - if(!overall_sanity) - log_world("Ruin loader gave up with [budget] left to spend.") - - -/obj/effect/ruin_loader - name = "random ruin" - icon = 'icons/obj/weapons.dmi' - icon_state = "syndballoon" - invisibility = 0 - -/obj/effect/ruin_loader/proc/Load(list/potentialRuins, datum/map_template/template) - var/list/possible_ruins = list() - for(var/A in potentialRuins) - var/datum/map_template/T = potentialRuins[A] - if(!T.loaded) - possible_ruins += T - if(!template && possible_ruins.len) - template = safepick(possible_ruins) - if(!template) - return FALSE - var/turf/central_turf = get_turf(src) - for(var/i in template.get_affected_turfs(central_turf, 1)) - var/turf/T = i - for(var/mob/living/simple_animal/monster in T) - qdel(monster) - for(var/obj/structure/flora/ash/plant in T) - qdel(plant) - template.load(central_turf,centered = TRUE) - template.loaded++ - var/datum/map_template/ruin = template - if(istype(ruin)) - new /obj/effect/landmark/ruin(central_turf, ruin) - - qdel(src) - return TRUE + + +/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins) + if(!z_levels || !z_levels.len) + WARNING("No Z levels provided - Not generating ruins") + return + + for(var/zl in z_levels) + var/turf/T = locate(1, 1, zl) + if(!T) + WARNING("Z level [zl] does not exist - Not generating ruins") + return + + var/overall_sanity = 100 + var/list/ruins = potentialRuins.Copy() + + while(budget > 0 && overall_sanity > 0) + // Pick a ruin + var/datum/map_template/ruin/ruin = null + if(ruins && ruins.len) + ruin = ruins[pick(ruins)] + else + log_world("Ruin loader had no ruins to pick from with [budget] left to spend.") + break + // Can we afford it + if(ruin.cost > budget) + overall_sanity-- + continue + // If so, try to place it + var/sanity = 100 + // And if we can't fit it anywhere, give up, try again + + while(sanity > 0) + sanity-- + var/width_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(ruin.width / 2) + var/height_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(ruin.height / 2) + var/z_level = pick(z_levels) + var/turf/T = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z_level) + var/valid = TRUE + + for(var/turf/check in ruin.get_affected_turfs(T,1)) + var/area/new_area = get_area(check) + if(!(istype(new_area, whitelist))) + valid = FALSE + break + + if(!valid) + continue + + log_world("Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])") + + var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T) + R.Load(ruins,ruin) + budget -= ruin.cost + if(!ruin.allow_duplicates) + ruins -= ruin.name + break + + if(!overall_sanity) + log_world("Ruin loader gave up with [budget] left to spend.") + + +/obj/effect/ruin_loader + name = "random ruin" + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + invisibility = 0 + +/obj/effect/ruin_loader/proc/Load(list/potentialRuins, datum/map_template/template) + var/list/possible_ruins = list() + for(var/A in potentialRuins) + var/datum/map_template/T = potentialRuins[A] + if(!T.loaded) + possible_ruins += T + if(!template && possible_ruins.len) + template = safepick(possible_ruins) + if(!template) + return FALSE + var/turf/central_turf = get_turf(src) + for(var/i in template.get_affected_turfs(central_turf, 1)) + var/turf/T = i + for(var/mob/living/simple_animal/monster in T) + qdel(monster) + for(var/obj/structure/flora/ash/plant in T) + qdel(plant) + template.load(central_turf,centered = TRUE) + template.loaded++ + var/datum/map_template/ruin = template + if(istype(ruin)) + new /obj/effect/landmark/ruin(central_turf, ruin) + + qdel(src) + return TRUE diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index c22418cbd6..e3943d07e6 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -24,10 +24,10 @@ loc = pick(GLOB.newplayer_start) else loc = locate(1,1,1) - . = ..() - -/mob/dead/new_player/prepare_huds() - return + . = ..() + +/mob/dead/new_player/prepare_huds() + return /mob/dead/new_player/proc/new_player_panel() @@ -146,7 +146,7 @@ return 1 if(href_list["late_join"]) - if(!SSticker || !SSticker.IsRoundInProgress()) + if(!SSticker || !SSticker.IsRoundInProgress()) to_chat(usr, "The round is either not ready, or has already finished...") return @@ -371,7 +371,6 @@ if(SHUTTLE_CALL) if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5) SSticker.mode.make_antag_chance(humanc) - handle_roundstart_items(character) qdel(src) /mob/dead/new_player/proc/AddEmploymentContract(mob/living/carbon/human/employee) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 4a650ae165..2c3b8bdbd4 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -354,8 +354,8 @@ dropItemToGround(I) drop_all_held_items() -/obj/item/proc/equip_to_best_slot(var/mob/M, override_held_check = FALSE) - if((src != M.get_active_held_item()) && !override_held_check) +/obj/item/proc/equip_to_best_slot(var/mob/M) + if(src != M.get_active_held_item()) to_chat(M, "You are not holding anything to equip!") return FALSE diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 1b5518008e..21e1a5648e 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -1,245 +1,245 @@ -/mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = 0) - return dna.species.can_equip(I, slot, disable_warning, src) - -// Return the item currently in the slot ID -/mob/living/carbon/human/get_item_by_slot(slot_id) - switch(slot_id) - if(slot_back) - return back - if(slot_wear_mask) - return wear_mask - if(slot_neck) - return wear_neck - if(slot_handcuffed) - return handcuffed - if(slot_legcuffed) - return legcuffed - if(slot_belt) - return belt - if(slot_wear_id) - return wear_id - if(slot_ears) - return ears - if(slot_glasses) - return glasses - if(slot_gloves) - return gloves - if(slot_head) - return head - if(slot_shoes) - return shoes - if(slot_wear_suit) - return wear_suit - if(slot_w_uniform) - return w_uniform - if(slot_l_store) - return l_store - if(slot_r_store) - return r_store - if(slot_s_store) - return s_store - return null - -/mob/living/carbon/human/proc/get_all_slots() - . = get_head_slots() | get_body_slots() - -/mob/living/carbon/human/proc/get_body_slots() - return list( - back, - s_store, - handcuffed, - legcuffed, - wear_suit, - gloves, - shoes, - belt, - wear_id, - l_store, - r_store, - w_uniform - ) - -/mob/living/carbon/human/proc/get_head_slots() - return list( - head, - wear_mask, - glasses, - ears, - ) - -/mob/living/carbon/human/proc/get_storage_slots() - return list( - back, - belt, - l_store, - r_store, - s_store, - ) - -//This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() -/mob/living/carbon/human/equip_to_slot(obj/item/I, slot) - if(!..()) //a check failed or the item has already found its slot - return - - var/not_handled = FALSE //Added in case we make this type path deeper one day - switch(slot) - if(slot_belt) - belt = I - update_inv_belt() - if(slot_wear_id) - wear_id = I - sec_hud_set_ID() - update_inv_wear_id() - if(slot_ears) - ears = I - update_inv_ears() - if(slot_glasses) - glasses = I - var/obj/item/clothing/glasses/G = I - if(G.glass_colour_type) - update_glasses_color(G, 1) - if(G.tint) - update_tint() - if(G.vision_correction) - clear_fullscreen("nearsighted") - if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) - update_sight() - update_inv_glasses() - if(slot_gloves) - gloves = I - update_inv_gloves() - if(slot_shoes) - shoes = I - update_inv_shoes() - if(slot_wear_suit) - wear_suit = I - if(I.flags_inv & HIDEJUMPSUIT) - update_inv_w_uniform() - if(wear_suit.breakouttime) //when equipping a straightjacket - stop_pulling() //can't pull if restrained - update_action_buttons_icon() //certain action buttons will no longer be usable. - update_inv_wear_suit() - if(slot_w_uniform) - w_uniform = I - update_suit_sensors() - update_inv_w_uniform() - if(slot_l_store) - l_store = I - update_inv_pockets() - if(slot_r_store) - r_store = I - update_inv_pockets() - if(slot_s_store) - s_store = I - update_inv_s_store() - else - to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") - - //Item is handled and in slot, valid to call callback, for this proc should always be true - if(!not_handled) - I.equipped(src, slot) - - return not_handled //For future deeper overrides - -/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) - var/index = get_held_index_of_item(I) - . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. - if(!. || !I) - return - if(index && dna.species.mutanthands) - put_in_hand(new dna.species.mutanthands(), index) - if(I == wear_suit) - if(s_store && invdrop) - dropItemToGround(s_store, TRUE) //It makes no sense for your suit storage to stay on you if you drop your suit. - if(wear_suit.breakouttime) //when unequipping a straightjacket - update_action_buttons_icon() //certain action buttons may be usable again. - wear_suit = null - if(I.flags_inv & HIDEJUMPSUIT) - update_inv_w_uniform() - update_inv_wear_suit() - else if(I == w_uniform) - if(invdrop) - if(r_store) - dropItemToGround(r_store, TRUE) //Again, makes sense for pockets to drop. - if(l_store) - dropItemToGround(l_store, TRUE) - if(wear_id) - dropItemToGround(wear_id) - if(belt) - dropItemToGround(belt) - w_uniform = null - update_suit_sensors() - update_inv_w_uniform(invdrop) - else if(I == gloves) - gloves = null - update_inv_gloves() - else if(I == glasses) - glasses = null - var/obj/item/clothing/glasses/G = I - if(G.glass_colour_type) - update_glasses_color(G, 0) - if(G.tint) - update_tint() - if(G.vision_correction) - if(disabilities & NEARSIGHT) - overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1) - if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) - update_sight() - update_inv_glasses() - else if(I == ears) - ears = null - update_inv_ears() - else if(I == shoes) - shoes = null - update_inv_shoes() - else if(I == belt) - belt = null - update_inv_belt() - else if(I == wear_id) - wear_id = null - sec_hud_set_ID() - update_inv_wear_id() - else if(I == r_store) - r_store = null - update_inv_pockets() - else if(I == l_store) - l_store = null - update_inv_pockets() - else if(I == s_store) - s_store = null - update_inv_s_store() - -/mob/living/carbon/human/wear_mask_update(obj/item/clothing/C, toggle_off = 1) - if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR))) - update_hair() - if(toggle_off && internal && !getorganslot("breathing_tube")) - update_internals_hud_icon(0) - internal = null - if(C.flags_inv & HIDEEYES) - update_inv_glasses() - sec_hud_set_security_status() - ..() - -/mob/living/carbon/human/head_update(obj/item/I, forced) - if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || forced) - update_hair() - if(I.flags_inv & HIDEEYES || forced) - update_inv_glasses() - if(I.flags_inv & HIDEEARS || forced) - update_body() - sec_hud_set_security_status() - ..() - -/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) - var/datum/outfit/O = null - - if(ispath(outfit)) - O = new outfit - else - O = outfit - if(!istype(O)) - return 0 - if(!O) - return 0 - - return O.equip(src, visualsOnly) +/mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = 0) + return dna.species.can_equip(I, slot, disable_warning, src) + +// Return the item currently in the slot ID +/mob/living/carbon/human/get_item_by_slot(slot_id) + switch(slot_id) + if(slot_back) + return back + if(slot_wear_mask) + return wear_mask + if(slot_neck) + return wear_neck + if(slot_handcuffed) + return handcuffed + if(slot_legcuffed) + return legcuffed + if(slot_belt) + return belt + if(slot_wear_id) + return wear_id + if(slot_ears) + return ears + if(slot_glasses) + return glasses + if(slot_gloves) + return gloves + if(slot_head) + return head + if(slot_shoes) + return shoes + if(slot_wear_suit) + return wear_suit + if(slot_w_uniform) + return w_uniform + if(slot_l_store) + return l_store + if(slot_r_store) + return r_store + if(slot_s_store) + return s_store + return null + +/mob/living/carbon/human/proc/get_all_slots() + . = get_head_slots() | get_body_slots() + +/mob/living/carbon/human/proc/get_body_slots() + return list( + back, + s_store, + handcuffed, + legcuffed, + wear_suit, + gloves, + shoes, + belt, + wear_id, + l_store, + r_store, + w_uniform + ) + +/mob/living/carbon/human/proc/get_head_slots() + return list( + head, + wear_mask, + glasses, + ears, + ) + +/mob/living/carbon/human/proc/get_storage_slots() + return list( + back, + belt, + l_store, + r_store, + s_store, + ) + +//This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() +/mob/living/carbon/human/equip_to_slot(obj/item/I, slot) + if(!..()) //a check failed or the item has already found its slot + return + + var/not_handled = FALSE //Added in case we make this type path deeper one day + switch(slot) + if(slot_belt) + belt = I + update_inv_belt() + if(slot_wear_id) + wear_id = I + sec_hud_set_ID() + update_inv_wear_id() + if(slot_ears) + ears = I + update_inv_ears() + if(slot_glasses) + glasses = I + var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 1) + if(G.tint) + update_tint() + if(G.vision_correction) + clear_fullscreen("nearsighted") + if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) + update_sight() + update_inv_glasses() + if(slot_gloves) + gloves = I + update_inv_gloves() + if(slot_shoes) + shoes = I + update_inv_shoes() + if(slot_wear_suit) + wear_suit = I + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() + if(wear_suit.breakouttime) //when equipping a straightjacket + stop_pulling() //can't pull if restrained + update_action_buttons_icon() //certain action buttons will no longer be usable. + update_inv_wear_suit() + if(slot_w_uniform) + w_uniform = I + update_suit_sensors() + update_inv_w_uniform() + if(slot_l_store) + l_store = I + update_inv_pockets() + if(slot_r_store) + r_store = I + update_inv_pockets() + if(slot_s_store) + s_store = I + update_inv_s_store() + else + to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") + + //Item is handled and in slot, valid to call callback, for this proc should always be true + if(!not_handled) + I.equipped(src, slot) + + return not_handled //For future deeper overrides + +/mob/living/carbon/human/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE) + var/index = get_held_index_of_item(I) + . = ..() //See mob.dm for an explanation on this and some rage about people copypasting instead of calling ..() like they should. + if(!. || !I) + return + if(index && dna.species.mutanthands) + put_in_hand(new dna.species.mutanthands(), index) + if(I == wear_suit) + if(s_store && invdrop) + dropItemToGround(s_store, TRUE) //It makes no sense for your suit storage to stay on you if you drop your suit. + if(wear_suit.breakouttime) //when unequipping a straightjacket + update_action_buttons_icon() //certain action buttons may be usable again. + wear_suit = null + if(I.flags_inv & HIDEJUMPSUIT) + update_inv_w_uniform() + update_inv_wear_suit() + else if(I == w_uniform) + if(invdrop) + if(r_store) + dropItemToGround(r_store, TRUE) //Again, makes sense for pockets to drop. + if(l_store) + dropItemToGround(l_store, TRUE) + if(wear_id) + dropItemToGround(wear_id) + if(belt) + dropItemToGround(belt) + w_uniform = null + update_suit_sensors() + update_inv_w_uniform(invdrop) + else if(I == gloves) + gloves = null + update_inv_gloves() + else if(I == glasses) + glasses = null + var/obj/item/clothing/glasses/G = I + if(G.glass_colour_type) + update_glasses_color(G, 0) + if(G.tint) + update_tint() + if(G.vision_correction) + if(disabilities & NEARSIGHT) + overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1) + if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) + update_sight() + update_inv_glasses() + else if(I == ears) + ears = null + update_inv_ears() + else if(I == shoes) + shoes = null + update_inv_shoes() + else if(I == belt) + belt = null + update_inv_belt() + else if(I == wear_id) + wear_id = null + sec_hud_set_ID() + update_inv_wear_id() + else if(I == r_store) + r_store = null + update_inv_pockets() + else if(I == l_store) + l_store = null + update_inv_pockets() + else if(I == s_store) + s_store = null + update_inv_s_store() + +/mob/living/carbon/human/wear_mask_update(obj/item/clothing/C, toggle_off = 1) + if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR))) + update_hair() + if(toggle_off && internal && !getorganslot("breathing_tube")) + update_internals_hud_icon(0) + internal = null + if(C.flags_inv & HIDEEYES) + update_inv_glasses() + sec_hud_set_security_status() + ..() + +/mob/living/carbon/human/head_update(obj/item/I, forced) + if((I.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || forced) + update_hair() + if(I.flags_inv & HIDEEYES || forced) + update_inv_glasses() + if(I.flags_inv & HIDEEARS || forced) + update_body() + sec_hud_set_security_status() + ..() + +/mob/living/carbon/human/proc/equipOutfit(outfit, visualsOnly = FALSE) + var/datum/outfit/O = null + + if(ispath(outfit)) + O = new outfit + else + O = outfit + if(!istype(O)) + return 0 + if(!O) + return 0 + + return O.equip(src, visualsOnly) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index af24d7b6c4..aba76f570a 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -1,699 +1,699 @@ -/datum/species/golem - // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. - name = "Golem" - id = "iron golem" - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) - mutant_organs = list(/obj/item/organ/adamantine_resonator) - speedmod = 2 - armor = 55 - siemens_coeff = 0 - punchdamagelow = 5 - punchdamagehigh = 14 - punchstunthreshold = 11 //about 40% chance to stun - no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store) - nojumpsuit = 1 - sexes = 1 - damage_overlay_type = "" - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem - // To prevent golem subtypes from overwhelming the odds when random species - // changes, only the Random Golem type can be chosen - blacklisted = TRUE - dangerous_existence = TRUE - limbs_id = "golem" - fixed_mut_color = "aaa" - var/info_text = "As an Iron Golem, you don't have any special traits." - - var/prefix = "Iron" - var/list/special_names - var/human_surname_chance = 3 - var/special_name_chance = 5 - -/datum/species/golem/random_name(gender,unique,lastname) - var/golem_surname = pick(GLOB.golem_names) - // 3% chance that our golem has a human surname, because - // cultural contamination - if(prob(human_surname_chance)) - golem_surname = pick(GLOB.last_names) - else if(special_names && special_names.len && prob(special_name_chance)) - golem_surname = pick(special_names) - - var/golem_name = "[prefix] [golem_surname]" - return golem_name - -/datum/species/golem/random - name = "Random Golem" - blacklisted = FALSE - dangerous_existence = FALSE - -/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - var/list/golem_types = typesof(/datum/species/golem) - src.type - var/datum/species/golem/golem_type = pick(golem_types) - var/mob/living/carbon/human/H = C - H.set_species(golem_type) - to_chat(H, "[initial(golem_type.info_text)]") - -/datum/species/golem/adamantine - name = "Adamantine Golem" - id = "adamantine golem" - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine - mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine) - fixed_mut_color = "4ed" - info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems." - prefix = "Adamantine" - -//The suicide bombers of golemkind -/datum/species/golem/plasma - name = "Plasma Golem" - id = "plasma golem" - fixed_mut_color = "a3d" - meat = /obj/item/weapon/ore/plasma - //Can burn and takes damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) - info_text = "As a Plasma Golem, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!" - heatmod = 0 //fine until they blow up - prefix = "Plasma" - special_names = list("Flood","Fire","Bar","Man") - var/boom_warning = FALSE - var/datum/action/innate/ignite/ignite - -/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) - if(H.bodytemperature > 750) - if(!boom_warning && H.on_fire) - to_chat(H, "You feel like you could blow up at any moment!") - boom_warning = TRUE - else - if(boom_warning) - to_chat(H, "You feel more stable.") - boom_warning = FALSE - - if(H.bodytemperature > 850 && H.on_fire && prob(25)) - explosion(get_turf(H),1,2,4,flame_range = 5) - if(H) - H.gib() - if(H.fire_stacks < 2) //flammable - H.adjust_fire_stacks(1) - ..() - -/datum/species/golem/plasma/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - ignite = new - ignite.Grant(C) - -/datum/species/golem/plasma/on_species_loss(mob/living/carbon/C) - if(ignite) - ignite.Remove(C) - ..() - -/datum/action/innate/ignite - name = "Ignite" - desc = "Set yourself aflame, bringing yourself closer to exploding!" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "sacredflame" - -/datum/action/innate/ignite/Activate() - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - if(H.fire_stacks) - to_chat(owner, "You ignite yourself!") - else - to_chat(owner, "You try ignite yourself, but fail!") - H.IgniteMob() //firestacks are already there passively - -//Harder to hurt -/datum/species/golem/diamond - name = "Diamond Golem" - id = "diamond golem" - fixed_mut_color = "0ff" - armor = 70 //up from 55 - meat = /obj/item/weapon/ore/diamond - info_text = "As a Diamond Golem, you are more resistant than the average golem." - prefix = "Diamond" - special_names = list("Back") - -//Faster but softer and less armoured -/datum/species/golem/gold - name = "Gold Golem" - id = "gold golem" - fixed_mut_color = "cc0" - speedmod = 1 - armor = 25 //down from 55 - meat = /obj/item/weapon/ore/gold - info_text = "As a Gold Golem, you are faster but less resistant than the average golem." - prefix = "Golden" - -//Heavier, thus higher chance of stunning when punching -/datum/species/golem/silver - name = "Silver Golem" - id = "silver golem" - fixed_mut_color = "ddd" - punchstunthreshold = 9 //60% chance, from 40% - meat = /obj/item/weapon/ore/silver - info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." - prefix = "Silver" - special_names = list("Surfer", "Chariot", "Lining") - -//Harder to stun, deals more damage, but it's even slower -/datum/species/golem/plasteel - name = "Plasteel Golem" - id = "plasteel golem" - fixed_mut_color = "bbb" - stunmod = 0.40 - punchdamagelow = 12 - punchdamagehigh = 21 - punchstunthreshold = 18 //still 40% stun chance - speedmod = 4 //pretty fucking slow - meat = /obj/item/weapon/ore/iron - info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." - attack_verb = "smash" - attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard - prefix = "Plasteel" - -//Immune to ash storms -/datum/species/golem/titanium - name = "Titanium Golem" - id = "titanium golem" - fixed_mut_color = "fff" - meat = /obj/item/weapon/ore/titanium - info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." - burnmod = 0.9 - prefix = "Titanium" - -/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "ash" - -/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - -//Immune to ash storms and lava -/datum/species/golem/plastitanium - name = "Plastitanium Golem" - id = "plastitanium golem" - fixed_mut_color = "888" - meat = /obj/item/weapon/ore/titanium - info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." - burnmod = 0.8 - prefix = "Plastitanium" - -/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.weather_immunities |= "lava" - C.weather_immunities |= "ash" - -/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) - . = ..() - C.weather_immunities -= "ash" - C.weather_immunities -= "lava" - -//Fast and regenerates... but can only speak like an abductor -/datum/species/golem/alloy - name = "Alien Alloy Golem" - id = "alloy golem" - fixed_mut_color = "333" - meat = /obj/item/stack/sheet/mineral/abductor - mutanttongue = /obj/item/organ/tongue/abductor - speedmod = 1 //faster - info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." - prefix = "Alien" - special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown - -//Regenerates because self-repairing super-advanced alien tech -/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - H.heal_overall_damage(2,2) - H.adjustToxLoss(-2) - H.adjustOxyLoss(-2) - -//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races -/datum/species/golem/wood - name = "Wood Golem" - id = "wood golem" - fixed_mut_color = "49311c" - meat = /obj/item/stack/sheet/mineral/wood - //Can burn and take damage from heat - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) - armor = 30 - burnmod = 1.25 - heatmod = 1.5 - info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." - prefix = "Wooden" - special_names = list("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") - human_surname_chance = 0 - special_name_chance = 100 - -/datum/species/golem/wood/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.faction |= "plants" - C.faction |= "vines" - -/datum/species/golem/wood/on_species_loss(mob/living/carbon/C) - . = ..() - C.faction -= "plants" - C.faction -= "vines" - -/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.nutrition += light_amount * 10 - if(H.nutrition > NUTRITION_LEVEL_FULL) - H.nutrition = NUTRITION_LEVEL_FULL - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(1,1) - H.adjustToxLoss(-1) - H.adjustOxyLoss(-1) - - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) - H.take_overall_damage(2,0) - -/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "plantbgone") - H.adjustToxLoss(3) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - return 1 - -//Radioactive -/datum/species/golem/uranium - name = "Uranium Golem" - id = "uranium golem" - fixed_mut_color = "7f0" - meat = /obj/item/weapon/ore/uranium - info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." - - var/last_event = 0 - var/active = null - prefix = "Uranium" - -/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_event+30) - active = 1 - radiation_pulse(get_turf(H), 3, 3, 5, 0) - last_event = world.time - active = null - ..() - -//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. -/datum/species/golem/sand - name = "Sand Golem" - id = "sand golem" - fixed_mut_color = "ffdc8f" - meat = /obj/item/weapon/ore/glass //this is sand - armor = 0 - burnmod = 3 //melts easily - brutemod = 0.25 - info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage. You will also turn to sand when dying, preventing any form of recovery." - attack_sound = 'sound/effects/shovel_dig.ogg' - prefix = "Sand" - -/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) - H.visible_message("[H] turns into a pile of sand!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/weapon/ore/glass(get_turf(H)) - qdel(H) - -/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) - if(P.flag == "bullet" || P.flag == "bomb") - playsound(H, 'sound/effects/shovel_dig.ogg', 70, 1) - H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ - "The [P.name] sinks harmlessly in [H]'s sandy body!") - return 2 - return 0 - -//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. -/datum/species/golem/glass - name = "Glass Golem" - id = "glass golem" - fixed_mut_color = "5a96b4aa" //transparent body - meat = /obj/item/weapon/shard - armor = 0 - brutemod = 3 //very fragile - burnmod = 0.25 - info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." - attack_sound = 'sound/effects/Glassbr2.ogg' - prefix = "Glass" - -/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) - playsound(H, "shatter", 70, 1) - H.visible_message("[H] shatters!") - for(var/obj/item/W in H) - H.dropItemToGround(W) - for(var/i=1, i <= rand(3,5), i++) - new /obj/item/weapon/shard(get_turf(H)) - qdel(H) - -/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) - if(!(P.original == H && P.firer == H)) //self-shots don't reflect - if(P.flag == "laser" || P.flag == "energy") - H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ - "The [P.name] gets reflected by [H]'s glass skin!") - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(H) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.current = curloc - P.firer = H - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - P.Angle = null - return -1 - return 0 - -//Teleports when hit or when it wants to -/datum/species/golem/bluespace - name = "Bluespace Golem" - id = "bluespace golem" - fixed_mut_color = "33f" - meat = /obj/item/weapon/ore/bluespace_crystal - info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." - attack_verb = "bluespace punch" - attack_sound = 'sound/effects/phasein.ogg' - prefix = "Bluespace" - special_names = list("Crystal", "Polycrystal") - - var/datum/action/innate/unstable_teleport/unstable_teleport - var/teleport_cooldown = 100 - var/last_teleport = 0 - -/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) - H.visible_message("[H] teleports!", "You destabilize and teleport!") - new /obj/effect/particle_effect/sparks(get_turf(H)) - playsound(get_turf(H), "sparks", 50, 1) - do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg') - last_teleport = world.time - -/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport - return 0 - else - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) - ..() - if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) - reactive_teleport(H) - -/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown && user != H) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_teleport + teleport_cooldown) - reactive_teleport(H) - -/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) - ..() - if(ishuman(C)) - unstable_teleport = new - unstable_teleport.Grant(C) - -/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) - if(unstable_teleport) - unstable_teleport.Remove(C) - ..() - -/datum/action/innate/unstable_teleport - name = "Unstable Teleport" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "jaunt" - var/cooldown = 150 - var/last_teleport = 0 - -/datum/action/innate/unstable_teleport/IsAvailable() - if(..()) - if(world.time > last_teleport + cooldown) - return 1 - return 0 - -/datum/action/innate/unstable_teleport/Activate() - var/mob/living/carbon/human/H = owner - H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") - playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) - addtimer(CALLBACK(src, .proc/teleport, H), 15) - -/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) - H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") - var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(10, 0, src) - spark_system.attach(H) - spark_system.start() - do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg') - last_teleport = world.time - UpdateButtonIcon() //action icon looks unavailable - sleep(cooldown + 5) - UpdateButtonIcon() //action icon looks available again - - -//honk -/datum/species/golem/bananium - name = "Bananium Golem" - id = "bananium golem" - fixed_mut_color = "ff0" - say_mod = "honks" - punchdamagelow = 0 - punchdamagehigh = 1 - punchstunthreshold = 2 //Harmless and can't stun - meat = /obj/item/weapon/ore/bananium - info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." - attack_verb = "honk" - attack_sound = 'sound/items/AirHorn2.ogg' - prefix = "Bananium" - - var/last_honk = 0 - var/honkooldown = 0 - var/last_banana = 0 - var/banana_cooldown = 100 - var/active = null - -/datum/species/golem/bananium/random_name(gender,unique,lastname) - var/clown_name = pick(GLOB.clown_names) - var/golem_name = "[uppertext(clown_name)]" - return golem_name - -/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) - ..() - if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown && user != H) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) - ..() - if(world.time > last_banana + banana_cooldown) - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) - ..() - var/obj/item/I - if(istype(AM, /obj/item)) - I = AM - if(I.thrownby == H) //No throwing stuff at yourself to make bananas - return 0 - else - new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) - last_banana = world.time - -/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) - if(!active) - if(world.time > last_honk + honkooldown) - active = 1 - playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, 1) - last_honk = world.time - honkooldown = rand(20, 80) - active = null - ..() - -/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) - playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, 0) - -/datum/species/golem/bananium/get_spans() - return list(SPAN_CLOWN) - - -/datum/species/golem/runic - name = "Runic Golem" - id = "runic golem" - limbs_id = "cultgolem" - sexes = FALSE - info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." - species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors - prefix = "Runic" - - var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift - var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze - var/obj/effect/proc_holder/spell/targeted/dominate/dominate - -/datum/species/golem/runic/random_name(gender,unique,lastname) - var/edgy_first_name = pick("Razor","Blood","Dark","Evil","Cold","Pale","Black","Silent","Chaos","Deadly") - var/edgy_last_name = pick("Edge","Night","Death","Razor","Blade","Steel","Calamity","Twilight","Shadow","Nightmare") //dammit Razor Razor - var/golem_name = "[edgy_first_name] [edgy_last_name]" - return golem_name - -/datum/species/golem/runic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.faction |= "cult" - phase_shift = new - C.AddSpell(phase_shift) - abyssal_gaze = new - C.AddSpell(abyssal_gaze) - dominate = new - C.AddSpell(dominate) - -/datum/species/golem/runic/on_species_loss(mob/living/carbon/C) - . = ..() - C.faction -= "cult" - if(phase_shift) - C.RemoveSpell(phase_shift) - if(abyssal_gaze) - C.RemoveSpell(abyssal_gaze) - if(dominate) - C.RemoveSpell(dominate) - -/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) - if(chem.id == "holywater") - H.adjustFireLoss(4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - - if(chem.id == "unholywater") - H.adjustBruteLoss(-4) - H.adjustFireLoss(-4) - H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) - -/datum/species/golem/cloth - name = "Cloth Golem" - id = "cloth golem" - limbs_id = "clothgolem" - sexes = FALSE - info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors, and can burn - armor = 15 //feels no pain, but not too resistant - burnmod = 2 // don't get burned - speedmod = 1 // not as heavy as stone - punchdamagelow = 4 - punchstunthreshold = 7 - punchdamagehigh = 8 // not as heavy as stone - prefix = "Cloth" - -/datum/species/golem/cloth/random_name(gender,unique,lastname) - var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ - "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh - var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" - return golem_name - -/datum/species/golem/cloth/spec_life(mob/living/carbon/human/H) - if(H.fire_stacks < 1) - H.adjust_fire_stacks(1) //always prone to burning - ..() - -/datum/species/golem/cloth/spec_death(gibbed, mob/living/carbon/human/H) - if(gibbed) - return - if(H.on_fire) - H.visible_message("[H] burns into ash!") - H.dust(just_ash = TRUE) - return - - H.visible_message("[H] falls apart into a pile of bandages!") - new /obj/structure/cloth_pile(get_turf(H), H) - ..() - -/obj/structure/cloth_pile - name = "pile of bandages" - desc = "It emits a strange aura, as if there was still life within it..." - obj_integrity = 50 - max_integrity = 50 - armor = list(melee = 90, bullet = 90, laser = 25, energy = 80, bomb = 50, bio = 100, fire = -50, acid = -50) - icon = 'icons/obj/items.dmi' - icon_state = "pile_bandages" - resistance_flags = FLAMMABLE - - var/revive_time = 900 - var/mob/living/carbon/human/cloth_golem - -/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) - if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) - H.unequip_everything() - H.forceMove(src) - cloth_golem = H - to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") - addtimer(CALLBACK(src, .proc/revive), revive_time) - else - qdel(src) - -/obj/structure/cloth_pile/Destroy() - if(cloth_golem) - QDEL_NULL(cloth_golem) - return ..() - -/obj/structure/cloth_pile/burn() - visible_message("[src] burns into ash!") - new /obj/effect/decal/cleanable/ash(get_turf(src)) - ..() - -/obj/structure/cloth_pile/proc/revive() - if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime - return - if(cloth_golem.suiciding || cloth_golem.disabilities & NOCLONE) - QDEL_NULL(cloth_golem) - return - - invisibility = INVISIBILITY_MAXIMUM //disappear before the animation - new /obj/effect/overlay/temp/mummy_animation(get_turf(src)) - if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE)) - cloth_golem.grab_ghost() //won't pull if it's a suicide - sleep(20) - cloth_golem.forceMove(get_turf(src)) - cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!","You reform into yourself!") - cloth_golem = null - qdel(src) - -/obj/structure/cloth_pile/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) - . = ..() - - if(resistance_flags & ON_FIRE) - return - - if(P.is_hot()) - visible_message("[src] bursts into flames!") - fire_act() - -/datum/species/golem/plastic - name = "Plastic" - id = "plastic golem" - prefix = "Plastic" - fixed_mut_color = "fff" - info_text = "As a Plastic Golem, you are capable of ventcrawling, and passing through plastic flaps." - -/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - C.ventcrawler = VENTCRAWLER_NUDE - -/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) - . = ..() +/datum/species/golem + // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. + name = "Golem" + id = "iron golem" + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + mutant_organs = list(/obj/item/organ/adamantine_resonator) + speedmod = 2 + armor = 55 + siemens_coeff = 0 + punchdamagelow = 5 + punchdamagehigh = 14 + punchstunthreshold = 11 //about 40% chance to stun + no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform, slot_s_store) + nojumpsuit = 1 + sexes = 1 + damage_overlay_type = "" + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem + // To prevent golem subtypes from overwhelming the odds when random species + // changes, only the Random Golem type can be chosen + blacklisted = TRUE + dangerous_existence = TRUE + limbs_id = "golem" + fixed_mut_color = "aaa" + var/info_text = "As an Iron Golem, you don't have any special traits." + + var/prefix = "Iron" + var/list/special_names + var/human_surname_chance = 3 + var/special_name_chance = 5 + +/datum/species/golem/random_name(gender,unique,lastname) + var/golem_surname = pick(GLOB.golem_names) + // 3% chance that our golem has a human surname, because + // cultural contamination + if(prob(human_surname_chance)) + golem_surname = pick(GLOB.last_names) + else if(special_names && special_names.len && prob(special_name_chance)) + golem_surname = pick(special_names) + + var/golem_name = "[prefix] [golem_surname]" + return golem_name + +/datum/species/golem/random + name = "Random Golem" + blacklisted = FALSE + dangerous_existence = FALSE + +/datum/species/golem/random/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + var/list/golem_types = typesof(/datum/species/golem) - src.type + var/datum/species/golem/golem_type = pick(golem_types) + var/mob/living/carbon/human/H = C + H.set_species(golem_type) + to_chat(H, "[initial(golem_type.info_text)]") + +/datum/species/golem/adamantine + name = "Adamantine Golem" + id = "adamantine golem" + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine + mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine) + fixed_mut_color = "4ed" + info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems." + prefix = "Adamantine" + +//The suicide bombers of golemkind +/datum/species/golem/plasma + name = "Plasma Golem" + id = "plasma golem" + fixed_mut_color = "a3d" + meat = /obj/item/weapon/ore/plasma + //Can burn and takes damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + info_text = "As a Plasma Golem, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!" + heatmod = 0 //fine until they blow up + prefix = "Plasma" + special_names = list("Flood","Fire","Bar","Man") + var/boom_warning = FALSE + var/datum/action/innate/ignite/ignite + +/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) + if(H.bodytemperature > 750) + if(!boom_warning && H.on_fire) + to_chat(H, "You feel like you could blow up at any moment!") + boom_warning = TRUE + else + if(boom_warning) + to_chat(H, "You feel more stable.") + boom_warning = FALSE + + if(H.bodytemperature > 850 && H.on_fire && prob(25)) + explosion(get_turf(H),1,2,4,flame_range = 5) + if(H) + H.gib() + if(H.fire_stacks < 2) //flammable + H.adjust_fire_stacks(1) + ..() + +/datum/species/golem/plasma/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + if(ishuman(C)) + ignite = new + ignite.Grant(C) + +/datum/species/golem/plasma/on_species_loss(mob/living/carbon/C) + if(ignite) + ignite.Remove(C) + ..() + +/datum/action/innate/ignite + name = "Ignite" + desc = "Set yourself aflame, bringing yourself closer to exploding!" + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "sacredflame" + +/datum/action/innate/ignite/Activate() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + if(H.fire_stacks) + to_chat(owner, "You ignite yourself!") + else + to_chat(owner, "You try ignite yourself, but fail!") + H.IgniteMob() //firestacks are already there passively + +//Harder to hurt +/datum/species/golem/diamond + name = "Diamond Golem" + id = "diamond golem" + fixed_mut_color = "0ff" + armor = 70 //up from 55 + meat = /obj/item/weapon/ore/diamond + info_text = "As a Diamond Golem, you are more resistant than the average golem." + prefix = "Diamond" + special_names = list("Back") + +//Faster but softer and less armoured +/datum/species/golem/gold + name = "Gold Golem" + id = "gold golem" + fixed_mut_color = "cc0" + speedmod = 1 + armor = 25 //down from 55 + meat = /obj/item/weapon/ore/gold + info_text = "As a Gold Golem, you are faster but less resistant than the average golem." + prefix = "Golden" + +//Heavier, thus higher chance of stunning when punching +/datum/species/golem/silver + name = "Silver Golem" + id = "silver golem" + fixed_mut_color = "ddd" + punchstunthreshold = 9 //60% chance, from 40% + meat = /obj/item/weapon/ore/silver + info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." + prefix = "Silver" + special_names = list("Surfer", "Chariot", "Lining") + +//Harder to stun, deals more damage, but it's even slower +/datum/species/golem/plasteel + name = "Plasteel Golem" + id = "plasteel golem" + fixed_mut_color = "bbb" + stunmod = 0.40 + punchdamagelow = 12 + punchdamagehigh = 21 + punchstunthreshold = 18 //still 40% stun chance + speedmod = 4 //pretty fucking slow + meat = /obj/item/weapon/ore/iron + info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." + attack_verb = "smash" + attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard + prefix = "Plasteel" + +//Immune to ash storms +/datum/species/golem/titanium + name = "Titanium Golem" + id = "titanium golem" + fixed_mut_color = "fff" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." + burnmod = 0.9 + prefix = "Titanium" + +/datum/species/golem/titanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "ash" + +/datum/species/golem/titanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities -= "ash" + +//Immune to ash storms and lava +/datum/species/golem/plastitanium + name = "Plastitanium Golem" + id = "plastitanium golem" + fixed_mut_color = "888" + meat = /obj/item/weapon/ore/titanium + info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." + burnmod = 0.8 + prefix = "Plastitanium" + +/datum/species/golem/plastitanium/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.weather_immunities |= "lava" + C.weather_immunities |= "ash" + +/datum/species/golem/plastitanium/on_species_loss(mob/living/carbon/C) + . = ..() + C.weather_immunities -= "ash" + C.weather_immunities -= "lava" + +//Fast and regenerates... but can only speak like an abductor +/datum/species/golem/alloy + name = "Alien Alloy Golem" + id = "alloy golem" + fixed_mut_color = "333" + meat = /obj/item/stack/sheet/mineral/abductor + mutanttongue = /obj/item/organ/tongue/abductor + speedmod = 1 //faster + info_text = "As an Alloy Golem, you are made of advanced alien materials: you are faster and regenerate over time. You are, however, only able to be heard by other alloy golems." + prefix = "Alien" + special_names = list("Outsider", "Technology", "Watcher", "Stranger") //ominous and unknown + +//Regenerates because self-repairing super-advanced alien tech +/datum/species/golem/alloy/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + H.heal_overall_damage(2,2) + H.adjustToxLoss(-2) + H.adjustOxyLoss(-2) + +//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races +/datum/species/golem/wood + name = "Wood Golem" + id = "wood golem" + fixed_mut_color = "49311c" + meat = /obj/item/stack/sheet/mineral/wood + //Can burn and take damage from heat + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) + armor = 30 + burnmod = 1.25 + heatmod = 1.5 + info_text = "As a Wooden Golem, you have plant-like traits: you take damage from extreme temperatures, can be set on fire, and have lower armor than a normal golem. You regenerate when in the light and wither in the darkness." + prefix = "Wooden" + special_names = list("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + human_surname_chance = 0 + special_name_chance = 100 + +/datum/species/golem/wood/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "plants" + C.faction |= "vines" + +/datum/species/golem/wood/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "plants" + C.faction -= "vines" + +/datum/species/golem/wood/spec_life(mob/living/carbon/human/H) + if(H.stat == DEAD) + return + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(H.loc)) //else, there's considered to be no light + var/turf/T = H.loc + light_amount = min(1,T.get_lumcount()) - 0.5 + H.nutrition += light_amount * 10 + if(H.nutrition > NUTRITION_LEVEL_FULL) + H.nutrition = NUTRITION_LEVEL_FULL + if(light_amount > 0.2) //if there's enough light, heal + H.heal_overall_damage(1,1) + H.adjustToxLoss(-1) + H.adjustOxyLoss(-1) + + if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) + H.take_overall_damage(2,0) + +/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "plantbgone") + H.adjustToxLoss(3) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + return 1 + +//Radioactive +/datum/species/golem/uranium + name = "Uranium Golem" + id = "uranium golem" + fixed_mut_color = "7f0" + meat = /obj/item/weapon/ore/uranium + info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." + + var/last_event = 0 + var/active = null + prefix = "Uranium" + +/datum/species/golem/uranium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_event+30) + active = 1 + radiation_pulse(get_turf(H), 3, 3, 5, 0) + last_event = world.time + active = null + ..() + +//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. +/datum/species/golem/sand + name = "Sand Golem" + id = "sand golem" + fixed_mut_color = "ffdc8f" + meat = /obj/item/weapon/ore/glass //this is sand + armor = 0 + burnmod = 3 //melts easily + brutemod = 0.25 + info_text = "As a Sand Golem, you are immune to physical bullets and take very little brute damage, but are extremely vulnerable to burn damage. You will also turn to sand when dying, preventing any form of recovery." + attack_sound = 'sound/effects/shovel_dig.ogg' + prefix = "Sand" + +/datum/species/golem/sand/spec_death(gibbed, mob/living/carbon/human/H) + H.visible_message("[H] turns into a pile of sand!") + for(var/obj/item/W in H) + H.dropItemToGround(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/ore/glass(get_turf(H)) + qdel(H) + +/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) + if(P.flag == "bullet" || P.flag == "bomb") + playsound(H, 'sound/effects/shovel_dig.ogg', 70, 1) + H.visible_message("The [P.name] sinks harmlessly in [H]'s sandy body!", \ + "The [P.name] sinks harmlessly in [H]'s sandy body!") + return 2 + return 0 + +//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. +/datum/species/golem/glass + name = "Glass Golem" + id = "glass golem" + fixed_mut_color = "5a96b4aa" //transparent body + meat = /obj/item/weapon/shard + armor = 0 + brutemod = 3 //very fragile + burnmod = 0.25 + info_text = "As a Glass Golem, you reflect lasers and energy weapons, and are very resistant to burn damage, but you are extremely vulnerable to brute damage. On death, you'll shatter beyond any hope of recovery." + attack_sound = 'sound/effects/Glassbr2.ogg' + prefix = "Glass" + +/datum/species/golem/glass/spec_death(gibbed, mob/living/carbon/human/H) + playsound(H, "shatter", 70, 1) + H.visible_message("[H] shatters!") + for(var/obj/item/W in H) + H.dropItemToGround(W) + for(var/i=1, i <= rand(3,5), i++) + new /obj/item/weapon/shard(get_turf(H)) + qdel(H) + +/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) + if(!(P.original == H && P.firer == H)) //self-shots don't reflect + if(P.flag == "laser" || P.flag == "energy") + H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ + "The [P.name] gets reflected by [H]'s glass skin!") + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) + var/turf/curloc = get_turf(H) + + // redirect the projectile + P.original = locate(new_x, new_y, P.z) + P.starting = curloc + P.current = curloc + P.firer = H + P.yo = new_y - curloc.y + P.xo = new_x - curloc.x + P.Angle = null + return -1 + return 0 + +//Teleports when hit or when it wants to +/datum/species/golem/bluespace + name = "Bluespace Golem" + id = "bluespace golem" + fixed_mut_color = "33f" + meat = /obj/item/weapon/ore/bluespace_crystal + info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." + attack_verb = "bluespace punch" + attack_sound = 'sound/effects/phasein.ogg' + prefix = "Bluespace" + special_names = list("Crystal", "Polycrystal") + + var/datum/action/innate/unstable_teleport/unstable_teleport + var/teleport_cooldown = 100 + var/last_teleport = 0 + +/datum/species/golem/bluespace/proc/reactive_teleport(mob/living/carbon/human/H) + H.visible_message("[H] teleports!", "You destabilize and teleport!") + new /obj/effect/particle_effect/sparks(get_turf(H)) + playsound(get_turf(H), "sparks", 50, 1) + do_teleport(H, get_turf(H), 6, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + +/datum/species/golem/bluespace/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport + return 0 + else + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_teleport + teleport_cooldown && M != H && M.a_intent != INTENT_HELP) + reactive_teleport(H) + +/datum/species/golem/bluespace/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown && user != H) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_teleport + teleport_cooldown) + reactive_teleport(H) + +/datum/species/golem/bluespace/on_species_gain(mob/living/carbon/C, datum/species/old_species) + ..() + if(ishuman(C)) + unstable_teleport = new + unstable_teleport.Grant(C) + +/datum/species/golem/bluespace/on_species_loss(mob/living/carbon/C) + if(unstable_teleport) + unstable_teleport.Remove(C) + ..() + +/datum/action/innate/unstable_teleport + name = "Unstable Teleport" + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "jaunt" + var/cooldown = 150 + var/last_teleport = 0 + +/datum/action/innate/unstable_teleport/IsAvailable() + if(..()) + if(world.time > last_teleport + cooldown) + return 1 + return 0 + +/datum/action/innate/unstable_teleport/Activate() + var/mob/living/carbon/human/H = owner + H.visible_message("[H] starts vibrating!", "You start charging your bluespace core...") + playsound(get_turf(H), 'sound/weapons/flash.ogg', 25, 1) + addtimer(CALLBACK(src, .proc/teleport, H), 15) + +/datum/action/innate/unstable_teleport/proc/teleport(mob/living/carbon/human/H) + H.visible_message("[H] disappears in a shower of sparks!", "You teleport!") + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(10, 0, src) + spark_system.attach(H) + spark_system.start() + do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg') + last_teleport = world.time + UpdateButtonIcon() //action icon looks unavailable + sleep(cooldown + 5) + UpdateButtonIcon() //action icon looks available again + + +//honk +/datum/species/golem/bananium + name = "Bananium Golem" + id = "bananium golem" + fixed_mut_color = "ff0" + say_mod = "honks" + punchdamagelow = 0 + punchdamagehigh = 1 + punchstunthreshold = 2 //Harmless and can't stun + meat = /obj/item/weapon/ore/bananium + info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." + attack_verb = "honk" + attack_sound = 'sound/items/AirHorn2.ogg' + prefix = "Bananium" + + var/last_honk = 0 + var/honkooldown = 0 + var/last_banana = 0 + var/banana_cooldown = 100 + var/active = null + +/datum/species/golem/bananium/random_name(gender,unique,lastname) + var/clown_name = pick(GLOB.clown_names) + var/golem_name = "[uppertext(clown_name)]" + return golem_name + +/datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style = M.martial_art) + ..() + if(world.time > last_banana + banana_cooldown && M != H && M.a_intent != INTENT_HELP) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown && user != H) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) + ..() + if(world.time > last_banana + banana_cooldown) + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) + ..() + var/obj/item/I + if(istype(AM, /obj/item)) + I = AM + if(I.thrownby == H) //No throwing stuff at yourself to make bananas + return 0 + else + new/obj/item/weapon/grown/bananapeel/specialpeel(get_turf(H)) + last_banana = world.time + +/datum/species/golem/bananium/spec_life(mob/living/carbon/human/H) + if(!active) + if(world.time > last_honk + honkooldown) + active = 1 + playsound(get_turf(H), 'sound/items/bikehorn.ogg', 50, 1) + last_honk = world.time + honkooldown = rand(20, 80) + active = null + ..() + +/datum/species/golem/bananium/spec_death(gibbed, mob/living/carbon/human/H) + playsound(get_turf(H), 'sound/misc/sadtrombone.ogg', 70, 0) + +/datum/species/golem/bananium/get_spans() + return list(SPAN_CLOWN) + + +/datum/species/golem/runic + name = "Runic Golem" + id = "runic golem" + limbs_id = "cultgolem" + sexes = FALSE + info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." + species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors + prefix = "Runic" + + var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift + var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze + var/obj/effect/proc_holder/spell/targeted/dominate/dominate + +/datum/species/golem/runic/random_name(gender,unique,lastname) + var/edgy_first_name = pick("Razor","Blood","Dark","Evil","Cold","Pale","Black","Silent","Chaos","Deadly") + var/edgy_last_name = pick("Edge","Night","Death","Razor","Blade","Steel","Calamity","Twilight","Shadow","Nightmare") //dammit Razor Razor + var/golem_name = "[edgy_first_name] [edgy_last_name]" + return golem_name + +/datum/species/golem/runic/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.faction |= "cult" + phase_shift = new + C.AddSpell(phase_shift) + abyssal_gaze = new + C.AddSpell(abyssal_gaze) + dominate = new + C.AddSpell(dominate) + +/datum/species/golem/runic/on_species_loss(mob/living/carbon/C) + . = ..() + C.faction -= "cult" + if(phase_shift) + C.RemoveSpell(phase_shift) + if(abyssal_gaze) + C.RemoveSpell(abyssal_gaze) + if(dominate) + C.RemoveSpell(dominate) + +/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) + if(chem.id == "holywater") + H.adjustFireLoss(4) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + + if(chem.id == "unholywater") + H.adjustBruteLoss(-4) + H.adjustFireLoss(-4) + H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM) + +/datum/species/golem/cloth + name = "Cloth Golem" + id = "cloth golem" + limbs_id = "clothgolem" + sexes = FALSE + info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable." + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER,NO_UNDERWEAR) //no mutcolors, and can burn + armor = 15 //feels no pain, but not too resistant + burnmod = 2 // don't get burned + speedmod = 1 // not as heavy as stone + punchdamagelow = 4 + punchstunthreshold = 7 + punchdamagehigh = 8 // not as heavy as stone + prefix = "Cloth" + +/datum/species/golem/cloth/random_name(gender,unique,lastname) + var/pharaoh_name = pick("Neferkare", "Hudjefa", "Khufu", "Mentuhotep", "Ahmose", "Amenhotep", "Thutmose", "Hatshepsut", "Tutankhamun", "Ramses", "Seti", \ + "Merenptah", "Djer", "Semerkhet", "Nynetjer", "Khafre", "Pepi", "Intef", "Ay") //yes, Ay was an actual pharaoh + var/golem_name = "[pharaoh_name] \Roman[rand(1,99)]" + return golem_name + +/datum/species/golem/cloth/spec_life(mob/living/carbon/human/H) + if(H.fire_stacks < 1) + H.adjust_fire_stacks(1) //always prone to burning + ..() + +/datum/species/golem/cloth/spec_death(gibbed, mob/living/carbon/human/H) + if(gibbed) + return + if(H.on_fire) + H.visible_message("[H] burns into ash!") + H.dust(just_ash = TRUE) + return + + H.visible_message("[H] falls apart into a pile of bandages!") + new /obj/structure/cloth_pile(get_turf(H), H) + ..() + +/obj/structure/cloth_pile + name = "pile of bandages" + desc = "It emits a strange aura, as if there was still life within it..." + obj_integrity = 50 + max_integrity = 50 + armor = list(melee = 90, bullet = 90, laser = 25, energy = 80, bomb = 50, bio = 100, fire = -50, acid = -50) + icon = 'icons/obj/items.dmi' + icon_state = "pile_bandages" + resistance_flags = FLAMMABLE + + var/revive_time = 900 + var/mob/living/carbon/human/cloth_golem + +/obj/structure/cloth_pile/Initialize(mapload, mob/living/carbon/human/H) + if(!QDELETED(H) && is_species(H, /datum/species/golem/cloth)) + H.unequip_everything() + H.forceMove(src) + cloth_golem = H + to_chat(cloth_golem, "You start gathering your life energy, preparing to rise again...") + addtimer(CALLBACK(src, .proc/revive), revive_time) + else + qdel(src) + +/obj/structure/cloth_pile/Destroy() + if(cloth_golem) + QDEL_NULL(cloth_golem) + return ..() + +/obj/structure/cloth_pile/burn() + visible_message("[src] burns into ash!") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + ..() + +/obj/structure/cloth_pile/proc/revive() + if(QDELETED(src) || QDELETED(cloth_golem)) //QDELETED also checks for null, so if no cloth golem is set this won't runtime + return + if(cloth_golem.suiciding || cloth_golem.disabilities & NOCLONE) + QDEL_NULL(cloth_golem) + return + + invisibility = INVISIBILITY_MAXIMUM //disappear before the animation + new /obj/effect/overlay/temp/mummy_animation(get_turf(src)) + if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE)) + cloth_golem.grab_ghost() //won't pull if it's a suicide + sleep(20) + cloth_golem.forceMove(get_turf(src)) + cloth_golem.visible_message("[src] rises and reforms into [cloth_golem]!","You reform into yourself!") + cloth_golem = null + qdel(src) + +/obj/structure/cloth_pile/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) + . = ..() + + if(resistance_flags & ON_FIRE) + return + + if(P.is_hot()) + visible_message("[src] bursts into flames!") + fire_act() + +/datum/species/golem/plastic + name = "Plastic" + id = "plastic golem" + prefix = "Plastic" + fixed_mut_color = "fff" + info_text = "As a Plastic Golem, you are capable of ventcrawling, and passing through plastic flaps." + +/datum/species/golem/plastic/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.ventcrawler = VENTCRAWLER_NUDE + +/datum/species/golem/plastic/on_species_loss(mob/living/carbon/C) + . = ..() C.ventcrawler = initial(C.ventcrawler) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index fd64850882..239d901e5c 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -1,50 +1,50 @@ -/datum/species/zombie - // 1spooky - name = "High Functioning Zombie" - id = "zombie" - say_mod = "moans" - sexes = 0 - blacklisted = 1 - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT) - mutant_organs = list(/obj/item/organ/tongue/zombie) - -/datum/species/zombie/infectious - name = "Infectious Zombie" - id = "memezombies" - limbs_id = "zombie" - mutanthands = /obj/item/zombie_hand - no_equip = list(slot_wear_mask, slot_head) - armor = 20 // 120 damage to KO a zombie, which kills it - speedmod = 2 - mutanteyes = /obj/item/organ/eyes/night_vision/zombie - -/datum/species/zombie/infectious/spec_life(mob/living/carbon/C) - . = ..() - C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW - if(C.InCritical()) - C.death() - // Zombies only move around when not in crit, they instantly - // succumb otherwise, and will standup again soon - -/datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - - // Deal with the source of this zombie corruption - // Infection organ needs to be handled separately from mutant_organs - // because it persists through species transitions - var/obj/item/organ/zombie_infection/infection - infection = C.getorganslot("zombie_infection") - if(!infection) - infection = new() - infection.Insert(C) - - -// Your skin falls off -/datum/species/krokodil_addict - name = "Human" - id = "goofzombies" - limbs_id = "zombie" //They look like zombies - sexes = 0 - meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie - mutant_organs = list(/obj/item/organ/tongue/zombie) +/datum/species/zombie + // 1spooky + name = "High Functioning Zombie" + id = "zombie" + say_mod = "moans" + sexes = 0 + blacklisted = 1 + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + species_traits = list(NOBREATH,RESISTCOLD,RESISTPRESSURE,NOBLOOD,RADIMMUNE,NOZOMBIE,EASYDISMEMBER,EASYLIMBATTACHMENT) + mutant_organs = list(/obj/item/organ/tongue/zombie) + +/datum/species/zombie/infectious + name = "Infectious Zombie" + id = "memezombies" + limbs_id = "zombie" + mutanthands = /obj/item/zombie_hand + no_equip = list(slot_wear_mask, slot_head) + armor = 20 // 120 damage to KO a zombie, which kills it + speedmod = 2 + mutanteyes = /obj/item/organ/eyes/night_vision/zombie + +/datum/species/zombie/infectious/spec_life(mob/living/carbon/C) + . = ..() + C.a_intent = INTENT_HARM // THE SUFFERING MUST FLOW + if(C.InCritical()) + C.death() + // Zombies only move around when not in crit, they instantly + // succumb otherwise, and will standup again soon + +/datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + + // Deal with the source of this zombie corruption + // Infection organ needs to be handled separately from mutant_organs + // because it persists through species transitions + var/obj/item/organ/zombie_infection/infection + infection = C.getorganslot("zombie_infection") + if(!infection) + infection = new() + infection.Insert(C) + + +// Your skin falls off +/datum/species/krokodil_addict + name = "Human" + id = "goofzombies" + limbs_id = "zombie" //They look like zombies + sexes = 0 + meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + mutant_organs = list(/obj/item/organ/tongue/zombie) diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 6de5fe8836..159aec35af 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -1,274 +1,274 @@ -//Cat -/mob/living/simple_animal/pet/cat - name = "cat" - desc = "Kitty!!" - icon = 'icons/mob/pets.dmi' - icon_state = "cat2" - icon_living = "cat2" - icon_dead = "cat2_dead" - gender = MALE - speak = list("Meow!", "Esp!", "Purr!", "HSSSSS") - speak_emote = list("purrs", "meows") - emote_hear = list("meows", "mews") - emote_see = list("shakes its head", "shivers") - speak_chance = 1 - turns_per_move = 5 - see_in_dark = 6 - ventcrawler = VENTCRAWLER_ALWAYS - pass_flags = PASSTABLE - mob_size = MOB_SIZE_SMALL - minbodytemp = 200 - maxbodytemp = 400 - unsuitable_atmos_damage = 1 - animal_species = /mob/living/simple_animal/pet/cat - childtype = list(/mob/living/simple_animal/pet/cat/kitten) - butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - var/turns_since_scan = 0 - var/mob/living/simple_animal/mouse/movement_target - gold_core_spawnable = 2 - devourable = TRUE - -/mob/living/simple_animal/pet/cat/Initialize() - ..() - verbs += /mob/living/proc/lay_down - -/mob/living/simple_animal/pet/cat/update_canmove() - ..() - if(client) - if (resting) - icon_state = "[icon_living]_rest" - else - icon_state = "[icon_living]" - - -/mob/living/simple_animal/pet/cat/space - name = "space cat" - desc = "It's a cat... in space!" - icon_state = "spacecat" - icon_living = "spacecat" - icon_dead = "spacecat_dead" - unsuitable_atmos_damage = 0 - minbodytemp = TCMB - maxbodytemp = T0C + 40 - -/mob/living/simple_animal/pet/cat/original - name = "Batsy" - desc = "The product of alien DNA and bored geneticists." - gender = FEMALE - icon_state = "original" - icon_living = "original" - icon_dead = "original_dead" - -/mob/living/simple_animal/pet/cat/kitten - name = "kitten" - desc = "D'aaawwww." - icon_state = "kitten" - icon_living = "kitten" - icon_dead = "kitten_dead" - density = 0 - pass_flags = PASSMOB - mob_size = MOB_SIZE_SMALL - -//RUNTIME IS ALIVE! SQUEEEEEEEE~ -/mob/living/simple_animal/pet/cat/Runtime - name = "Runtime" - desc = "GCAT" - icon_state = "cat" - icon_living = "cat" - icon_dead = "cat_dead" - gender = FEMALE - gold_core_spawnable = 0 - var/list/family = list()//var restored from savefile, has count of each child type - var/list/children = list()//Actual mob instances of children - var/cats_deployed = 0 - var/memory_saved = 0 - -/mob/living/simple_animal/pet/cat/Runtime/Initialize() - if(prob(5)) - icon_state = "original" - icon_living = "original" - icon_dead = "original_dead" - Read_Memory() - ..() - -/mob/living/simple_animal/pet/cat/Runtime/Life() - if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP) - Deploy_The_Cats() - if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) - Write_Memory() - ..() - -/mob/living/simple_animal/pet/cat/Runtime/make_babies() - var/mob/baby = ..() - if(baby) - children += baby - return baby - -/mob/living/simple_animal/pet/cat/Runtime/death() - if(!memory_saved) - Write_Memory(1) - ..() - -/mob/living/simple_animal/pet/cat/Runtime/proc/Read_Memory() - var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") - S["family"] >> family - - if(isnull(family)) - family = list() - -/mob/living/simple_animal/pet/cat/Runtime/proc/Write_Memory(dead) - var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") - family = list() - if(!dead) - for(var/mob/living/simple_animal/pet/cat/kitten/C in children) - if(istype(C,type) || C.stat || !C.z || !C.butcher_results) //That last one is a work around for hologram cats - continue - if(C.type in family) - family[C.type] += 1 - else - family[C.type] = 1 - S["family"] << family - memory_saved = 1 - -/mob/living/simple_animal/pet/cat/Runtime/proc/Deploy_The_Cats() - cats_deployed = 1 - for(var/cat_type in family) - if(family[cat_type] > 0) - for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS) - new cat_type(loc) - -/mob/living/simple_animal/pet/cat/Proc - name = "Proc" - gender = MALE - gold_core_spawnable = 0 - -/mob/living/simple_animal/pet/cat/Life() - if(!stat && !buckled && !client) - if(prob(1)) - emote("me", 1, pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) - icon_state = "[icon_living]_rest" - resting = 1 - update_canmove() - else if (prob(1)) - emote("me", 1, pick("sits down.", "crouches on its hind legs.", "looks alert.")) - icon_state = "[icon_living]_sit" - resting = 1 - update_canmove() - else if (prob(1)) - if (resting) - emote("me", 1, pick("gets up and meows.", "walks around.", "stops resting.")) - icon_state = "[icon_living]" - resting = 0 - update_canmove() - else - emote("me", 1, pick("grooms its fur.", "twitches its whiskers.", "shakes out its coat.")) - - //MICE! - if((src.loc) && isturf(src.loc)) - if(!stat && !resting && !buckled) - for(var/mob/living/simple_animal/mouse/M in view(1,src)) - if(!M.stat && Adjacent(M)) - emote("me", 1, "splats \the [M]!") - M.splat() - movement_target = null - stop_automated_movement = 0 - break - for(var/obj/item/toy/cattoy/T in view(1,src)) - if (T.cooldown < (world.time - 400)) - emote("me", 1, "bats \the [T] around with its paw!") - T.cooldown = world.time - - ..() - - make_babies() - - if(!stat && !resting && !buckled) - turns_since_scan++ - if(turns_since_scan > 5) - walk_to(src,0) - turns_since_scan = 0 - if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) - movement_target = null - stop_automated_movement = 0 - if( !movement_target || !(movement_target.loc in oview(src, 3)) ) - movement_target = null - stop_automated_movement = 0 - for(var/mob/living/simple_animal/mouse/snack in oview(src,3)) - if(isturf(snack.loc) && !snack.stat) - movement_target = snack - break - if(movement_target) - stop_automated_movement = 1 - walk_to(src,movement_target,0,3) - -/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M) - . = ..() - switch(M.a_intent) - if("help") - wuv(1, M) - if("harm") - wuv(-1, M) - -/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M) - if(change) - if(change > 0) - if(M && stat != DEAD) - new /obj/effect/overlay/temp/heart(loc) - emote("me", 1, "purrs!") - else - if(M && stat != DEAD) - emote("me", 1, "hisses!") - -/mob/living/simple_animal/pet/cat/cak //I told you I'd do it, Remie - name = "Keeki" - desc = "It's a cat made out of cake." - icon_state = "cak" - icon_living = "cak" - icon_dead = "cak_dead" - health = 50 - maxHealth = 50 - gender = FEMALE - harm_intent_damage = 10 - butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday = 3, \ - /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) - response_harm = "takes a bite out of" - attacked_sound = 'sound/items/eatfood.ogg' - deathmessage = "loses its false life and collapses!" - death_sound = "bodyfall" - -/mob/living/simple_animal/pet/cat/cak/CheckParts(list/parts) - ..() - var/obj/item/organ/brain/B = locate(/obj/item/organ/brain) in contents - if(!B || !B.brainmob || !B.brainmob.mind) - return - B.brainmob.mind.transfer_to(src) - to_chat(src, "You are a cak! You're a harmless cat/cake hybrid that everyone loves. People can take bites out of you if they're hungry, but you regenerate health \ - so quickly that it generally doesn't matter. You're remarkably resilient to any damage besides this and it's hard for you to really die at all. You should go around and bring happiness and \ - free cake to the station!") - var/new_name = stripped_input(src, "Enter your name, or press \"Cancel\" to stick with Keeki.", "Name Change") - if(new_name) - to_chat(src, "Your name is now \"new_name\"!") - name = new_name - -/mob/living/simple_animal/pet/cat/cak/Life() - ..() - if(stat) - return - if(health < maxHealth) - adjustBruteLoss(-8) //Fast life regen - for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts! - if(D.icon_state != "donut2") - D.name = "frosted donut" - D.icon_state = "donut2" - D.reagents.add_reagent("sprinkles", 2) - D.bonus_reagents = list("sprinkles" = 2, "sugar" = 1) - D.filling_color = "#FF69B4" - -/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) - ..() - if(L.a_intent == INTENT_HARM && L.reagents && !stat) - L.reagents.add_reagent("nutriment", 0.4) - L.reagents.add_reagent("vitamin", 0.4) +//Cat +/mob/living/simple_animal/pet/cat + name = "cat" + desc = "Kitty!!" + icon = 'icons/mob/pets.dmi' + icon_state = "cat2" + icon_living = "cat2" + icon_dead = "cat2_dead" + gender = MALE + speak = list("Meow!", "Esp!", "Purr!", "HSSSSS") + speak_emote = list("purrs", "meows") + emote_hear = list("meows", "mews") + emote_see = list("shakes its head", "shivers") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + ventcrawler = VENTCRAWLER_ALWAYS + pass_flags = PASSTABLE + mob_size = MOB_SIZE_SMALL + minbodytemp = 200 + maxbodytemp = 400 + unsuitable_atmos_damage = 1 + animal_species = /mob/living/simple_animal/pet/cat + childtype = list(/mob/living/simple_animal/pet/cat/kitten) + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + var/turns_since_scan = 0 + var/mob/living/simple_animal/mouse/movement_target + gold_core_spawnable = 2 + devourable = TRUE + +/mob/living/simple_animal/pet/cat/Initialize() + ..() + verbs += /mob/living/proc/lay_down + +/mob/living/simple_animal/pet/cat/update_canmove() + ..() + if(client) + if (resting) + icon_state = "[icon_living]_rest" + else + icon_state = "[icon_living]" + + +/mob/living/simple_animal/pet/cat/space + name = "space cat" + desc = "It's a cat... in space!" + icon_state = "spacecat" + icon_living = "spacecat" + icon_dead = "spacecat_dead" + unsuitable_atmos_damage = 0 + minbodytemp = TCMB + maxbodytemp = T0C + 40 + +/mob/living/simple_animal/pet/cat/original + name = "Batsy" + desc = "The product of alien DNA and bored geneticists." + gender = FEMALE + icon_state = "original" + icon_living = "original" + icon_dead = "original_dead" + +/mob/living/simple_animal/pet/cat/kitten + name = "kitten" + desc = "D'aaawwww." + icon_state = "kitten" + icon_living = "kitten" + icon_dead = "kitten_dead" + density = 0 + pass_flags = PASSMOB + mob_size = MOB_SIZE_SMALL + +//RUNTIME IS ALIVE! SQUEEEEEEEE~ +/mob/living/simple_animal/pet/cat/Runtime + name = "Runtime" + desc = "GCAT" + icon_state = "cat" + icon_living = "cat" + icon_dead = "cat_dead" + gender = FEMALE + gold_core_spawnable = 0 + var/list/family = list()//var restored from savefile, has count of each child type + var/list/children = list()//Actual mob instances of children + var/cats_deployed = 0 + var/memory_saved = 0 + +/mob/living/simple_animal/pet/cat/Runtime/Initialize() + if(prob(5)) + icon_state = "original" + icon_living = "original" + icon_dead = "original_dead" + Read_Memory() + ..() + +/mob/living/simple_animal/pet/cat/Runtime/Life() + if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP) + Deploy_The_Cats() + if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) + Write_Memory() + ..() + +/mob/living/simple_animal/pet/cat/Runtime/make_babies() + var/mob/baby = ..() + if(baby) + children += baby + return baby + +/mob/living/simple_animal/pet/cat/Runtime/death() + if(!memory_saved) + Write_Memory(1) + ..() + +/mob/living/simple_animal/pet/cat/Runtime/proc/Read_Memory() + var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") + S["family"] >> family + + if(isnull(family)) + family = list() + +/mob/living/simple_animal/pet/cat/Runtime/proc/Write_Memory(dead) + var/savefile/S = new /savefile("data/npc_saves/Runtime.sav") + family = list() + if(!dead) + for(var/mob/living/simple_animal/pet/cat/kitten/C in children) + if(istype(C,type) || C.stat || !C.z || !C.butcher_results) //That last one is a work around for hologram cats + continue + if(C.type in family) + family[C.type] += 1 + else + family[C.type] = 1 + S["family"] << family + memory_saved = 1 + +/mob/living/simple_animal/pet/cat/Runtime/proc/Deploy_The_Cats() + cats_deployed = 1 + for(var/cat_type in family) + if(family[cat_type] > 0) + for(var/i in 1 to min(family[cat_type],100)) //Limits to about 500 cats, you wouldn't think this would be needed (BUT IT IS) + new cat_type(loc) + +/mob/living/simple_animal/pet/cat/Proc + name = "Proc" + gender = MALE + gold_core_spawnable = 0 + +/mob/living/simple_animal/pet/cat/Life() + if(!stat && !buckled && !client) + if(prob(1)) + emote("me", 1, pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) + icon_state = "[icon_living]_rest" + resting = 1 + update_canmove() + else if (prob(1)) + emote("me", 1, pick("sits down.", "crouches on its hind legs.", "looks alert.")) + icon_state = "[icon_living]_sit" + resting = 1 + update_canmove() + else if (prob(1)) + if (resting) + emote("me", 1, pick("gets up and meows.", "walks around.", "stops resting.")) + icon_state = "[icon_living]" + resting = 0 + update_canmove() + else + emote("me", 1, pick("grooms its fur.", "twitches its whiskers.", "shakes out its coat.")) + + //MICE! + if((src.loc) && isturf(src.loc)) + if(!stat && !resting && !buckled) + for(var/mob/living/simple_animal/mouse/M in view(1,src)) + if(!M.stat && Adjacent(M)) + emote("me", 1, "splats \the [M]!") + M.splat() + movement_target = null + stop_automated_movement = 0 + break + for(var/obj/item/toy/cattoy/T in view(1,src)) + if (T.cooldown < (world.time - 400)) + emote("me", 1, "bats \the [T] around with its paw!") + T.cooldown = world.time + + ..() + + make_babies() + + if(!stat && !resting && !buckled) + turns_since_scan++ + if(turns_since_scan > 5) + walk_to(src,0) + turns_since_scan = 0 + if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) + movement_target = null + stop_automated_movement = 0 + if( !movement_target || !(movement_target.loc in oview(src, 3)) ) + movement_target = null + stop_automated_movement = 0 + for(var/mob/living/simple_animal/mouse/snack in oview(src,3)) + if(isturf(snack.loc) && !snack.stat) + movement_target = snack + break + if(movement_target) + stop_automated_movement = 1 + walk_to(src,movement_target,0,3) + +/mob/living/simple_animal/pet/cat/attack_hand(mob/living/carbon/human/M) + . = ..() + switch(M.a_intent) + if("help") + wuv(1, M) + if("harm") + wuv(-1, M) + +/mob/living/simple_animal/pet/cat/proc/wuv(change, mob/M) + if(change) + if(change > 0) + if(M && stat != DEAD) + new /obj/effect/overlay/temp/heart(loc) + emote("me", 1, "purrs!") + else + if(M && stat != DEAD) + emote("me", 1, "hisses!") + +/mob/living/simple_animal/pet/cat/cak //I told you I'd do it, Remie + name = "Keeki" + desc = "It's a cat made out of cake." + icon_state = "cak" + icon_living = "cak" + icon_dead = "cak_dead" + health = 50 + maxHealth = 50 + gender = FEMALE + harm_intent_damage = 10 + butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday = 3, \ + /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) + response_harm = "takes a bite out of" + attacked_sound = 'sound/items/eatfood.ogg' + deathmessage = "loses its false life and collapses!" + death_sound = "bodyfall" + +/mob/living/simple_animal/pet/cat/cak/CheckParts(list/parts) + ..() + var/obj/item/organ/brain/B = locate(/obj/item/organ/brain) in contents + if(!B || !B.brainmob || !B.brainmob.mind) + return + B.brainmob.mind.transfer_to(src) + to_chat(src, "You are a cak! You're a harmless cat/cake hybrid that everyone loves. People can take bites out of you if they're hungry, but you regenerate health \ + so quickly that it generally doesn't matter. You're remarkably resilient to any damage besides this and it's hard for you to really die at all. You should go around and bring happiness and \ + free cake to the station!") + var/new_name = stripped_input(src, "Enter your name, or press \"Cancel\" to stick with Keeki.", "Name Change") + if(new_name) + to_chat(src, "Your name is now \"new_name\"!") + name = new_name + +/mob/living/simple_animal/pet/cat/cak/Life() + ..() + if(stat) + return + if(health < maxHealth) + adjustBruteLoss(-8) //Fast life regen + for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in range(1, src)) //Frosts nearby donuts! + if(D.icon_state != "donut2") + D.name = "frosted donut" + D.icon_state = "donut2" + D.reagents.add_reagent("sprinkles", 2) + D.bonus_reagents = list("sprinkles" = 2, "sugar" = 1) + D.filling_color = "#FF69B4" + +/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L) + ..() + if(L.a_intent == INTENT_HARM && L.reagents && !stat) + L.reagents.add_reagent("nutriment", 0.4) + L.reagents.add_reagent("vitamin", 0.4) diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 3c92be3888..ca2bcd3ba2 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -1,122 +1,122 @@ -/obj/item/weapon/clipboard - name = "clipboard" - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "clipboard" - item_state = "clipboard" - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 7 - var/obj/item/weapon/pen/haspen //The stored pen. - var/obj/item/weapon/paper/toppaper //The topmost piece of paper. - slot_flags = SLOT_BELT - resistance_flags = FLAMMABLE - -/obj/item/weapon/clipboard/Initialize() - update_icon() - . = ..() - -/obj/item/weapon/clipboard/Destroy() - QDEL_NULL(haspen) - QDEL_NULL(toppaper) //let movable/Destroy handle the rest - return ..() - -/obj/item/weapon/clipboard/update_icon() - cut_overlays() - if(toppaper) - add_overlay(toppaper.icon_state) - copy_overlays(toppaper) - if(haspen) - add_overlay("clipboard_pen") - add_overlay("clipboard_over") - - -/obj/item/weapon/clipboard/attackby(obj/item/weapon/W, mob/user, params) - if(istype(W, /obj/item/weapon/paper)) - if(!user.transferItemToLoc(W, src)) - return - toppaper = W - to_chat(user, "You clip the paper onto \the [src].") - update_icon() - else if(toppaper) - toppaper.attackby(user.get_active_held_item(), user) - update_icon() - - -/obj/item/weapon/clipboard/attack_self(mob/user) - var/dat = "Clipboard" - if(haspen) - dat += "Remove Pen

" - else - dat += "Add Pen

" - - //The topmost paper. You can't organise contents directly in byond, so this is what we're stuck with. -Pete - if(toppaper) - var/obj/item/weapon/paper/P = toppaper - dat += "Write Remove - [P.name]

" - - for(P in src) - if(P == toppaper) - continue - dat += "Write Remove Move to top - [P.name]
" - user << browse(dat, "window=clipboard") - onclose(user, "clipboard") - add_fingerprint(usr) - - -/obj/item/weapon/clipboard/Topic(href, href_list) - ..() - if(usr.stat || usr.restrained()) - return - - if(usr.contents.Find(src)) - - if(href_list["pen"]) - if(haspen) - haspen.loc = usr.loc - usr.put_in_hands(haspen) - haspen = null - - if(href_list["addpen"]) - if(!haspen) - var/obj/item/held = usr.get_active_held_item() - if(istype(held, /obj/item/weapon/pen)) - var/obj/item/weapon/pen/W = held - if(!usr.transferItemToLoc(W, src)) - return - haspen = W - to_chat(usr, "You slot [W] into [src].") - - if(href_list["write"]) - var/obj/item/P = locate(href_list["write"]) - if(istype(P) && P.loc == src) - if(usr.get_active_held_item()) - P.attackby(usr.get_active_held_item(), usr) - - if(href_list["remove"]) - var/obj/item/P = locate(href_list["remove"]) - if(istype(P) && P.loc == src) - P.loc = usr.loc - usr.put_in_hands(P) - if(P == toppaper) - toppaper = null - var/obj/item/weapon/paper/newtop = locate(/obj/item/weapon/paper) in src - if(newtop && (newtop != P)) - toppaper = newtop - else - toppaper = null - - if(href_list["read"]) - var/obj/item/weapon/paper/P = locate(href_list["read"]) - if(istype(P) && P.loc == src) - usr.examinate(P) - - if(href_list["top"]) - var/obj/item/P = locate(href_list["top"]) - if(istype(P) && P.loc == src) - toppaper = P - to_chat(usr, "You move [P.name] to the top.") - - //Update everything - attack_self(usr) - update_icon() +/obj/item/weapon/clipboard + name = "clipboard" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "clipboard" + item_state = "clipboard" + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 7 + var/obj/item/weapon/pen/haspen //The stored pen. + var/obj/item/weapon/paper/toppaper //The topmost piece of paper. + slot_flags = SLOT_BELT + resistance_flags = FLAMMABLE + +/obj/item/weapon/clipboard/Initialize() + update_icon() + . = ..() + +/obj/item/weapon/clipboard/Destroy() + QDEL_NULL(haspen) + QDEL_NULL(toppaper) //let movable/Destroy handle the rest + return ..() + +/obj/item/weapon/clipboard/update_icon() + cut_overlays() + if(toppaper) + add_overlay(toppaper.icon_state) + copy_overlays(toppaper) + if(haspen) + add_overlay("clipboard_pen") + add_overlay("clipboard_over") + + +/obj/item/weapon/clipboard/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/paper)) + if(!user.transferItemToLoc(W, src)) + return + toppaper = W + to_chat(user, "You clip the paper onto \the [src].") + update_icon() + else if(toppaper) + toppaper.attackby(user.get_active_held_item(), user) + update_icon() + + +/obj/item/weapon/clipboard/attack_self(mob/user) + var/dat = "Clipboard" + if(haspen) + dat += "Remove Pen

" + else + dat += "Add Pen

" + + //The topmost paper. You can't organise contents directly in byond, so this is what we're stuck with. -Pete + if(toppaper) + var/obj/item/weapon/paper/P = toppaper + dat += "Write Remove - [P.name]

" + + for(P in src) + if(P == toppaper) + continue + dat += "Write Remove Move to top - [P.name]
" + user << browse(dat, "window=clipboard") + onclose(user, "clipboard") + add_fingerprint(usr) + + +/obj/item/weapon/clipboard/Topic(href, href_list) + ..() + if(usr.stat || usr.restrained()) + return + + if(usr.contents.Find(src)) + + if(href_list["pen"]) + if(haspen) + haspen.loc = usr.loc + usr.put_in_hands(haspen) + haspen = null + + if(href_list["addpen"]) + if(!haspen) + var/obj/item/held = usr.get_active_held_item() + if(istype(held, /obj/item/weapon/pen)) + var/obj/item/weapon/pen/W = held + if(!usr.transferItemToLoc(W, src)) + return + haspen = W + to_chat(usr, "You slot [W] into [src].") + + if(href_list["write"]) + var/obj/item/P = locate(href_list["write"]) + if(istype(P) && P.loc == src) + if(usr.get_active_held_item()) + P.attackby(usr.get_active_held_item(), usr) + + if(href_list["remove"]) + var/obj/item/P = locate(href_list["remove"]) + if(istype(P) && P.loc == src) + P.loc = usr.loc + usr.put_in_hands(P) + if(P == toppaper) + toppaper = null + var/obj/item/weapon/paper/newtop = locate(/obj/item/weapon/paper) in src + if(newtop && (newtop != P)) + toppaper = newtop + else + toppaper = null + + if(href_list["read"]) + var/obj/item/weapon/paper/P = locate(href_list["read"]) + if(istype(P) && P.loc == src) + usr.examinate(P) + + if(href_list["top"]) + var/obj/item/P = locate(href_list["top"]) + if(istype(P) && P.loc == src) + toppaper = P + to_chat(usr, "You move [P.name] to the top.") + + //Update everything + attack_self(usr) + update_icon() diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index c83d53bf3f..f98cb5d0e9 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -78,8 +78,8 @@ name = "folder- 'TOP SECRET'" desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\"" -/obj/item/weapon/folder/documents/Initialize() - . = ..() +/obj/item/weapon/folder/documents/Initialize() + . = ..() new /obj/item/documents/nanotrasen(src) update_icon() @@ -91,20 +91,20 @@ /obj/item/weapon/folder/syndicate/red icon_state = "folder_sred" -/obj/item/weapon/folder/syndicate/red/Initialize() - . = ..() +/obj/item/weapon/folder/syndicate/red/Initialize() + . = ..() new /obj/item/documents/syndicate/red(src) update_icon() /obj/item/weapon/folder/syndicate/blue icon_state = "folder_sblue" -/obj/item/weapon/folder/syndicate/blue/Initialize() - . = ..() +/obj/item/weapon/folder/syndicate/blue/Initialize() + . = ..() new /obj/item/documents/syndicate/blue(src) update_icon() -/obj/item/weapon/folder/syndicate/mining/Initialize() - . = ..() +/obj/item/weapon/folder/syndicate/mining/Initialize() + . = ..() new /obj/item/documents/syndicate/mining(src) - update_icon() + update_icon() diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 3517757de5..a1d544c2e4 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne /obj/machinery/gravity_generator name = "gravitational generator" - desc = "A device which produces a graviton field when set up." + desc = "A device which produces a graviton field when set up." icon = 'icons/obj/machines/gravity_generator.dmi' anchored = 1 density = 1 @@ -304,17 +304,17 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne // Sound the alert if gravity was just enabled or disabled. var/alert = 0 var/area/A = get_area(src) - if(SSticker.IsRoundInProgress()) - if(on) // If we turned on and the game is live. - if(gravity_in_level() == 0) - alert = 1 - investigate_log("was brought online and is now producing gravity for this level.", "gravity") - message_admins("The gravity generator was brought online [A][ADMIN_COORDJMP(src)]") - else - if(gravity_in_level() == 1) - alert = 1 - investigate_log("was brought offline and there is now no gravity for this level.", "gravity") - message_admins("The gravity generator was brought offline with no backup generator. [A][ADMIN_COORDJMP(src)]") + if(SSticker.IsRoundInProgress()) + if(on) // If we turned on and the game is live. + if(gravity_in_level() == 0) + alert = 1 + investigate_log("was brought online and is now producing gravity for this level.", "gravity") + message_admins("The gravity generator was brought online [A][ADMIN_COORDJMP(src)]") + else + if(gravity_in_level() == 1) + alert = 1 + investigate_log("was brought offline and there is now no gravity for this level.", "gravity") + message_admins("The gravity generator was brought offline with no backup generator. [A][ADMIN_COORDJMP(src)]") update_icon() update_list() diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index b7a298d6b3..9d37173c9f 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,493 +1,493 @@ -/obj/machinery/power/emitter - name = "Emitter" - desc = "A heavy duty industrial laser.\nAlt-click to rotate it clockwise." - icon = 'icons/obj/singularity.dmi' - icon_state = "emitter" - var/icon_state_on = "emitter_+a" - anchored = 0 - density = 1 - req_access = list(GLOB.access_engine_equip) - - // The following 3 vars are mostly for the prototype - var/manual = FALSE - var/charge = 0 - var/atom/target = null - - use_power = 0 - idle_power_usage = 10 - active_power_usage = 300 - - var/active = 0 - var/powered = 0 - var/fire_delay = 100 - var/maximum_fire_delay = 100 - var/minimum_fire_delay = 20 - var/last_shot = 0 - var/shot_number = 0 - var/state = 0 - var/locked = 0 - - var/projectile_type = /obj/item/projectile/beam/emitter - - var/projectile_sound = 'sound/weapons/emitter.ogg' - - var/datum/effect_system/spark_spread/sparks - -/obj/machinery/power/emitter/New() - ..() - var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/emitter(null) - B.apply_default_parts(src) - RefreshParts() - wires = new /datum/wires/emitter(src) - -/obj/item/weapon/circuitboard/machine/emitter - name = "Emitter (Machine Board)" - build_path = /obj/machinery/power/emitter - origin_tech = "programming=3;powerstorage=4;engineering=4" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/machinery/power/emitter/RefreshParts() - var/max_firedelay = 120 - var/firedelay = 120 - var/min_firedelay = 24 - var/power_usage = 350 - for(var/obj/item/weapon/stock_parts/micro_laser/L in component_parts) - max_firedelay -= 20 * L.rating - min_firedelay -= 4 * L.rating - firedelay -= 20 * L.rating - maximum_fire_delay = max_firedelay - minimum_fire_delay = min_firedelay - fire_delay = firedelay - for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) - power_usage -= 50 * M.rating - active_power_usage = power_usage - -/obj/machinery/power/emitter/verb/rotate() - set name = "Rotate" - set category = "Object" - set src in oview(1) - - if(usr.stat || !usr.canmove || usr.restrained()) - return - if (src.anchored) - to_chat(usr, "It is fastened to the floor!") - return 0 - src.setDir(turn(src.dir, 270)) - return 1 - -/obj/machinery/power/emitter/AltClick(mob/user) - ..() - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - if(!in_range(src, user)) - return - else - rotate() - -/obj/machinery/power/emitter/Initialize() - . = ..() - if(state == 2 && anchored) - connect_to_network() - - sparks = new - sparks.attach(src) - sparks.set_up(5, TRUE, src) - -/obj/machinery/power/emitter/Destroy() - if(SSticker && SSticker.IsRoundInProgress()) - message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) - log_game("Emitter deleted at ([x],[y],[z])") - investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") - QDEL_NULL(sparks) - return ..() - -/obj/machinery/power/emitter/update_icon() - if (active && powernet && avail(active_power_usage)) - icon_state = icon_state_on - else - icon_state = initial(icon_state) - - -/obj/machinery/power/emitter/attack_hand(mob/user) - src.add_fingerprint(user) - if(state == 2) - if(!powernet) - to_chat(user, "The emitter isn't connected to a wire!") - return 1 - if(!src.locked) - if(src.active==1) - src.active = 0 - to_chat(user, "You turn off \the [src].") - message_admins("Emitter turned off by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("Emitter turned off by [key_name(user)] in [COORD(src)]") - investigate_log("turned off by [key_name(user)] at [get_area(src)]","singulo") - else - src.active = 1 - to_chat(user, "You turn on \the [src].") - src.shot_number = 0 - src.fire_delay = maximum_fire_delay - investigate_log("turned on by [key_name(user)] at [get_area(src)]","singulo") - update_icon() - else - to_chat(user, "The controls are locked!") - else - to_chat(user, "The [src] needs to be firmly secured to the floor first!") - return 1 - -/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) - if(ismegafauna(M) && anchored) - state = 0 - anchored = FALSE - M.visible_message("[M] rips [src] free from its moorings!") - else - ..() - if(!anchored) - step(src, get_dir(M, src)) - - -/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues -// add_load(1000) -/* if((severity == 1)&&prob(1)&&prob(1)) - if(src.active) - src.active = 0 - src.use_power = 1 */ - return 1 - - -/obj/machinery/power/emitter/process() - if(stat & (BROKEN)) - return - if(src.state != 2 || (!powernet && active_power_usage)) - src.active = 0 - update_icon() - return - if(src.active == 1) - if(!active_power_usage || avail(active_power_usage)) - add_load(active_power_usage) - if(!powered) - powered = 1 - update_icon() - investigate_log("regained power and turned on at [get_area(src)]","singulo") - else - if(powered) - powered = 0 - update_icon() - investigate_log("lost power and turned off at [get_area(src)]","singulo") - log_game("Emitter lost power in ([x],[y],[z])") - return - if(charge <=80) - charge+=5 - if(!check_delay() || manual == TRUE) - return FALSE - fire_beam(target) - -/obj/machinery/power/emitter/proc/check_delay() - if((src.last_shot + src.fire_delay) <= world.time) - return TRUE - return FALSE - -/obj/machinery/power/emitter/proc/fire_beam_pulse() - if(!check_delay()) - return FALSE - if(state != 2) - return FALSE - if(avail(active_power_usage)) - add_load(active_power_usage) - fire_beam() - -/obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user) - var/turf/targets_from = get_turf(src) - if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) - return - var/obj/item/projectile/P = new projectile_type(targets_from) - playsound(src.loc, projectile_sound, 50, 1) - if(prob(35)) - sparks.start() - switch(dir) - if(NORTH) - P.yo = 20 - P.xo = 0 - if(NORTHEAST) - P.yo = 20 - P.xo = 20 - if(EAST) - P.yo = 0 - P.xo = 20 - if(SOUTHEAST) - P.yo = -20 - P.xo = 20 - if(WEST) - P.yo = 0 - P.xo = -20 - if(SOUTHWEST) - P.yo = -20 - P.xo = -20 - if(NORTHWEST) - P.yo = 20 - P.xo = -20 - else // Any other - P.yo = -20 - P.xo = 0 - if(target) - P.yo = targeted_atom.y - targets_from.y - P.xo = targeted_atom.x - targets_from.x - P.current = targets_from - P.starting = targets_from - P.firer = src - P.original = targeted_atom - if(!manual) - last_shot = world.time - if(shot_number < 3) - fire_delay = 20 - shot_number ++ - else - fire_delay = rand(minimum_fire_delay,maximum_fire_delay) - shot_number = 0 - if(!target) - P.setDir(src.dir) - P.starting = loc - else - if(QDELETED(target)) - target = null - P.fire() - return P - -/obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent) - if(state == EM_WELDED) - if(!silent) - to_chat(user, "[src] is welded to the floor!") - return FAILED_UNFASTEN - return ..() - -/obj/machinery/power/emitter/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) - . = ..() - if(. == SUCCESSFUL_UNFASTEN) - if(anchored) - state = EM_SECURED - else - state = EM_UNSECURED - -/obj/machinery/power/emitter/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/wrench)) - if(active) - to_chat(user, "Turn \the [src] off first!") - return - default_unfasten_wrench(user, W, 0) - return - - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(active) - to_chat(user, "Turn \the [src] off first.") - return - switch(state) - if(EM_UNSECURED) - to_chat(user, "The [src.name] needs to be wrenched to the floor!") - if(EM_SECURED) - if(WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to weld the [name] to the floor.", \ - "You start to weld \the [src] to the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) - state = EM_WELDED - to_chat(user, "You weld \the [src] to the floor.") - connect_to_network() - if(EM_WELDED) - if(WT.remove_fuel(0,user)) - playsound(loc, WT.usesound, 50, 1) - user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ - "You start to cut \the [src] free from the floor...", \ - "You hear welding.") - if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) - state = EM_SECURED - to_chat(user, "You cut \the [src] free from the floor.") - disconnect_from_network() - return - - if(W.GetID()) - if(emagged) - to_chat(user, "The lock seems to be broken!") - return - if(allowed(user)) - if(active) - locked = !locked - to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") - else - to_chat(user, "The controls can only be locked when \the [src] is online!") - else - to_chat(user, "Access denied.") - return - - if(is_wire_tool(W) && panel_open) - wires.interact(user) - return - - if(default_deconstruction_screwdriver(user, "emitter_open", "emitter", W)) - return - - if(exchange_parts(user, W)) - return - - if(default_pry_open(W)) - return - - if(default_deconstruction_crowbar(W)) - return - - return ..() - -/obj/machinery/power/emitter/emag_act(mob/user) - if(!emagged) - locked = 0 - emagged = 1 - if(user) - user.visible_message("[user.name] emags the [src.name].","You short out the lock.") - - -/obj/machinery/power/emitter/prototype - name = "Prototype Emitter" - icon = 'icons/obj/turrets.dmi' - icon_state = "protoemitter" - icon_state_on = "protoemitter_+a" - can_buckle = TRUE - buckle_lying = 0 - var/view_range = 12 - var/datum/action/innate/protoemitter/firing/auto - -//BUCKLE HOOKS - -/obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob,force = 0) - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) - manual = FALSE - for(var/obj/item/I in buckled_mob.held_items) - if(istype(I, /obj/item/weapon/turret_control)) - qdel(I) - if(istype(buckled_mob)) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 0 - if(buckled_mob.client) - buckled_mob.client.change_view(world.view) - auto.Remove(buckled_mob) - . = ..() - -/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user) - if(user.incapacitated() || !istype(user)) - return - for(var/atom/movable/A in get_turf(src)) - if(A.density && (A != src && A != M)) - return - M.forceMove(get_turf(src)) - ..() - playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) - M.pixel_y = 14 - layer = 4.1 - if(M.client) - M.client.change_view(view_range) - if(!auto) - auto = new() - auto.Grant(M, src) - -/datum/action/innate/protoemitter - check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS - var/obj/machinery/power/emitter/prototype/PE - var/mob/living/carbon/U - - -/datum/action/innate/protoemitter/Grant(mob/living/carbon/L, obj/machinery/power/emitter/prototype/proto) - PE = proto - U = L - . = ..() - -/datum/action/innate/protoemitter/firing - name = "Switch to Manual Firing" - desc = "The emitter will only fire on your command and at your designated target" - button_icon_state = "mech_zoom_on" - -/datum/action/innate/protoemitter/firing/Activate() - if(PE.manual) - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) - PE.manual = FALSE - name = "Switch to Manual Firing" - desc = "The emitter will only fire on your command and at your designated target" - button_icon_state = "mech_zoom_on" - for(var/obj/item/I in U.held_items) - if(istype(I, /obj/item/weapon/turret_control)) - qdel(I) - UpdateButtonIcon() - return - else - playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) - name = "Switch to Automatic Firing" - desc = "Emitters will switch to periodic firing at your last target" - button_icon_state = "mech_zoom_off" - PE.manual = TRUE - for(var/V in U.held_items) - var/obj/item/I = V - if(istype(I)) - if(U.dropItemToGround(I)) - var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() - U.put_in_hands(TC) - else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand - var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() - U.put_in_hands(TC) - UpdateButtonIcon() - - -/obj/item/weapon/turret_control - name = "turret controls" - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE - flags = ABSTRACT | NODROP - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON - var/delay = 0 - -/obj/item/weapon/turret_control/afterattack(atom/targeted_atom, mob/user) - ..() - var/obj/machinery/power/emitter/E = user.buckled - E.setDir(get_dir(E,targeted_atom)) - user.setDir(E.dir) - switch(E.dir) - if(NORTH) - E.layer = 3.9 - user.pixel_x = 0 - user.pixel_y = -14 - if(NORTHEAST) - E.layer = 3.9 - user.pixel_x = -8 - user.pixel_y = -12 - if(EAST) - E.layer = 4.1 - user.pixel_x = -14 - user.pixel_y = 0 - if(SOUTHEAST) - E.layer = 3.9 - user.pixel_x = -8 - user.pixel_y = 12 - if(SOUTH) - E.layer = 4.1 - user.pixel_x = 0 - user.pixel_y = 14 - if(SOUTHWEST) - E.layer = 3.9 - user.pixel_x = 8 - user.pixel_y = 12 - if(WEST) - E.layer = 4.1 - user.pixel_x = 14 - user.pixel_y = 0 - if(NORTHWEST) - E.layer = 3.9 - user.pixel_x = 8 - user.pixel_y = -12 - - if(E.charge >= 10 && world.time > delay) - E.charge -= 10 - E.target = targeted_atom - E.fire_beam(targeted_atom, user) - delay = world.time + 10 - else if (E.charge < 10) - playsound(get_turf(user),'sound/machines/buzz-sigh.ogg', 50, 1) +/obj/machinery/power/emitter + name = "Emitter" + desc = "A heavy duty industrial laser.\nAlt-click to rotate it clockwise." + icon = 'icons/obj/singularity.dmi' + icon_state = "emitter" + var/icon_state_on = "emitter_+a" + anchored = 0 + density = 1 + req_access = list(GLOB.access_engine_equip) + + // The following 3 vars are mostly for the prototype + var/manual = FALSE + var/charge = 0 + var/atom/target = null + + use_power = 0 + idle_power_usage = 10 + active_power_usage = 300 + + var/active = 0 + var/powered = 0 + var/fire_delay = 100 + var/maximum_fire_delay = 100 + var/minimum_fire_delay = 20 + var/last_shot = 0 + var/shot_number = 0 + var/state = 0 + var/locked = 0 + + var/projectile_type = /obj/item/projectile/beam/emitter + + var/projectile_sound = 'sound/weapons/emitter.ogg' + + var/datum/effect_system/spark_spread/sparks + +/obj/machinery/power/emitter/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/emitter(null) + B.apply_default_parts(src) + RefreshParts() + wires = new /datum/wires/emitter(src) + +/obj/item/weapon/circuitboard/machine/emitter + name = "Emitter (Machine Board)" + build_path = /obj/machinery/power/emitter + origin_tech = "programming=3;powerstorage=4;engineering=4" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/power/emitter/RefreshParts() + var/max_firedelay = 120 + var/firedelay = 120 + var/min_firedelay = 24 + var/power_usage = 350 + for(var/obj/item/weapon/stock_parts/micro_laser/L in component_parts) + max_firedelay -= 20 * L.rating + min_firedelay -= 4 * L.rating + firedelay -= 20 * L.rating + maximum_fire_delay = max_firedelay + minimum_fire_delay = min_firedelay + fire_delay = firedelay + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + power_usage -= 50 * M.rating + active_power_usage = power_usage + +/obj/machinery/power/emitter/verb/rotate() + set name = "Rotate" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (src.anchored) + to_chat(usr, "It is fastened to the floor!") + return 0 + src.setDir(turn(src.dir, 270)) + return 1 + +/obj/machinery/power/emitter/AltClick(mob/user) + ..() + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/machinery/power/emitter/Initialize() + . = ..() + if(state == 2 && anchored) + connect_to_network() + + sparks = new + sparks.attach(src) + sparks.set_up(5, TRUE, src) + +/obj/machinery/power/emitter/Destroy() + if(SSticker && SSticker.IsRoundInProgress()) + message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) + log_game("Emitter deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") + QDEL_NULL(sparks) + return ..() + +/obj/machinery/power/emitter/update_icon() + if (active && powernet && avail(active_power_usage)) + icon_state = icon_state_on + else + icon_state = initial(icon_state) + + +/obj/machinery/power/emitter/attack_hand(mob/user) + src.add_fingerprint(user) + if(state == 2) + if(!powernet) + to_chat(user, "The emitter isn't connected to a wire!") + return 1 + if(!src.locked) + if(src.active==1) + src.active = 0 + to_chat(user, "You turn off \the [src].") + message_admins("Emitter turned off by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("Emitter turned off by [key_name(user)] in [COORD(src)]") + investigate_log("turned off by [key_name(user)] at [get_area(src)]","singulo") + else + src.active = 1 + to_chat(user, "You turn on \the [src].") + src.shot_number = 0 + src.fire_delay = maximum_fire_delay + investigate_log("turned on by [key_name(user)] at [get_area(src)]","singulo") + update_icon() + else + to_chat(user, "The controls are locked!") + else + to_chat(user, "The [src] needs to be firmly secured to the floor first!") + return 1 + +/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) + if(ismegafauna(M) && anchored) + state = 0 + anchored = FALSE + M.visible_message("[M] rips [src] free from its moorings!") + else + ..() + if(!anchored) + step(src, get_dir(M, src)) + + +/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues +// add_load(1000) +/* if((severity == 1)&&prob(1)&&prob(1)) + if(src.active) + src.active = 0 + src.use_power = 1 */ + return 1 + + +/obj/machinery/power/emitter/process() + if(stat & (BROKEN)) + return + if(src.state != 2 || (!powernet && active_power_usage)) + src.active = 0 + update_icon() + return + if(src.active == 1) + if(!active_power_usage || avail(active_power_usage)) + add_load(active_power_usage) + if(!powered) + powered = 1 + update_icon() + investigate_log("regained power and turned on at [get_area(src)]","singulo") + else + if(powered) + powered = 0 + update_icon() + investigate_log("lost power and turned off at [get_area(src)]","singulo") + log_game("Emitter lost power in ([x],[y],[z])") + return + if(charge <=80) + charge+=5 + if(!check_delay() || manual == TRUE) + return FALSE + fire_beam(target) + +/obj/machinery/power/emitter/proc/check_delay() + if((src.last_shot + src.fire_delay) <= world.time) + return TRUE + return FALSE + +/obj/machinery/power/emitter/proc/fire_beam_pulse() + if(!check_delay()) + return FALSE + if(state != 2) + return FALSE + if(avail(active_power_usage)) + add_load(active_power_usage) + fire_beam() + +/obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user) + var/turf/targets_from = get_turf(src) + if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) + return + var/obj/item/projectile/P = new projectile_type(targets_from) + playsound(src.loc, projectile_sound, 50, 1) + if(prob(35)) + sparks.start() + switch(dir) + if(NORTH) + P.yo = 20 + P.xo = 0 + if(NORTHEAST) + P.yo = 20 + P.xo = 20 + if(EAST) + P.yo = 0 + P.xo = 20 + if(SOUTHEAST) + P.yo = -20 + P.xo = 20 + if(WEST) + P.yo = 0 + P.xo = -20 + if(SOUTHWEST) + P.yo = -20 + P.xo = -20 + if(NORTHWEST) + P.yo = 20 + P.xo = -20 + else // Any other + P.yo = -20 + P.xo = 0 + if(target) + P.yo = targeted_atom.y - targets_from.y + P.xo = targeted_atom.x - targets_from.x + P.current = targets_from + P.starting = targets_from + P.firer = src + P.original = targeted_atom + if(!manual) + last_shot = world.time + if(shot_number < 3) + fire_delay = 20 + shot_number ++ + else + fire_delay = rand(minimum_fire_delay,maximum_fire_delay) + shot_number = 0 + if(!target) + P.setDir(src.dir) + P.starting = loc + else + if(QDELETED(target)) + target = null + P.fire() + return P + +/obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent) + if(state == EM_WELDED) + if(!silent) + to_chat(user, "[src] is welded to the floor!") + return FAILED_UNFASTEN + return ..() + +/obj/machinery/power/emitter/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + if(anchored) + state = EM_SECURED + else + state = EM_UNSECURED + +/obj/machinery/power/emitter/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(active) + to_chat(user, "Turn \the [src] off first!") + return + default_unfasten_wrench(user, W, 0) + return + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(active) + to_chat(user, "Turn \the [src] off first.") + return + switch(state) + if(EM_UNSECURED) + to_chat(user, "The [src.name] needs to be wrenched to the floor!") + if(EM_SECURED) + if(WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to weld the [name] to the floor.", \ + "You start to weld \the [src] to the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) + state = EM_WELDED + to_chat(user, "You weld \the [src] to the floor.") + connect_to_network() + if(EM_WELDED) + if(WT.remove_fuel(0,user)) + playsound(loc, WT.usesound, 50, 1) + user.visible_message("[user.name] starts to cut the [name] free from the floor.", \ + "You start to cut \the [src] free from the floor...", \ + "You hear welding.") + if(do_after(user,20*W.toolspeed, target = src) && WT.isOn()) + state = EM_SECURED + to_chat(user, "You cut \the [src] free from the floor.") + disconnect_from_network() + return + + if(W.GetID()) + if(emagged) + to_chat(user, "The lock seems to be broken!") + return + if(allowed(user)) + if(active) + locked = !locked + to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") + else + to_chat(user, "The controls can only be locked when \the [src] is online!") + else + to_chat(user, "Access denied.") + return + + if(is_wire_tool(W) && panel_open) + wires.interact(user) + return + + if(default_deconstruction_screwdriver(user, "emitter_open", "emitter", W)) + return + + if(exchange_parts(user, W)) + return + + if(default_pry_open(W)) + return + + if(default_deconstruction_crowbar(W)) + return + + return ..() + +/obj/machinery/power/emitter/emag_act(mob/user) + if(!emagged) + locked = 0 + emagged = 1 + if(user) + user.visible_message("[user.name] emags the [src.name].","You short out the lock.") + + +/obj/machinery/power/emitter/prototype + name = "Prototype Emitter" + icon = 'icons/obj/turrets.dmi' + icon_state = "protoemitter" + icon_state_on = "protoemitter_+a" + can_buckle = TRUE + buckle_lying = 0 + var/view_range = 12 + var/datum/action/innate/protoemitter/firing/auto + +//BUCKLE HOOKS + +/obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob,force = 0) + playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + manual = FALSE + for(var/obj/item/I in buckled_mob.held_items) + if(istype(I, /obj/item/weapon/turret_control)) + qdel(I) + if(istype(buckled_mob)) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 0 + if(buckled_mob.client) + buckled_mob.client.change_view(world.view) + auto.Remove(buckled_mob) + . = ..() + +/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user) + if(user.incapacitated() || !istype(user)) + return + for(var/atom/movable/A in get_turf(src)) + if(A.density && (A != src && A != M)) + return + M.forceMove(get_turf(src)) + ..() + playsound(src,'sound/mecha/mechmove01.ogg', 50, 1) + M.pixel_y = 14 + layer = 4.1 + if(M.client) + M.client.change_view(view_range) + if(!auto) + auto = new() + auto.Grant(M, src) + +/datum/action/innate/protoemitter + check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS + var/obj/machinery/power/emitter/prototype/PE + var/mob/living/carbon/U + + +/datum/action/innate/protoemitter/Grant(mob/living/carbon/L, obj/machinery/power/emitter/prototype/proto) + PE = proto + U = L + . = ..() + +/datum/action/innate/protoemitter/firing + name = "Switch to Manual Firing" + desc = "The emitter will only fire on your command and at your designated target" + button_icon_state = "mech_zoom_on" + +/datum/action/innate/protoemitter/firing/Activate() + if(PE.manual) + playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + PE.manual = FALSE + name = "Switch to Manual Firing" + desc = "The emitter will only fire on your command and at your designated target" + button_icon_state = "mech_zoom_on" + for(var/obj/item/I in U.held_items) + if(istype(I, /obj/item/weapon/turret_control)) + qdel(I) + UpdateButtonIcon() + return + else + playsound(PE,'sound/mecha/mechmove01.ogg', 50, 1) + name = "Switch to Automatic Firing" + desc = "Emitters will switch to periodic firing at your last target" + button_icon_state = "mech_zoom_off" + PE.manual = TRUE + for(var/V in U.held_items) + var/obj/item/I = V + if(istype(I)) + if(U.dropItemToGround(I)) + var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() + U.put_in_hands(TC) + else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand + var/obj/item/weapon/turret_control/TC = new /obj/item/weapon/turret_control() + U.put_in_hands(TC) + UpdateButtonIcon() + + +/obj/item/weapon/turret_control + name = "turret controls" + icon_state = "offhand" + w_class = WEIGHT_CLASS_HUGE + flags = ABSTRACT | NODROP + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON + var/delay = 0 + +/obj/item/weapon/turret_control/afterattack(atom/targeted_atom, mob/user) + ..() + var/obj/machinery/power/emitter/E = user.buckled + E.setDir(get_dir(E,targeted_atom)) + user.setDir(E.dir) + switch(E.dir) + if(NORTH) + E.layer = 3.9 + user.pixel_x = 0 + user.pixel_y = -14 + if(NORTHEAST) + E.layer = 3.9 + user.pixel_x = -8 + user.pixel_y = -12 + if(EAST) + E.layer = 4.1 + user.pixel_x = -14 + user.pixel_y = 0 + if(SOUTHEAST) + E.layer = 3.9 + user.pixel_x = -8 + user.pixel_y = 12 + if(SOUTH) + E.layer = 4.1 + user.pixel_x = 0 + user.pixel_y = 14 + if(SOUTHWEST) + E.layer = 3.9 + user.pixel_x = 8 + user.pixel_y = 12 + if(WEST) + E.layer = 4.1 + user.pixel_x = 14 + user.pixel_y = 0 + if(NORTHWEST) + E.layer = 3.9 + user.pixel_x = 8 + user.pixel_y = -12 + + if(E.charge >= 10 && world.time > delay) + E.charge -= 10 + E.target = targeted_atom + E.fire_beam(targeted_atom, user) + delay = world.time + 10 + else if (E.charge < 10) + playsound(get_turf(user),'sound/machines/buzz-sigh.ogg', 50, 1) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 2045cb380c..136f9162cf 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -1,328 +1,328 @@ -/obj/machinery/particle_accelerator/control_box - name = "Particle Accelerator Control Console" - desc = "This controls the density of the particles." - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "control_box" - anchored = 0 - density = 1 - use_power = 0 - idle_power_usage = 500 - active_power_usage = 10000 - dir = NORTH - var/strength_upper_limit = 2 - var/interface_control = 1 - var/list/obj/structure/particle_accelerator/connected_parts - var/assembled = 0 - var/construction_state = PA_CONSTRUCTION_UNSECURED - var/active = 0 - var/strength = 0 - var/powered = 0 - mouse_opacity = 2 - -/obj/machinery/particle_accelerator/control_box/New() - wires = new /datum/wires/particle_accelerator/control_box(src) - connected_parts = list() - ..() - -/obj/machinery/particle_accelerator/control_box/Destroy() - if(active) - toggle_power() - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.master = null - connected_parts.Cut() - qdel(wires) - wires = null - return ..() - -/obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) - if(construction_state == PA_CONSTRUCTION_COMPLETE) - interact(user) - else if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) - wires.interact(user) - -/obj/machinery/particle_accelerator/control_box/proc/update_state() - if(construction_state < PA_CONSTRUCTION_COMPLETE) - use_power = 0 - assembled = 0 - active = 0 - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = null - part.powered = 0 - part.update_icon() - connected_parts.Cut() - return - if(!part_scan()) - use_power = 1 - active = 0 - connected_parts.Cut() - -/obj/machinery/particle_accelerator/control_box/update_icon() - if(active) - icon_state = "control_boxp1" - else - if(use_power) - if(assembled) - icon_state = "control_boxp" - else - icon_state = "ucontrol_boxp" - else - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED, PA_CONSTRUCTION_UNWIRED) - icon_state = "control_box" - if(PA_CONSTRUCTION_PANEL_OPEN) - icon_state = "control_boxw" - else - icon_state = "control_boxc" - -/obj/machinery/particle_accelerator/control_box/Topic(href, href_list) - if(..()) - return - - if(!interface_control) - to_chat(usr, "ERROR: Request timed out. Check wire contacts.") - return - - if(href_list["close"]) - usr << browse(null, "window=pacontrol") - usr.unset_machine() - return - if(href_list["togglep"]) - if(!wires.is_cut(WIRE_POWER)) - toggle_power() - - else if(href_list["scan"]) - part_scan() - - else if(href_list["strengthup"]) - if(!wires.is_cut(WIRE_STRENGTH)) - add_strength() - - else if(href_list["strengthdown"]) - if(!wires.is_cut(WIRE_STRENGTH)) - remove_strength() - - updateDialog() - update_icon() - -/obj/machinery/particle_accelerator/control_box/proc/strength_change() - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = strength - part.update_icon() - -/obj/machinery/particle_accelerator/control_box/proc/add_strength(s) - if(assembled && (strength < strength_upper_limit)) - strength++ - strength_change() - - message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") - investigate_log("increased to [strength] by [key_name(usr)]","singulo") - - -/obj/machinery/particle_accelerator/control_box/proc/remove_strength(s) - if(assembled && (strength > 0)) - strength-- - strength_change() - - message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) - log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") - investigate_log("decreased to [strength] by [key_name(usr)]","singulo") - - -/obj/machinery/particle_accelerator/control_box/power_change() - ..() - if(stat & NOPOWER) - active = 0 - use_power = 0 - else if(!stat && construction_state == PA_CONSTRUCTION_COMPLETE) - use_power = 1 - -/obj/machinery/particle_accelerator/control_box/process() - if(active) - //a part is missing! - if(connected_parts.len < 6) - investigate_log("lost a connected part; It powered down.","singulo") - toggle_power() - update_icon() - return - //emit some particles - for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts) - PE.emit_particle(strength) - -/obj/machinery/particle_accelerator/control_box/proc/part_scan() - var/ldir = turn(dir,-90) - var/rdir = turn(dir,90) - var/odir = turn(dir,180) - var/turf/T = loc - - assembled = 0 - critical_machine = FALSE - - var/obj/structure/particle_accelerator/fuel_chamber/F = locate() in orange(1,src) - if(!F) - return 0 - - setDir(F.dir) - connected_parts.Cut() - - T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/fuel_chamber)) - return 0 - T = get_step(T,odir) - if(!check_part(T,/obj/structure/particle_accelerator/end_cap)) - return 0 - T = get_step(T,dir) - T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/power_box)) - return 0 - T = get_step(T,dir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/center)) - return 0 - T = get_step(T,ldir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/left)) - return 0 - T = get_step(T,rdir) - T = get_step(T,rdir) - if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/right)) - return 0 - - assembled = 1 - critical_machine = TRUE //Only counts if the PA is actually assembled. - return 1 - -/obj/machinery/particle_accelerator/control_box/proc/check_part(turf/T, type) - var/obj/structure/particle_accelerator/PA = locate(/obj/structure/particle_accelerator) in T - if(istype(PA, type) && (PA.construction_state == PA_CONSTRUCTION_COMPLETE)) - if(PA.connect_master(src)) - connected_parts.Add(PA) - return 1 - return 0 - - -/obj/machinery/particle_accelerator/control_box/proc/toggle_power() - active = !active - investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]","singulo") - message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"](?) (FLW) in ([x],[y],[z] - JMP)",0,1) - log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in ([x],[y],[z])") - if(active) - use_power = 2 - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = strength - part.powered = 1 - part.update_icon() - else - use_power = 1 - for(var/CP in connected_parts) - var/obj/structure/particle_accelerator/part = CP - part.strength = null - part.powered = 0 - part.update_icon() - return 1 - - -/obj/machinery/particle_accelerator/control_box/interact(mob/user) - if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) - if(!issilicon(user)) - user.unset_machine() - user << browse(null, "window=pacontrol") - return - user.set_machine(src) - - var/dat = "" - dat += "Close

" - dat += "

Status

" - if(!assembled) - dat += "Unable to detect all parts!
" - dat += "Run Scan

" - else - dat += "All parts in place.

" - dat += "Power:" - if(active) - dat += "On
" - else - dat += "Off
" - dat += "Toggle Power

" - dat += "Particle Strength: [strength] " - dat += "--|++

" - - var/datum/browser/popup = new(user, "pacontrol", name, 420, 300) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() - -/obj/machinery/particle_accelerator/control_box/examine(mob/user) - ..() - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - to_chat(user, "Looks like it's not attached to the flooring") - if(PA_CONSTRUCTION_UNWIRED) - to_chat(user, "It is missing some cables") - if(PA_CONSTRUCTION_PANEL_OPEN) - to_chat(user, "The panel is open") - - -/obj/machinery/particle_accelerator/control_box/attackby(obj/item/W, mob/user, params) - var/did_something = FALSE - - switch(construction_state) - if(PA_CONSTRUCTION_UNSECURED) - if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, W.usesound, 75, 1) - anchored = 1 - user.visible_message("[user.name] secures the [name] to the floor.", \ - "You secure the external bolts.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - if(PA_CONSTRUCTION_UNWIRED) - if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, W.usesound, 75, 1) - anchored = 0 - user.visible_message("[user.name] detaches the [name] from the floor.", \ - "You remove the external bolts.") - construction_state = PA_CONSTRUCTION_UNSECURED - did_something = TRUE - else if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if(CC.use(1)) - user.visible_message("[user.name] adds wires to the [name].", \ - "You add some wires.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - if(PA_CONSTRUCTION_PANEL_OPEN) - if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? - user.visible_message("[user.name] removes some wires from the [name].", \ - "You remove some wires.") - construction_state = PA_CONSTRUCTION_UNWIRED - did_something = TRUE - else if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] closes the [name]'s access panel.", \ - "You close the access panel.") - construction_state = PA_CONSTRUCTION_COMPLETE - did_something = TRUE - if(PA_CONSTRUCTION_COMPLETE) - if(istype(W, /obj/item/weapon/screwdriver)) - user.visible_message("[user.name] opens the [name]'s access panel.", \ - "You open the access panel.") - construction_state = PA_CONSTRUCTION_PANEL_OPEN - did_something = TRUE - - if(did_something) - user.changeNext_move(CLICK_CD_MELEE) - update_state() - update_icon() - return - - ..() - -/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) - if(prob(50)) - qdel(src) - -#undef PA_CONSTRUCTION_UNSECURED -#undef PA_CONSTRUCTION_UNWIRED -#undef PA_CONSTRUCTION_PANEL_OPEN -#undef PA_CONSTRUCTION_COMPLETE +/obj/machinery/particle_accelerator/control_box + name = "Particle Accelerator Control Console" + desc = "This controls the density of the particles." + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "control_box" + anchored = 0 + density = 1 + use_power = 0 + idle_power_usage = 500 + active_power_usage = 10000 + dir = NORTH + var/strength_upper_limit = 2 + var/interface_control = 1 + var/list/obj/structure/particle_accelerator/connected_parts + var/assembled = 0 + var/construction_state = PA_CONSTRUCTION_UNSECURED + var/active = 0 + var/strength = 0 + var/powered = 0 + mouse_opacity = 2 + +/obj/machinery/particle_accelerator/control_box/New() + wires = new /datum/wires/particle_accelerator/control_box(src) + connected_parts = list() + ..() + +/obj/machinery/particle_accelerator/control_box/Destroy() + if(active) + toggle_power() + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.master = null + connected_parts.Cut() + qdel(wires) + wires = null + return ..() + +/obj/machinery/particle_accelerator/control_box/attack_hand(mob/user) + if(construction_state == PA_CONSTRUCTION_COMPLETE) + interact(user) + else if(construction_state == PA_CONSTRUCTION_PANEL_OPEN) + wires.interact(user) + +/obj/machinery/particle_accelerator/control_box/proc/update_state() + if(construction_state < PA_CONSTRUCTION_COMPLETE) + use_power = 0 + assembled = 0 + active = 0 + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = null + part.powered = 0 + part.update_icon() + connected_parts.Cut() + return + if(!part_scan()) + use_power = 1 + active = 0 + connected_parts.Cut() + +/obj/machinery/particle_accelerator/control_box/update_icon() + if(active) + icon_state = "control_boxp1" + else + if(use_power) + if(assembled) + icon_state = "control_boxp" + else + icon_state = "ucontrol_boxp" + else + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED, PA_CONSTRUCTION_UNWIRED) + icon_state = "control_box" + if(PA_CONSTRUCTION_PANEL_OPEN) + icon_state = "control_boxw" + else + icon_state = "control_boxc" + +/obj/machinery/particle_accelerator/control_box/Topic(href, href_list) + if(..()) + return + + if(!interface_control) + to_chat(usr, "ERROR: Request timed out. Check wire contacts.") + return + + if(href_list["close"]) + usr << browse(null, "window=pacontrol") + usr.unset_machine() + return + if(href_list["togglep"]) + if(!wires.is_cut(WIRE_POWER)) + toggle_power() + + else if(href_list["scan"]) + part_scan() + + else if(href_list["strengthup"]) + if(!wires.is_cut(WIRE_STRENGTH)) + add_strength() + + else if(href_list["strengthdown"]) + if(!wires.is_cut(WIRE_STRENGTH)) + remove_strength() + + updateDialog() + update_icon() + +/obj/machinery/particle_accelerator/control_box/proc/strength_change() + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = strength + part.update_icon() + +/obj/machinery/particle_accelerator/control_box/proc/add_strength(s) + if(assembled && (strength < strength_upper_limit)) + strength++ + strength_change() + + message_admins("PA Control Computer increased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer increased to [strength] by [key_name(usr)] in [COORD(src)]") + investigate_log("increased to [strength] by [key_name(usr)]","singulo") + + +/obj/machinery/particle_accelerator/control_box/proc/remove_strength(s) + if(assembled && (strength > 0)) + strength-- + strength_change() + + message_admins("PA Control Computer decreased to [strength] by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_COORDJMP(src)]",0,1) + log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in [COORD(src)]") + investigate_log("decreased to [strength] by [key_name(usr)]","singulo") + + +/obj/machinery/particle_accelerator/control_box/power_change() + ..() + if(stat & NOPOWER) + active = 0 + use_power = 0 + else if(!stat && construction_state == PA_CONSTRUCTION_COMPLETE) + use_power = 1 + +/obj/machinery/particle_accelerator/control_box/process() + if(active) + //a part is missing! + if(connected_parts.len < 6) + investigate_log("lost a connected part; It powered down.","singulo") + toggle_power() + update_icon() + return + //emit some particles + for(var/obj/structure/particle_accelerator/particle_emitter/PE in connected_parts) + PE.emit_particle(strength) + +/obj/machinery/particle_accelerator/control_box/proc/part_scan() + var/ldir = turn(dir,-90) + var/rdir = turn(dir,90) + var/odir = turn(dir,180) + var/turf/T = loc + + assembled = 0 + critical_machine = FALSE + + var/obj/structure/particle_accelerator/fuel_chamber/F = locate() in orange(1,src) + if(!F) + return 0 + + setDir(F.dir) + connected_parts.Cut() + + T = get_step(T,rdir) + if(!check_part(T,/obj/structure/particle_accelerator/fuel_chamber)) + return 0 + T = get_step(T,odir) + if(!check_part(T,/obj/structure/particle_accelerator/end_cap)) + return 0 + T = get_step(T,dir) + T = get_step(T,dir) + if(!check_part(T,/obj/structure/particle_accelerator/power_box)) + return 0 + T = get_step(T,dir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/center)) + return 0 + T = get_step(T,ldir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/left)) + return 0 + T = get_step(T,rdir) + T = get_step(T,rdir) + if(!check_part(T,/obj/structure/particle_accelerator/particle_emitter/right)) + return 0 + + assembled = 1 + critical_machine = TRUE //Only counts if the PA is actually assembled. + return 1 + +/obj/machinery/particle_accelerator/control_box/proc/check_part(turf/T, type) + var/obj/structure/particle_accelerator/PA = locate(/obj/structure/particle_accelerator) in T + if(istype(PA, type) && (PA.construction_state == PA_CONSTRUCTION_COMPLETE)) + if(PA.connect_master(src)) + connected_parts.Add(PA) + return 1 + return 0 + + +/obj/machinery/particle_accelerator/control_box/proc/toggle_power() + active = !active + investigate_log("turned [active?"ON":"OFF"] by [usr ? key_name(usr) : "outside forces"]","singulo") + message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? key_name_admin(usr) : "outside forces"](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] in ([x],[y],[z])") + if(active) + use_power = 2 + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = strength + part.powered = 1 + part.update_icon() + else + use_power = 1 + for(var/CP in connected_parts) + var/obj/structure/particle_accelerator/part = CP + part.strength = null + part.powered = 0 + part.update_icon() + return 1 + + +/obj/machinery/particle_accelerator/control_box/interact(mob/user) + if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) + if(!issilicon(user)) + user.unset_machine() + user << browse(null, "window=pacontrol") + return + user.set_machine(src) + + var/dat = "" + dat += "Close

" + dat += "

Status

" + if(!assembled) + dat += "Unable to detect all parts!
" + dat += "Run Scan

" + else + dat += "All parts in place.

" + dat += "Power:" + if(active) + dat += "On
" + else + dat += "Off
" + dat += "Toggle Power

" + dat += "Particle Strength: [strength] " + dat += "--|++

" + + var/datum/browser/popup = new(user, "pacontrol", name, 420, 300) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.open() + +/obj/machinery/particle_accelerator/control_box/examine(mob/user) + ..() + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + to_chat(user, "Looks like it's not attached to the flooring") + if(PA_CONSTRUCTION_UNWIRED) + to_chat(user, "It is missing some cables") + if(PA_CONSTRUCTION_PANEL_OPEN) + to_chat(user, "The panel is open") + + +/obj/machinery/particle_accelerator/control_box/attackby(obj/item/W, mob/user, params) + var/did_something = FALSE + + switch(construction_state) + if(PA_CONSTRUCTION_UNSECURED) + if(istype(W, /obj/item/weapon/wrench) && !isinspace()) + playsound(loc, W.usesound, 75, 1) + anchored = 1 + user.visible_message("[user.name] secures the [name] to the floor.", \ + "You secure the external bolts.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + if(PA_CONSTRUCTION_UNWIRED) + if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, W.usesound, 75, 1) + anchored = 0 + user.visible_message("[user.name] detaches the [name] from the floor.", \ + "You remove the external bolts.") + construction_state = PA_CONSTRUCTION_UNSECURED + did_something = TRUE + else if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if(CC.use(1)) + user.visible_message("[user.name] adds wires to the [name].", \ + "You add some wires.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + if(PA_CONSTRUCTION_PANEL_OPEN) + if(istype(W, /obj/item/weapon/wirecutters))//TODO:Shock user if its on? + user.visible_message("[user.name] removes some wires from the [name].", \ + "You remove some wires.") + construction_state = PA_CONSTRUCTION_UNWIRED + did_something = TRUE + else if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] closes the [name]'s access panel.", \ + "You close the access panel.") + construction_state = PA_CONSTRUCTION_COMPLETE + did_something = TRUE + if(PA_CONSTRUCTION_COMPLETE) + if(istype(W, /obj/item/weapon/screwdriver)) + user.visible_message("[user.name] opens the [name]'s access panel.", \ + "You open the access panel.") + construction_state = PA_CONSTRUCTION_PANEL_OPEN + did_something = TRUE + + if(did_something) + user.changeNext_move(CLICK_CD_MELEE) + update_state() + update_icon() + return + + ..() + +/obj/machinery/particle_accelerator/control_box/blob_act(obj/structure/blob/B) + if(prob(50)) + qdel(src) + +#undef PA_CONSTRUCTION_UNSECURED +#undef PA_CONSTRUCTION_UNWIRED +#undef PA_CONSTRUCTION_PANEL_OPEN +#undef PA_CONSTRUCTION_COMPLETE diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index bf695cffed..ba4770ebba 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -9,6 +9,7 @@ firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy /obj/item/ammo_casing/energy/chameleon + projectile_type = /obj/item/projectile/energy/chameleon e_cost = 0 var/list/projectile_vars = list() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 4e85ee3299..cceb77bee1 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -190,7 +190,7 @@ name = "dart" icon_state = "cbbolt" damage = 6 - var/piercing = FALSE + var/piercing = FALSE /obj/item/projectile/bullet/dart/New() ..() @@ -201,15 +201,15 @@ if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked - if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. + if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..() reagents.reaction(M, INJECT) reagents.trans_to(M, reagents.total_volume) - return TRUE + return TRUE else blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") + target.visible_message("\The [src] was deflected!", \ + "You were protected against \the [src]!") ..(target, blocked) reagents.set_reacting(TRUE) @@ -240,28 +240,28 @@ nodamage = 1 . = ..() // Execute the rest of the code. -/obj/item/projectile/bullet/dnainjector - 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 - if(blocked != 100) - if(M.can_inject(null, FALSE, def_zone, FALSE)) - if(injector.inject(M, firer)) - QDEL_NULL(injector) - return TRUE - else - blocked = 100 - target.visible_message("\The [src] was deflected!", \ - "You were protected against \the [src]!") - return ..() - -/obj/item/projectile/bullet/dnainjector/Destroy() - QDEL_NULL(injector) - return ..() +/obj/item/projectile/bullet/dnainjector + 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 + if(blocked != 100) + if(M.can_inject(null, FALSE, def_zone, FALSE)) + if(injector.inject(M, firer)) + QDEL_NULL(injector) + return TRUE + else + blocked = 100 + target.visible_message("\The [src] was deflected!", \ + "You were protected against \the [src]!") + return ..() + +/obj/item/projectile/bullet/dnainjector/Destroy() + QDEL_NULL(injector) + return ..() //// SNIPER BULLETS diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 974ea935f2..cfa7727186 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -5,6 +5,8 @@ damage_type = BURN flag = "energy" +/obj/item/projectile/energy/chameleon + nodamage = TRUE /obj/item/projectile/energy/electrode name = "electrode" diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm old mode 100755 new mode 100644 diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm old mode 100755 new mode 100644 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index df8f7927c0..cc38a44ffc 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -1,239 +1,239 @@ -/obj/item/weapon/reagent_containers/spray - name = "spray bottle" - desc = "A spray bottle, with an unscrewable top." - icon = 'icons/obj/janitor.dmi' - icon_state = "cleaner" - item_state = "cleaner" - flags = NOBLUDGEON - container_type = OPENCONTAINER - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 7 - var/stream_mode = 0 //whether we use the more focused mode - var/current_range = 3 //the range of tiles the sprayer will reach. - var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. - var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. - var/stream_amount = 10 //the amount of reagents transfered when in stream mode. - amount_per_transfer_from_this = 5 - volume = 250 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100) - - -/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user) - if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) - return - - if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution - if(!A.reagents.total_volume && A.reagents) - to_chat(user, "\The [A] is empty.") - return - - if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "\The [src] is full.") - return - - var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill - to_chat(user, "You fill \the [src] with [trans] units of the contents of \the [A].") - return - - if(reagents.total_volume < amount_per_transfer_from_this) - to_chat(user, "\The [src] is empty!") - return - - spray(A) - - playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) - user.changeNext_move(CLICK_CD_RANGE*2) - user.newtonian_move(get_dir(A, user)) - var/turf/T = get_turf(src) - var/area/area = get_area(src) - if(reagents.has_reagent("sacid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") - if(reagents.has_reagent("facid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") - if(reagents.has_reagent("lube")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") - return - - -/obj/item/weapon/reagent_containers/spray/proc/spray(atom/A) - var/range = max(min(current_range, get_dist(src, A)), 1) - var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) - D.create_reagents(amount_per_transfer_from_this) - var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed - if(stream_mode) - reagents.trans_to(D, amount_per_transfer_from_this) - puff_reagent_left = 1 - else - reagents.trans_to(D, amount_per_transfer_from_this, 1/range) - D.color = mix_color_from_reagents(D.reagents.reagent_list) - var/wait_step = max(round(2+3/range), 2) - spawn(0) - var/range_left = range - for(var/i=0, i 0 && (!stream_mode || !range_left)) - D.reagents.reaction(get_turf(D), VAPOR) - puff_reagent_left -= 1 - - if(puff_reagent_left <= 0) // we used all the puff so we delete it. - qdel(D) - return - qdel(D) - -/obj/item/weapon/reagent_containers/spray/attack_self(mob/user) - stream_mode = !stream_mode - if(stream_mode) - amount_per_transfer_from_this = stream_amount - current_range = stream_range - else - amount_per_transfer_from_this = initial(amount_per_transfer_from_this) - current_range = spray_range - to_chat(user, "You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.") - -/obj/item/weapon/reagent_containers/spray/verb/empty() - set name = "Empty Spray Bottle" - set category = "Object" - set src in usr - if(usr.incapacitated()) - return - if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes") - return - if(isturf(usr.loc) && src.loc == usr) - to_chat(usr, "You empty \the [src] onto the floor.") - reagents.reaction(usr.loc) - src.reagents.clear_reagents() - -//space cleaner -/obj/item/weapon/reagent_containers/spray/cleaner - name = "space cleaner" - desc = "BLAM!-brand non-foaming space cleaner!" - list_reagents = list("cleaner" = 250) - -//spray tan -/obj/item/weapon/reagent_containers/spray/spraytan - name = "spray tan" - volume = 50 - desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices." - list_reagents = list("spraytan" = 50) - - -/obj/item/weapon/reagent_containers/spray/medical - name = "medical spray" - icon = 'icons/obj/chemical.dmi' - icon_state = "medspray" - volume = 100 - - -/obj/item/weapon/reagent_containers/spray/medical/sterilizer - name = "sterilizer spray" - desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." - list_reagents = list("sterilizine" = 100) - - -//pepperspray -/obj/item/weapon/reagent_containers/spray/pepper - name = "pepperspray" - desc = "Manufactured by UhangInc, used to blind and down an opponent quickly." - icon = 'icons/obj/weapons.dmi' - icon_state = "pepperspray" - item_state = "pepperspray" - volume = 40 - stream_range = 4 - amount_per_transfer_from_this = 5 - list_reagents = list("condensedcapsaicin" = 40) - -// Fix pepperspraying yourself -/obj/item/weapon/reagent_containers/spray/pepper/afterattack(atom/A as mob|obj, mob/user) - if (A.loc == user) - return - ..() - -//water flower -/obj/item/weapon/reagent_containers/spray/waterflower - name = "water flower" - desc = "A seemingly innocent sunflower...with a twist." - icon = 'icons/obj/hydroponics/harvest.dmi' - icon_state = "sunflower" - item_state = "sunflower" - amount_per_transfer_from_this = 1 - volume = 10 - list_reagents = list("water" = 10) - -/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays - return - -//chemsprayer -/obj/item/weapon/reagent_containers/spray/chemsprayer - name = "chem sprayer" - desc = "A utility used to spray large amounts of reagents in a given area." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "chemsprayer" - item_state = "chemsprayer" - throwforce = 0 - w_class = WEIGHT_CLASS_NORMAL - stream_mode = 1 - current_range = 7 - spray_range = 4 - stream_range = 7 - amount_per_transfer_from_this = 10 - volume = 600 - origin_tech = "combat=3;materials=3;engineering=3" - -/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user) - // Make it so the bioterror spray doesn't spray yourself when you click your inventory items - if (A.loc == user) - return - ..() - -/obj/item/weapon/reagent_containers/spray/chemsprayer/spray(atom/A) - var/direction = get_dir(src, A) - var/turf/T = get_turf(A) - var/turf/T1 = get_step(T,turn(direction, 90)) - var/turf/T2 = get_step(T,turn(direction, -90)) - var/list/the_targets = list(T,T1,T2) - - for(var/i=1, i<=3, i++) // intialize sprays - if(reagents.total_volume < 1) - return - ..(the_targets[i]) - -/obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror - list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100) - -// Plant-B-Gone -/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie - name = "Plant-B-Gone" - desc = "Kills those pesky weeds!" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "plantbgone" - item_state = "plantbgone" - volume = 100 - list_reagents = list("plantbgone" = 100) +/obj/item/weapon/reagent_containers/spray + name = "spray bottle" + desc = "A spray bottle, with an unscrewable top." + icon = 'icons/obj/janitor.dmi' + icon_state = "cleaner" + item_state = "cleaner" + flags = NOBLUDGEON + container_type = OPENCONTAINER + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 7 + var/stream_mode = 0 //whether we use the more focused mode + var/current_range = 3 //the range of tiles the sprayer will reach. + var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. + var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. + var/stream_amount = 10 //the amount of reagents transfered when in stream mode. + amount_per_transfer_from_this = 5 + volume = 250 + possible_transfer_amounts = list(5,10,15,20,25,30,50,100) + + +/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user) + if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) + return + + if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution + if(!A.reagents.total_volume && A.reagents) + to_chat(user, "\The [A] is empty.") + return + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "\The [src] is full.") + return + + var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill + to_chat(user, "You fill \the [src] with [trans] units of the contents of \the [A].") + return + + if(reagents.total_volume < amount_per_transfer_from_this) + to_chat(user, "\The [src] is empty!") + return + + spray(A) + + playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) + user.changeNext_move(CLICK_CD_RANGE*2) + user.newtonian_move(get_dir(A, user)) + var/turf/T = get_turf(src) + var/area/area = get_area(src) + if(reagents.has_reagent("sacid")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") + if(reagents.has_reagent("facid")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") + if(reagents.has_reagent("lube")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") + return + + +/obj/item/weapon/reagent_containers/spray/proc/spray(atom/A) + var/range = max(min(current_range, get_dist(src, A)), 1) + var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) + D.create_reagents(amount_per_transfer_from_this) + var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed + if(stream_mode) + reagents.trans_to(D, amount_per_transfer_from_this) + puff_reagent_left = 1 + else + reagents.trans_to(D, amount_per_transfer_from_this, 1/range) + D.color = mix_color_from_reagents(D.reagents.reagent_list) + var/wait_step = max(round(2+3/range), 2) + spawn(0) + var/range_left = range + for(var/i=0, i 0 && (!stream_mode || !range_left)) + D.reagents.reaction(get_turf(D), VAPOR) + puff_reagent_left -= 1 + + if(puff_reagent_left <= 0) // we used all the puff so we delete it. + qdel(D) + return + qdel(D) + +/obj/item/weapon/reagent_containers/spray/attack_self(mob/user) + stream_mode = !stream_mode + if(stream_mode) + amount_per_transfer_from_this = stream_amount + current_range = stream_range + else + amount_per_transfer_from_this = initial(amount_per_transfer_from_this) + current_range = spray_range + to_chat(user, "You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.") + +/obj/item/weapon/reagent_containers/spray/verb/empty() + set name = "Empty Spray Bottle" + set category = "Object" + set src in usr + if(usr.incapacitated()) + return + if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes") + return + if(isturf(usr.loc) && src.loc == usr) + to_chat(usr, "You empty \the [src] onto the floor.") + reagents.reaction(usr.loc) + src.reagents.clear_reagents() + +//space cleaner +/obj/item/weapon/reagent_containers/spray/cleaner + name = "space cleaner" + desc = "BLAM!-brand non-foaming space cleaner!" + list_reagents = list("cleaner" = 250) + +//spray tan +/obj/item/weapon/reagent_containers/spray/spraytan + name = "spray tan" + volume = 50 + desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices." + list_reagents = list("spraytan" = 50) + + +/obj/item/weapon/reagent_containers/spray/medical + name = "medical spray" + icon = 'icons/obj/chemical.dmi' + icon_state = "medspray" + volume = 100 + + +/obj/item/weapon/reagent_containers/spray/medical/sterilizer + name = "sterilizer spray" + desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." + list_reagents = list("sterilizine" = 100) + + +//pepperspray +/obj/item/weapon/reagent_containers/spray/pepper + name = "pepperspray" + desc = "Manufactured by UhangInc, used to blind and down an opponent quickly." + icon = 'icons/obj/weapons.dmi' + icon_state = "pepperspray" + item_state = "pepperspray" + volume = 40 + stream_range = 4 + amount_per_transfer_from_this = 5 + list_reagents = list("condensedcapsaicin" = 40) + +// Fix pepperspraying yourself +/obj/item/weapon/reagent_containers/spray/pepper/afterattack(atom/A as mob|obj, mob/user) + if (A.loc == user) + return + ..() + +//water flower +/obj/item/weapon/reagent_containers/spray/waterflower + name = "water flower" + desc = "A seemingly innocent sunflower...with a twist." + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "sunflower" + item_state = "sunflower" + amount_per_transfer_from_this = 1 + volume = 10 + list_reagents = list("water" = 10) + +/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays + return + +//chemsprayer +/obj/item/weapon/reagent_containers/spray/chemsprayer + name = "chem sprayer" + desc = "A utility used to spray large amounts of reagents in a given area." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "chemsprayer" + item_state = "chemsprayer" + throwforce = 0 + w_class = WEIGHT_CLASS_NORMAL + stream_mode = 1 + current_range = 7 + spray_range = 4 + stream_range = 7 + amount_per_transfer_from_this = 10 + volume = 600 + origin_tech = "combat=3;materials=3;engineering=3" + +/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user) + // Make it so the bioterror spray doesn't spray yourself when you click your inventory items + if (A.loc == user) + return + ..() + +/obj/item/weapon/reagent_containers/spray/chemsprayer/spray(atom/A) + var/direction = get_dir(src, A) + var/turf/T = get_turf(A) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + var/list/the_targets = list(T,T1,T2) + + for(var/i=1, i<=3, i++) // intialize sprays + if(reagents.total_volume < 1) + return + ..(the_targets[i]) + +/obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror + list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100) + +// Plant-B-Gone +/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie + name = "Plant-B-Gone" + desc = "Kills those pesky weeds!" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "plantbgone" + item_state = "plantbgone" + volume = 100 + list_reagents = list("plantbgone" = 100) diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index a5226abd58..8368fd58e5 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -1,33 +1,33 @@ -/obj/machinery/computer/shuttle/ferry - name = "transport ferry console" - circuit = /obj/item/weapon/circuitboard/computer/ferry - shuttleId = "ferry" - possible_destinations = "ferry_home;ferry_away" - req_access = list(GLOB.access_cent_general) - - var/aiControlDisabled = 1 - -/obj/machinery/computer/shuttle/ferry/proc/canAIControl(mob/user) - return ((aiControlDisabled != 1)); - -/obj/machinery/computer/shuttle/ferry/attack_ai(mob/user) - if(!src.canAIControl(user)) - return - -/obj/machinery/computer/shuttle/ferry/request - name = "ferry console" - circuit = /obj/item/weapon/circuitboard/computer/ferry/request - var/last_request //prevents spamming admins - var/cooldown = 600 - possible_destinations = "ferry_home;ferry_away" - req_access = list(GLOB.access_cent_general) - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - -/obj/machinery/computer/shuttle/ferry/request/Topic(href, href_list) - ..() - if(href_list["request"]) - if(last_request && (last_request + cooldown > world.time)) - return - last_request = world.time - to_chat(usr, "Your request has been recieved by Centcom.") - to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to Centcom.") +/obj/machinery/computer/shuttle/ferry + name = "transport ferry console" + circuit = /obj/item/weapon/circuitboard/computer/ferry + shuttleId = "ferry" + possible_destinations = "ferry_home;ferry_away" + req_access = list(GLOB.access_cent_general) + + var/aiControlDisabled = 1 + +/obj/machinery/computer/shuttle/ferry/proc/canAIControl(mob/user) + return ((aiControlDisabled != 1)); + +/obj/machinery/computer/shuttle/ferry/attack_ai(mob/user) + if(!src.canAIControl(user)) + return + +/obj/machinery/computer/shuttle/ferry/request + name = "ferry console" + circuit = /obj/item/weapon/circuitboard/computer/ferry/request + var/last_request //prevents spamming admins + var/cooldown = 600 + possible_destinations = "ferry_home;ferry_away" + req_access = list(GLOB.access_cent_general) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/machinery/computer/shuttle/ferry/request/Topic(href, href_list) + ..() + if(href_list["request"]) + if(last_request && (last_request + cooldown > world.time)) + return + last_request = world.time + to_chat(usr, "Your request has been recieved by Centcom.") + to_chat(GLOB.admins, "FERRY: [ADMIN_LOOKUPFLW(usr)] (Move Ferry) is requesting to move the transport ferry to Centcom.") diff --git a/icons/emoji.dmi b/icons/emoji.dmi old mode 100755 new mode 100644 diff --git a/tgstation.dme b/tgstation.dme index 83c004c29e..ad998e8286 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -33,6 +33,7 @@ #include "code\__DEFINES\combat.dm" #include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\cult.dm" #include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\flags.dm" @@ -167,9 +168,6 @@ #include "code\citadel\cit_uniforms.dm" #include "code\citadel\cit_vendors.dm" #include "code\citadel\dogborgstuff.dm" -#include "code\citadel\custom_loadout\custom_items.dm" -#include "code\citadel\custom_loadout\load_to_mob.dm" -#include "code\citadel\custom_loadout\read_from_file.dm" #include "code\citadel\organs\breasts.dm" #include "code\citadel\organs\eggsack.dm" #include "code\citadel\organs\genitals.dm" @@ -199,12 +197,14 @@ #include "code\controllers\subsystem\dbcore.dm" #include "code\controllers\subsystem\disease.dm" #include "code\controllers\subsystem\events.dm" +#include "code\controllers\subsystem\fields.dm" #include "code\controllers\subsystem\fire_burning.dm" #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\icon_smooth.dm" #include "code\controllers\subsystem\inbounds.dm" #include "code\controllers\subsystem\ipintel.dm" #include "code\controllers\subsystem\job.dm" +#include "code\controllers\subsystem\language.dm" #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\machines.dm" #include "code\controllers\subsystem\mapping.dm" @@ -266,6 +266,7 @@ #include "code\datums\antagonists\antag_datum.dm" #include "code\datums\antagonists\datum_clockcult.dm" #include "code\datums\antagonists\datum_cult.dm" +#include "code\datums\antagonists\ninja.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" #include "code\datums\diseases\anxiety.dm" @@ -470,7 +471,9 @@ #include "code\game\gamemodes\cult\cult_items.dm" #include "code\game\gamemodes\cult\cult_structures.dm" #include "code\game\gamemodes\cult\ritual.dm" +#include "code\game\gamemodes\cult\rune_spawn_action.dm" #include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\supply.dm" #include "code\game\gamemodes\cult\talisman.dm" #include "code\game\gamemodes\devil\devil.dm" #include "code\game\gamemodes\devil\devil_game_mode.dm" @@ -556,6 +559,7 @@ #include "code\game\machinery\hologram.dm" #include "code\game\machinery\igniter.dm" #include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\launch_pad.dm" #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\limbgrower.dm" #include "code\game\machinery\machinery.dm" @@ -604,6 +608,7 @@ #include "code\game\machinery\computer\crew.dm" #include "code\game\machinery\computer\dna_console.dm" #include "code\game\machinery\computer\gulag_teleporter.dm" +#include "code\game\machinery\computer\launchpad_control.dm" #include "code\game\machinery\computer\law.dm" #include "code\game\machinery\computer\medical.dm" #include "code\game\machinery\computer\message.dm" @@ -726,6 +731,10 @@ #include "code\game\objects\effects\spawners\structure.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" #include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" +#include "code\game\objects\effects\temporary_visuals\clockcult.dm" +#include "code\game\objects\effects\temporary_visuals\cult.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" #include "code\game\objects\items\apc_frame.dm" #include "code\game\objects\items\blueprints.dm" #include "code\game\objects\items\body_egg.dm" @@ -809,7 +818,6 @@ #include "code\game\objects\items\weapons\defib.dm" #include "code\game\objects\items\weapons\dice.dm" #include "code\game\objects\items\weapons\dna_injector.dm" -#include "code\game\objects\items\weapons\explosives.dm" #include "code\game\objects\items\weapons\extinguisher.dm" #include "code\game\objects\items\weapons\flamethrower.dm" #include "code\game\objects\items\weapons\gift.dm" @@ -1304,6 +1312,9 @@ #include "code\modules\events\wizard\rpgloot.dm" #include "code\modules\events\wizard\shuffle.dm" #include "code\modules\events\wizard\summons.dm" +#include "code\modules\fields\fields.dm" +#include "code\modules\fields\peaceborg_dampener.dm" +#include "code\modules\fields\turf_objects.dm" #include "code\modules\flufftext\Dreaming.dm" #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" @@ -1426,12 +1437,15 @@ #include "code\modules\jobs\job_types\security.dm" #include "code\modules\jobs\job_types\silicon.dm" #include "code\modules\language\common.dm" +#include "code\modules\language\draconic.dm" #include "code\modules\language\drone.dm" #include "code\modules\language\language.dm" +#include "code\modules\language\language_holder.dm" #include "code\modules\language\language_menu.dm" #include "code\modules\language\machine.dm" #include "code\modules\language\monkey.dm" -#include "code\modules\language\ratvar.dm" +#include "code\modules\language\narsian.dm" +#include "code\modules\language\ratvarian.dm" #include "code\modules\language\slime.dm" #include "code\modules\language\swarmer.dm" #include "code\modules\language\xenocommon.dm" @@ -1803,7 +1817,6 @@ #include "code\modules\modular_computers\NTNet\NTNet_relay.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" #include "code\modules\ninja\__ninjaDefines.dm" -#include "code\modules\ninja\admin_ninja_verbs.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\ninja_event.dm" #include "code\modules\ninja\Ninja_Readme.dm" diff --git a/tools/tgstation-server/Start Server.bat b/tools/tgstation-server/Start Server.bat index 0312a22a5c..80efb9444b 100644 --- a/tools/tgstation-server/Start Server.bat +++ b/tools/tgstation-server/Start Server.bat @@ -3,37 +3,37 @@ call config.bat call bin\findbyond.bat -echo Welcome to the start server watch dog script, This will start the server and make sure it stays running. To continue, press any key or wait 30 seconds. -timeout 30 +echo Welcome to the start server watch dog script, This will start the server and make sure it stays running. To continue, press any key or wait 30 seconds. +timeout 30 if not exist gamedata\data\logs\runtimes mkdir gamedata\data\logs\runtimes\ -@call python bot\nudge.py "WATCHDOG" "Watch Dog online. Starting server" >nul 2>nul +@call python bot\nudge.py "WATCHDOG" "Watch Dog online. Starting server" >nul 2>nul :START - + call bin\getcurdate.bat - -call bin\getunixtime.bat UNIXTIME - -echo %UNIXTIME% - -set STARTTIME=%UNIXTIME% - + +call bin\getunixtime.bat UNIXTIME + +echo %UNIXTIME% + +set STARTTIME=%UNIXTIME% + cls echo Watch Dog. echo Server Running. Watching for server exits. -start /WAIT /ABOVENORMAL "" dreamdaemon.exe gamefolder\%PROJECTNAME%.dmb -port %PORT% -trusted -close -public -verbose +start /WAIT /ABOVENORMAL "" dreamdaemon.exe gamefolder\%PROJECTNAME%.dmb -port %PORT% -trusted -close -public -verbose cls - -call bin\getunixtime.bat UNIXTIME - -SET /A Result=%UNIXTIME% - %STARTTIME% -SET /A Result=180 - (%Result%/3) -if %Result% LSS 0 set /A Result=0 - + +call bin\getunixtime.bat UNIXTIME + +SET /A Result=%UNIXTIME% - %STARTTIME% +SET /A Result=180 - (%Result%/3) +if %Result% LSS 0 set /A Result=0 + echo Watch Dog. -echo Server exit detected. Restarting in %Result% seconds. -@python bot\nudge.py "WATCHDOG" "Server exit detected. Restarting server in %Result% seconds." >nul 2>nul -timeout %Result% +echo Server exit detected. Restarting in %Result% seconds. +@python bot\nudge.py "WATCHDOG" "Server exit detected. Restarting server in %Result% seconds." >nul 2>nul +timeout %Result% goto :START From 0508b613a577e60985b3078ef7b7da57fd5d4001 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Mon, 22 May 2017 17:53:24 -0700 Subject: [PATCH 013/181] automatic config load and dme --- code/controllers/configuration.dm | 1 + tgstation.dme | 3 +++ 2 files changed, 4 insertions(+) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index e9bdeca880..543225ec3c 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -285,6 +285,7 @@ load("config/config.txt") load("config/game_options.txt","game_options") loadsql("config/dbconfig.txt") + reload_custom_roundstart_items_list() if (maprotation) loadmaplist("config/maps.txt") diff --git a/tgstation.dme b/tgstation.dme index ad998e8286..646f483259 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -168,6 +168,9 @@ #include "code\citadel\cit_uniforms.dm" #include "code\citadel\cit_vendors.dm" #include "code\citadel\dogborgstuff.dm" +#include "code\citadel\custom_loadout\custom_items.dm" +#include "code\citadel\custom_loadout\load_to_mob.dm" +#include "code\citadel\custom_loadout\read_from_file.dm" #include "code\citadel\organs\breasts.dm" #include "code\citadel\organs\eggsack.dm" #include "code\citadel\organs\genitals.dm" From 1013cfac250e0bc0e3160f927a2419ca6c4185fd Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 28 May 2017 15:15:34 -0700 Subject: [PATCH 014/181] hooks --- code/modules/jobs/job_types/job.dm | 2 ++ code/modules/mob/dead/new_player/new_player.dm | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 4d5d4eb80c..1253ec2c37 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -188,3 +188,5 @@ for(var/implant_type in implants) var/obj/item/weapon/implant/I = new implant_type(H) I.implant(H, null, silent=TRUE) + + handle_roundstart_items(H) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index e3943d07e6..4effac371d 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -24,10 +24,10 @@ loc = pick(GLOB.newplayer_start) else loc = locate(1,1,1) - . = ..() - -/mob/dead/new_player/prepare_huds() - return + . = ..() + +/mob/dead/new_player/prepare_huds() + return /mob/dead/new_player/proc/new_player_panel() @@ -146,7 +146,7 @@ return 1 if(href_list["late_join"]) - if(!SSticker || !SSticker.IsRoundInProgress()) + if(!SSticker || !SSticker.IsRoundInProgress()) to_chat(usr, "The round is either not ready, or has already finished...") return From 97f6bf4410a25c3754c2b5a608b351ef0ec7c987 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Mon, 24 Jul 2017 04:12:17 -0700 Subject: [PATCH 015/181] character separation wip --- code/citadel/custom_loadout/read_from_file.dm | 52 ++++++++----------- config/custom_roundstart_items.txt | 11 ++-- tgstation.dme | 1 + 3 files changed, 27 insertions(+), 37 deletions(-) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index a4d363bd06..e29fc74128 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -19,23 +19,30 @@ GLOBAL_LIST(custom_item_list) if(copytext(line,1,3) == "//") //Commented line, ignore. continue var/ckey_str_sep = findtext(line, "|") //Process our stuff.. - var/job_str_sep = findtext(line, "|", ckey_str_sep+1) + var/char_str_sep = findtext(line, "|", ckey_str_sep+1) + var/job_str_sep = findtext(line, "|", char_str_sep+1) var/item_str_sep = findtext(line, "|", job_str_sep+1) var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) - var/job_str = copytext(line, ckey_str_sep+1, job_str_sep) + var/char_str = copytext(line, ckey_str_sep+1, char_str_sep) + var/job_str = copytext(line, char_str_sep+1, job_str_sep) var/item_str = copytext(line, job_str_sep+1, item_str_sep) - if(!ckey_str || !job_str || !item_str || !length(ckey_str) || !length(job_str) || !length(item_str)) + if(!ckey_str || !!char_str || !job_str || !item_str || !length(ckey_str) || !length(char_str) || !length(job_str) || !length(item_str)) throw EXCEPTION("Errored Line") - world << "DEBUG: Line process: [line]" - world << "DEBUG: [ckey_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [job_str], [item_str]." + to_chat(world, "DEBUG: Line process: [line]") + to_chat(world, "DEBUG: [ckey_str_sep], [char_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [char_str], [job_str], [item_str].") if(!islist(GLOB.custom_item_list[ckey_str])) GLOB.custom_item_list[ckey_str] = list() //Initialize list for this ckey if it isn't initialized.. + var/list/characters = splittext(char_str, "/") + for(var/character in characters) + if(!islist(GLOB.custom_item_list[ckey_str][character])) + GLOB.custom_item_list[ckey_str][character] = list() var/list/jobs = splittext(job_str, "/") world << "DEBUG: Job string processed." world << "DEBUG: JOBS: [english_list(jobs)]" for(var/job in jobs) - if(!islist(GLOB.custom_item_list[ckey_str][job])) - GLOB.custom_item_list[ckey_str][job] = list() //Initialize item list for this job of this ckey if not already initialized. + for(var/character in characters) + if(!islist(GLOB.custom_item_list[ckey_str][character][job])) + GLOB.custom_item_list[ckey_str][character][job] = list() //Initialize item list for this job of this ckey if not already initialized. var/list/item_strings = splittext(item_str, ";") //Get item strings in format of /path/to/item=amount for(var/item_string in item_strings) var/path_str_sep = findtext(item_string, "=") @@ -47,11 +54,12 @@ GLOBAL_LIST(custom_item_list) if(!ispath(path) || !isnum(amount)) throw EXCEPTION("Errored line") world << "DEBUG: [path_str_sep], [path], [amount]" - for(var/job in jobs) - if(!GLOB.custom_item_list[ckey_str][job][path]) //Doesn't exist, make it exist! - GLOB.custom_item_list[ckey_str][job][path] = amount - else - GLOB.custom_item_list[ckey_str][job][path] += amount //Exists, we want more~ + for(var/character in characters) + for(var/job in jobs) + if(!GLOB.custom_item_list[ckey_str][character][job][path]) //Doesn't exist, make it exist! + GLOB.custom_item_list[ckey_str][character][job][path] = amount + else + GLOB.custom_item_list[ckey_str][character][job][path] += amount //Exists, we want more~ catch //Uh oh. var/msg = "Error processing line in [custom_filelist]. Line : [line]" message_admins(msg) @@ -60,26 +68,8 @@ GLOBAL_LIST(custom_item_list) continue return GLOB.custom_item_list -/proc/parse_custom_item_list_key_to_joblist(ckey) //First stage - if(!ckey || !GLOB.custom_item_list[ckey]) - return null - return GLOB.custom_item_list[ckey] +/proc/parse_custom_roundstart_items(ckey, char_name = "ANY", job_name = "ANY") -/proc/parse_custom_item_list_joblist_to_items(list, job) //Second stage - var/list/ret = list() - for(var/j in list) //for job in ckey-job-item list - if((j == job) || (j == "ALL") || (job == "ALL")) //job matches or is all jobs or we want everything. - for(var/i in list[j]) //for item in job-item list - if(!ret[i]) - world << "DEBUG: [i] initialized to return list" - ret[i] = list[j][i] //add to return with return value if not there - else - world << "DEBUG: [i] added to return list" - ret[i] += list[j][i] //else, add to that item in return value! - return ret //If done properly, you'll have a list of item typepaths with how many to spawn. - -/proc/parse_custom_items_by_key_and_job(ckey, job) - return parse_custom_item_list_joblist_to_items(parse_custom_item_list_key_to_joblist(ckey), job) /proc/debug_roundstart_items() reload_custom_roundstart_items_list() diff --git a/config/custom_roundstart_items.txt b/config/custom_roundstart_items.txt index 7d206d8d09..b71836fe53 100644 --- a/config/custom_roundstart_items.txt +++ b/config/custom_roundstart_items.txt @@ -1,10 +1,9 @@ -//File should be in the format of ckey|exact job name/exact job name/or put ALL instead of any job names|/path/to/item=amount;/path/to/item=amount +//File should be in the format of ckey|exact character name/exact second character name/ALL for all chars|exact job name/exact job name/or put ALL instead of any job names|/path/to/item=amount;/path/to/item=amount //Each ckey should be in a different line //if there's multiple entries of a single ckey the later ones will add to the earlier definitions. //is obviously a comment. //Recommend defining one job per line, but do what you want. -test1|testjob1/test job 2/ALL|/obj/item/weapon/gun/energy/laser=3;/obj/item/weapon/gun/energy/laser/retro=1;/obj/item/weapon/gun/energy=2 -test1|testjob1|/obj/item/device/aicard=3;/obj/item/device/flightpack=1;/obj/item/weapon/gun/energy=3 -kevinz000|ALL|/obj/item/weapon/bikehorn/airhorn=1 -kevinz000|Clown|/obj/item/weapon/bikehorn=1 - +test1|Secondary Memenamefortesting|testjob1/test job 2/ALL|/obj/item/weapon/gun/energy/laser=3;/obj/item/weapon/gun/energy/laser/retro=1;/obj/item/weapon/gun/energy=2 +test1|Memename Lastname|testjob1|/obj/item/device/aicard=3;/obj/item/device/flightpack=1;/obj/item/weapon/gun/energy=3 +kevinz000|Skylar Lineman|ALL|/obj/item/weapon/bikehorn/airhorn=1 +kevinz000|ALL|Clown|/obj/item/weapon/bikehorn=1 diff --git a/tgstation.dme b/tgstation.dme index 968f93d4d7..2b6762c36c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -826,6 +826,7 @@ #include "code\game\objects\items\weapons\charter.dm" #include "code\game\objects\items\weapons\chrono_eraser.dm" #include "code\game\objects\items\weapons\cigs_lighters.dm" +#include "code\game\objects\items\weapons\clown.dm" #include "code\game\objects\items\weapons\clown_items.dm" #include "code\game\objects\items\weapons\cosmetics.dm" #include "code\game\objects\items\weapons\courtroom.dm" From edf7c03070734e3fd81aef4519ff722edc73f110 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Jul 2017 19:58:18 -0500 Subject: [PATCH 016/181] Multiple inhand sprites fix --- code/modules/projectiles/guns/energy/energy_gun.dm | 3 +++ code/modules/projectiles/guns/energy/special.dm | 2 +- code/modules/reagents/reagent_containers/spray.dm | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 2fce18d61c..9d1464be2a 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -65,6 +65,9 @@ name = "\improper DRAGnet" desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." icon_state = "dragnet" + item_state = "dragnet" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' origin_tech = "combat=4;magnets=3;bluespace=4" ammo_type = list(/obj/item/ammo_casing/energy/net, /obj/item/ammo_casing/energy/trap) can_flashlight = 0 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 0f8cfa0e28..204b98a097 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -285,6 +285,6 @@ desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity." ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) origin_tech = "combat=4;magnets=4;materials=6;powerstorage=4;bluespace=4" - item_state = null + item_state = "gravity_gun" icon_state = "gravity_gun" var/power = 4 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 11e901f1cb..76ce15f628 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -200,6 +200,8 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "chemsprayer" item_state = "chemsprayer" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_NORMAL stream_mode = 1 From a209582b8a8f82ef55d9111e38f8d24cbbd54bb3 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Aug 2017 03:21:24 -0500 Subject: [PATCH 017/181] Fixes areastring grabbing area subtypes --- code/__HELPERS/unsorted.dm | 12 ++++++++++++ .../machinery/porta_turret/portable_turret.dm.rej | 14 ++++++++++++++ code/modules/power/apc.dm.rej | 14 ++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 code/game/machinery/porta_turret/portable_turret.dm.rej create mode 100644 code/modules/power/apc.dm.rej diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index aab766f9e4..e94fc9f4b0 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -605,6 +605,18 @@ Turf and target are separate in case you want to teleport some distance from a t GLOB.sortedAreas.Add(src) sortTim(GLOB.sortedAreas, /proc/cmp_name_asc) +//Takes: Area type as a text string from a variable. +//Returns: Instance for the area in the world. +/proc/get_area_instance_from_text(areatext) + var/areainstance = null + if(istext(areatext)) + areatext = text2path(areatext) + for(var/V in GLOB.sortedAreas) + var/area/A = V + if(A.type == areatext) + areainstance = V + return areainstance + //Takes: Area type as text string or as typepath OR an instance of the area. //Returns: A list of all areas of that type in the world. /proc/get_areas(areatype, subtypes=TRUE) diff --git a/code/game/machinery/porta_turret/portable_turret.dm.rej b/code/game/machinery/porta_turret/portable_turret.dm.rej new file mode 100644 index 0000000000..c91133b09c --- /dev/null +++ b/code/game/machinery/porta_turret/portable_turret.dm.rej @@ -0,0 +1,14 @@ +diff a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm (rejected hunks) +@@ -669,11 +669,7 @@ + return + + if(control_area) +- control_area = text2path(control_area) //resolves the string to path, then filters out instances generated by subtypes of the path in sortedAreas +- for(var/V in GLOB.sortedAreas) +- var/area/B = V +- if(B.type == control_area) +- control_area = V ++ control_area = get_area_instance_from_text(control_area) + if(control_area == null) + control_area = get_area(src) + stack_trace("Bad control_area path for [src], [src.control_area]") diff --git a/code/modules/power/apc.dm.rej b/code/modules/power/apc.dm.rej new file mode 100644 index 0000000000..0164f12908 --- /dev/null +++ b/code/modules/power/apc.dm.rej @@ -0,0 +1,14 @@ +diff a/code/modules/power/apc.dm b/code/modules/power/apc.dm (rejected hunks) +@@ -178,11 +178,7 @@ + + //if area isn't specified use current + if(areastring) +- areastring = text2path(areastring) //resolves the string to path, then filters out instances generated by subtypes of the path in sortedAreas +- for(var/V in GLOB.sortedAreas) +- var/area/B = V +- if(B.type == areastring) +- src.area = V ++ src.area = get_area_instance_from_text(areastring) + if(!src.area) + src.area = A + stack_trace("Bad areastring path for [src], [src.areastring]") From 630a4a7bc72e641f71a04a37641b5d2a2e952ca7 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Fri, 11 Aug 2017 13:05:12 -0700 Subject: [PATCH 018/181] parsing from file work, still working on mobloading. --- code/citadel/custom_loadout/load_to_mob.dm | 21 +--- code/citadel/custom_loadout/read_from_file.dm | 115 +++++++++--------- 2 files changed, 61 insertions(+), 75 deletions(-) diff --git a/code/citadel/custom_loadout/load_to_mob.dm b/code/citadel/custom_loadout/load_to_mob.dm index 9e8bddd677..65eeea3093 100644 --- a/code/citadel/custom_loadout/load_to_mob.dm +++ b/code/citadel/custom_loadout/load_to_mob.dm @@ -8,35 +8,20 @@ #define LOADING_TO_HUMAN 1 /proc/handle_roundstart_items(mob/living/M) - world << "handle_roundstart_items([M])" if(!istype(M) || !M.ckey || !M.mind) - world << "handle_roundstart_items: [M] has either no ckey or no mind!" - if(!M.mind) - world << "[M] has no mind!" return FALSE - var/list/items = parse_custom_items_by_key_and_job(M.ckey, M.mind.assigned_role) - if(M.mind.special_role) - var/list/items_special = parse_custom_items_by_key_and_job(M.ckey, M.mind.special_role) //And this way you can have snowflake antags! - for(var/thing in items_special) - if(!items[thing]) - items[thing] = items_special[thing] //don't have it, make it have it! - else - items[thing] += items_special[thing] //More~ - if(isnull(items)) - world << "handle_roundstart_items: itemlist null." - return FALSE - return load_itemlist_to_mob(M, items, TRUE, TRUE, FALSE) + return load_itemlist_to_mob(M, parse_custom_roundstart_items(M.ckey, M.name, M.mind.assigned_role, M.mind.special_role), TRUE, TRUE, FALSE) //Just incase there's extra mob selections in the future..... /proc/load_itemlist_to_mob(mob/living/L, list/itemlist, drop_on_floor_if_full = TRUE, load_to_all_slots = TRUE, replace_slots = FALSE) - world << "load_itemlist_to_mob([L], [itemlist], [drop_on_floor_if_full], [load_to_all_slots], [replace_slots])" + to_chat(world, "load_itemlist_to_mob([L], [itemlist], [drop_on_floor_if_full], [load_to_all_slots], [replace_slots])") if(!istype(L) || !islist(itemlist)) return FALSE var/loading_mode = DROP_TO_FLOOR var/turf/current_turf = get_turf(L) if(ishuman(L)) loading_mode = LOADING_TO_HUMAN - world << "load_itemlist_to_mob:loading_mode [loading_mode] current_turf [current_turf]" + to_chat(world, "load_itemlist_to_mob:loading_mode [loading_mode] current_turf [current_turf]") switch(loading_mode) if(DROP_TO_FLOOR) for(var/I in itemlist) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index e29fc74128..f5b668da92 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -13,63 +13,64 @@ GLOBAL_LIST(custom_item_list) GLOB.custom_item_list = list() var/list/file_lines = world.file2list(custom_filelist) for(var/line in file_lines) - try //Lazy as fuck. - if(length(line) == 0) //Emptyline, no one cares. - continue - if(copytext(line,1,3) == "//") //Commented line, ignore. - continue - var/ckey_str_sep = findtext(line, "|") //Process our stuff.. - var/char_str_sep = findtext(line, "|", ckey_str_sep+1) - var/job_str_sep = findtext(line, "|", char_str_sep+1) - var/item_str_sep = findtext(line, "|", job_str_sep+1) - var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) - var/char_str = copytext(line, ckey_str_sep+1, char_str_sep) - var/job_str = copytext(line, char_str_sep+1, job_str_sep) - var/item_str = copytext(line, job_str_sep+1, item_str_sep) - if(!ckey_str || !!char_str || !job_str || !item_str || !length(ckey_str) || !length(char_str) || !length(job_str) || !length(item_str)) - throw EXCEPTION("Errored Line") - to_chat(world, "DEBUG: Line process: [line]") - to_chat(world, "DEBUG: [ckey_str_sep], [char_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [char_str], [job_str], [item_str].") - if(!islist(GLOB.custom_item_list[ckey_str])) - GLOB.custom_item_list[ckey_str] = list() //Initialize list for this ckey if it isn't initialized.. - var/list/characters = splittext(char_str, "/") - for(var/character in characters) - if(!islist(GLOB.custom_item_list[ckey_str][character])) - GLOB.custom_item_list[ckey_str][character] = list() - var/list/jobs = splittext(job_str, "/") - world << "DEBUG: Job string processed." - world << "DEBUG: JOBS: [english_list(jobs)]" - for(var/job in jobs) - for(var/character in characters) - if(!islist(GLOB.custom_item_list[ckey_str][character][job])) - GLOB.custom_item_list[ckey_str][character][job] = list() //Initialize item list for this job of this ckey if not already initialized. - var/list/item_strings = splittext(item_str, ";") //Get item strings in format of /path/to/item=amount - for(var/item_string in item_strings) - var/path_str_sep = findtext(item_string, "=") - var/path = copytext(item_string, 1, path_str_sep) //Path to spawn - var/amount = copytext(item_string, path_str_sep+1) //Amount to spawn - world << "DEBUG: Item string [item_string] processed" - amount = text2num(amount) - path = text2path(path) - if(!ispath(path) || !isnum(amount)) - throw EXCEPTION("Errored line") - world << "DEBUG: [path_str_sep], [path], [amount]" - for(var/character in characters) - for(var/job in jobs) - if(!GLOB.custom_item_list[ckey_str][character][job][path]) //Doesn't exist, make it exist! - GLOB.custom_item_list[ckey_str][character][job][path] = amount - else - GLOB.custom_item_list[ckey_str][character][job][path] += amount //Exists, we want more~ - catch //Uh oh. - var/msg = "Error processing line in [custom_filelist]. Line : [line]" - message_admins(msg) - log_game(msg) - stack_trace(msg) + if(length(line) == 0) //Emptyline, no one cares. continue + if(copytext(line,1,3) == "//") //Commented line, ignore. + continue + var/ckey_str_sep = findtext(line, "|") //Process our stuff.. + var/char_str_sep = findtext(line, "|", ckey_str_sep+1) + var/job_str_sep = findtext(line, "|", char_str_sep+1) + var/item_str_sep = findtext(line, "|", job_str_sep+1) + var/ckey_str = ckey(copytext(line, 1, ckey_str_sep)) + var/char_str = copytext(line, ckey_str_sep+1, char_str_sep) + var/job_str = copytext(line, char_str_sep+1, job_str_sep) + var/item_str = copytext(line, job_str_sep+1, item_str_sep) + if(!ckey_str || !char_str || !job_str || !item_str || !length(ckey_str) || !length(char_str) || !length(job_str) || !length(item_str)) + log_admin("Errored custom_items_whitelist line: [line] - Component/separator missing!") + to_chat(world, "DEBUG: Line process: [line]") + to_chat(world, "DEBUG: [ckey_str_sep], [char_str_sep], [job_str_sep], [item_str_sep], [ckey_str], [char_str], [job_str], [item_str].") + if(!islist(GLOB.custom_item_list[ckey_str])) + GLOB.custom_item_list[ckey_str] = list() //Initialize list for this ckey if it isn't initialized.. + var/list/characters = splittext(char_str, "/") + for(var/character in characters) + if(!islist(GLOB.custom_item_list[ckey_str][character])) + GLOB.custom_item_list[ckey_str][character] = list() + var/list/jobs = splittext(job_str, "/") + world << "DEBUG: Job string processed." + world << "DEBUG: JOBS: [english_list(jobs)]" + for(var/job in jobs) + for(var/character in characters) + if(!islist(GLOB.custom_item_list[ckey_str][character][job])) + GLOB.custom_item_list[ckey_str][character][job] = list() //Initialize item list for this job of this ckey if not already initialized. + var/list/item_strings = splittext(item_str, ";") //Get item strings in format of /path/to/item=amount + for(var/item_string in item_strings) + var/path_str_sep = findtext(item_string, "=") + var/path = copytext(item_string, 1, path_str_sep) //Path to spawn + var/amount = copytext(item_string, path_str_sep+1) //Amount to spawn + world << "DEBUG: Item string [item_string] processed" + amount = text2num(amount) + path = text2path(path) + if(!ispath(path) || !isnum(amount)) + log_admin("Errored custom_items_whitelist line: [line] - Path/number for item missing or invalid.") + world << "DEBUG: [path_str_sep], [path], [amount]" + for(var/character in characters) + for(var/job in jobs) + if(!GLOB.custom_item_list[ckey_str][character][job][path]) //Doesn't exist, make it exist! + GLOB.custom_item_list[ckey_str][character][job][path] = amount + else + GLOB.custom_item_list[ckey_str][character][job][path] += amount //Exists, we want more~ return GLOB.custom_item_list -/proc/parse_custom_roundstart_items(ckey, char_name = "ANY", job_name = "ANY") - - -/proc/debug_roundstart_items() - reload_custom_roundstart_items_list() +/proc/parse_custom_roundstart_items(ckey, char_name = "ANY", job_name = "ANY", special_role) + var/list/ret = list() + if(GLOB.custom_item_list[ckey]) + for(var/char in GLOB.custom_item_list[ckey]) + if((char_name == char) || (char_name == "ANY") || (char == "ANY")) + for(var/job in GLOB.custom_item_list[ckey][char]) + if((job_name == job) || (job == "ANY") || (job_name == "ANY") || (special_role && (job == special_role))) + for(var/item_path in GLOB.custom_item_list[ckey][char][job]) + if(ret[item_path]) + ret[item_path] += GLOB.custom_item_list[ckey][char][job][item_path] + else + ret[item_path] = GLOB.custom_item_list[ckey][char][job][item_path] + return ret From 29b867ad0ebf4b650994132dbf7dba0bbf2ee92b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:42:52 -0500 Subject: [PATCH 019/181] Update portable_turret.dm --- code/game/machinery/porta_turret/portable_turret.dm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 038f0e0eba..f88578bbf9 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -667,14 +667,13 @@ ..() if(!mapload) return - if(control_area && istext(control_area)) - for(var/V in GLOB.sortedAreas) - var/area/A = V - if(A.name == control_area) - control_area = A - break - if(!control_area) + if(control_area) + control_area = get_area_instance_from_text(control_area) + if(control_area == null) + control_area = get_area(src) + stack_trace("Bad control_area path for [src], [src.control_area]") + else if(!control_area) control_area = get_area(src) for(var/obj/machinery/porta_turret/T in control_area) From 78ad83ddec537aa6004e98f06adfd7c6180c0ee0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Aug 2017 18:44:51 -0500 Subject: [PATCH 020/181] Update apc.dm --- code/modules/power/apc.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index e36c639eb9..da09564bd3 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -177,15 +177,18 @@ var/area/A = src.loc.loc //if area isn't specified use current - if(isarea(A) && src.areastring == null) + if(areastring) + src.area = get_area_instance_from_text(areastring) + if(!src.area) + src.area = A + stack_trace("Bad areastring path for [src], [src.areastring]") + else if(isarea(A) && src.areastring == null) src.area = A - else - src.area = get_area_by_name(areastring) update_icon() make_terminal() - addtimer(CALLBACK(src, .proc/update), 5) +addtimer(CALLBACK(src, .proc/update), 5) /obj/machinery/power/apc/examine(mob/user) ..() From 4c55e2204a61df4b3597b83c20bfd25c5b36d023 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 16 Aug 2017 17:47:08 -0500 Subject: [PATCH 021/181] Fixes weaponcrafting repath --- code/_globalvars/lists/maintenance_loot.dm.rej | 10 ++++++++++ .../items/stacks/sheets/sheet_types.dm.rej | 10 ++++++++++ code/modules/crafting/guncrafting.dm.rej | 17 +++++++++++++++++ code/modules/crafting/recipes.dm.rej | 13 +++++++++++++ .../research/designs/autolathe_designs.dm.rej | 10 ++++++++++ 5 files changed, 60 insertions(+) create mode 100644 code/_globalvars/lists/maintenance_loot.dm.rej create mode 100644 code/game/objects/items/stacks/sheets/sheet_types.dm.rej create mode 100644 code/modules/crafting/guncrafting.dm.rej create mode 100644 code/modules/crafting/recipes.dm.rej create mode 100644 code/modules/research/designs/autolathe_designs.dm.rej diff --git a/code/_globalvars/lists/maintenance_loot.dm.rej b/code/_globalvars/lists/maintenance_loot.dm.rej new file mode 100644 index 0000000000..5d0a85aa8e --- /dev/null +++ b/code/_globalvars/lists/maintenance_loot.dm.rej @@ -0,0 +1,10 @@ +diff a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm (rejected hunks) +@@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( + /obj/item/wirecutters = 1, + /obj/item/wrench = 4, + /obj/item/relic = 3, +- /obj/itemcrafting/receiver = 2, ++ /obj/item/weaponcrafting/receiver = 2, + /obj/item/clothing/head/cone = 2, + /obj/item/grenade/smokebomb = 2, + /obj/item/device/geiger_counter = 3, diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm.rej b/code/game/objects/items/stacks/sheets/sheet_types.dm.rej new file mode 100644 index 0000000000..42a73bb09c --- /dev/null +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm (rejected hunks) +@@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ + new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ + new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ + new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ +- new/datum/stack_recipe("rifle stock", /obj/itemcrafting/stock, 10, time = 40), \ ++ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ + new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ + new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/modules/crafting/guncrafting.dm.rej b/code/modules/crafting/guncrafting.dm.rej new file mode 100644 index 0000000000..46afc0167b --- /dev/null +++ b/code/modules/crafting/guncrafting.dm.rej @@ -0,0 +1,17 @@ +diff a/code/modules/crafting/guncrafting.dm b/code/modules/crafting/guncrafting.dm (rejected hunks) +@@ -2,13 +2,13 @@ + + // PARTS // + +-/obj/itemcrafting/receiver ++/obj/item/weaponcrafting/receiver + name = "modular receiver" + desc = "A prototype modular receiver and trigger assembly for a firearm." + icon = 'icons/obj/improvised.dmi' + icon_state = "receiver" + +-/obj/itemcrafting/stock ++/obj/item/weaponcrafting/stock + name = "rifle stock" + desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood." + icon = 'icons/obj/improvised.dmi' diff --git a/code/modules/crafting/recipes.dm.rej b/code/modules/crafting/recipes.dm.rej new file mode 100644 index 0000000000..71b26fbfc8 --- /dev/null +++ b/code/modules/crafting/recipes.dm.rej @@ -0,0 +1,13 @@ +diff a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm (rejected hunks) +@@ -295,9 +295,9 @@ + /datum/crafting_recipe/ishotgun + name = "Improvised Shotgun" + result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised +- reqs = list(/obj/itemcrafting/receiver = 1, ++ reqs = list(/obj/item/weaponcrafting/receiver = 1, + /obj/item/pipe = 1, +- /obj/itemcrafting/stock = 1, ++ /obj/item/weaponcrafting/stock = 1, + /obj/item/stack/packageWrap = 5) + tools = list(/obj/item/screwdriver) + time = 100 diff --git a/code/modules/research/designs/autolathe_designs.dm.rej b/code/modules/research/designs/autolathe_designs.dm.rej new file mode 100644 index 0000000000..dafe48d4c9 --- /dev/null +++ b/code/modules/research/designs/autolathe_designs.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm (rejected hunks) +@@ -629,7 +629,7 @@ + id = "reciever" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000) +- build_path = /obj/itemcrafting/receiver ++ build_path = /obj/item/weaponcrafting/receiver + category = list("hacked", "Security") + + /datum/design/shotgun_slug From acc75bfb5ff37bc595f5df79e4bbd9b369fc516e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 16 Aug 2017 18:50:57 -0500 Subject: [PATCH 022/181] Removes admin type shortcut for /weapon --- code/modules/admin/verbs/debug.dm.rej | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 code/modules/admin/verbs/debug.dm.rej diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej new file mode 100644 index 0000000000..d212d37447 --- /dev/null +++ b/code/modules/admin/verbs/debug.dm.rej @@ -0,0 +1,9 @@ +diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) +@@ -352,7 +352,6 @@ GLOBAL_PROTECT(AdminProcCallCount) + /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first + /obj/item/reagent_containers/food = "FOOD", + /obj/item/reagent_containers = "REAGENT_CONTAINERS", +- /obj/item = "WEAPON", + /obj/machinery/atmospherics = "ATMOS_MECH", + /obj/machinery/portable_atmospherics = "PORT_ATMOS", + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", From e826e16739727ec44add91158c708078e48c095e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 17 Aug 2017 08:31:55 -0500 Subject: [PATCH 023/181] Removes redundant check --- code/modules/mob/living/living_defense.dm.rej | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 code/modules/mob/living/living_defense.dm.rej diff --git a/code/modules/mob/living/living_defense.dm.rej b/code/modules/mob/living/living_defense.dm.rej new file mode 100644 index 0000000000..1793cdd6f4 --- /dev/null +++ b/code/modules/mob/living/living_defense.dm.rej @@ -0,0 +1,14 @@ +diff a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm (rejected hunks) +@@ -72,9 +72,9 @@ + if (I.throwforce > 0) //If the weapon's throwforce is greater than zero... + if (I.throwhitsound) //...and throwhitsound is defined... + playsound(loc, I.throwhitsound, volume, 1, -1) //...play the weapon's throwhitsound. +- else if(W.hitsound) //Otherwise, if the weapon's hitsound is defined... +- playsound(loc, Ihitsound, volume, 1, -1) //...play the weapon's hitsound. +- else if(!W.throwhitsound) //Otherwise, if throwhitsound isn't defined... ++ else if(I.hitsound) //Otherwise, if the weapon's hitsound is defined... ++ playsound(loc, I.hitsound, volume, 1, -1) //...play the weapon's hitsound. ++ else if(!I.throwhitsound) //Otherwise, if throwhitsound isn't defined... + playsound(loc, 'sound/weapons/genhit.ogg',volume, 1, -1) //...play genhit.ogg. + + else if(!I.throwhitsound && I.throwforce > 0) //Otherwise, if the item doesn't have a throwhitsound and has a throwforce greater than zero... From fe567fabde8ca2bb8257d99d112a615457674a87 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 17 Aug 2017 17:21:44 -0500 Subject: [PATCH 024/181] Adds RCL inhands --- code/game/objects/items/weapons/RCL.dm | 34 +++++++++--------- code/game/turfs/turf.dm | 12 +++---- .../mob/inhands/equipment/tools_lefthand.dmi | Bin 4172 -> 4698 bytes .../mob/inhands/equipment/tools_righthand.dmi | Bin 4055 -> 4578 bytes tgstation.dme | 0 5 files changed, 24 insertions(+), 22 deletions(-) mode change 100644 => 100755 tgstation.dme diff --git a/code/game/objects/items/weapons/RCL.dm b/code/game/objects/items/weapons/RCL.dm index 495af046af..176b9d19f9 100644 --- a/code/game/objects/items/weapons/RCL.dm +++ b/code/game/objects/items/weapons/RCL.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/twohanded/rcl +/obj/item/twohanded/rcl name = "rapid cable layer" desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables. Do not use without insulation!" icon = 'icons/obj/tools.dmi' @@ -19,11 +19,13 @@ var/list/colors = list("red", "yellow", "green", "blue", "pink", "orange", "cyan", "white") var/current_color_index = 1 var/ghetto = FALSE + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' -/obj/item/weapon/twohanded/rcl/attackby(obj/item/W, mob/user) +/obj/item/twohanded/rcl/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W - + if(!loaded) if(!user.transferItemToLoc(W, src)) to_chat(user, "[src] is stuck to your hand!") @@ -41,7 +43,7 @@ return update_icon() to_chat(user, "You add the cables to the [src]. It now contains [loaded.amount].") - else if(istype(W, /obj/item/weapon/screwdriver)) + else if(istype(W, /obj/item/screwdriver)) if(!loaded) return if(ghetto && prob(10)) //Is it a ghetto RCL? If so, give it a 10% chance to fall apart @@ -75,18 +77,18 @@ else ..() -/obj/item/weapon/twohanded/rcl/examine(mob/user) +/obj/item/twohanded/rcl/examine(mob/user) ..() if(loaded) to_chat(user, "It contains [loaded.amount]/[max_amount] cables.") -/obj/item/weapon/twohanded/rcl/Destroy() +/obj/item/twohanded/rcl/Destroy() QDEL_NULL(loaded) last = null active = FALSE return ..() -/obj/item/weapon/twohanded/rcl/update_icon() +/obj/item/twohanded/rcl/update_icon() if(!loaded) icon_state = "rcl-0" item_state = "rcl-0" @@ -105,7 +107,7 @@ icon_state = "rcl-0" item_state = "rcl-0" -/obj/item/weapon/twohanded/rcl/proc/is_empty(mob/user, loud = 1) +/obj/item/twohanded/rcl/proc/is_empty(mob/user, loud = 1) update_icon() if(!loaded || !loaded.amount) if(loud) @@ -118,12 +120,12 @@ return TRUE return FALSE -/obj/item/weapon/twohanded/rcl/dropped(mob/wearer) +/obj/item/twohanded/rcl/dropped(mob/wearer) ..() active = FALSE last = null -/obj/item/weapon/twohanded/rcl/attack_self(mob/user) +/obj/item/twohanded/rcl/attack_self(mob/user) ..() active = wielded if(!active) @@ -134,11 +136,11 @@ last = C break -/obj/item/weapon/twohanded/rcl/on_mob_move(direct, mob/user) +/obj/item/twohanded/rcl/on_mob_move(direct, mob/user) if(active) trigger(user) -/obj/item/weapon/twohanded/rcl/proc/trigger(mob/user) +/obj/item/twohanded/rcl/proc/trigger(mob/user) if(!isturf(user.loc)) return if(is_empty(user, 0)) @@ -170,14 +172,14 @@ is_empty(user) //If we've run out, display message -/obj/item/weapon/twohanded/rcl/pre_loaded/Initialize () //Comes preloaded with cable, for testing stuff +/obj/item/twohanded/rcl/pre_loaded/Initialize () //Comes preloaded with cable, for testing stuff . = ..() loaded = new() loaded.max_amount = max_amount loaded.amount = max_amount update_icon() -/obj/item/weapon/twohanded/rcl/ui_action_click(mob/user, action) +/obj/item/twohanded/rcl/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/rcl)) current_color_index++; if (current_color_index > colors.len) @@ -185,13 +187,13 @@ var/cwname = colors[current_color_index] to_chat(user, "Color changed to [cwname]!") -/obj/item/weapon/twohanded/rcl/ghetto +/obj/item/twohanded/rcl/ghetto actions_types = list() max_amount = 30 name = "makeshift rapid cable layer" ghetto = TRUE -/obj/item/weapon/twohanded/rcl/ghetto/update_icon() +/obj/item/twohanded/rcl/ghetto/update_icon() if(!loaded) icon_state = "rclg-0" item_state = "rclg-0" diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 4342d12714..a106fdee3d 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -85,7 +85,7 @@ /turf/attack_hand(mob/user) user.Move_Pulled(src) -/turf/proc/handleRCL(obj/item/weapon/twohanded/rcl/C, mob/user) +/turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user) if(C.loaded) for(var/obj/structure/cable/LC in src) if(!LC.d1 || !LC.d2) @@ -104,7 +104,7 @@ coil.place_turf(src, user) return TRUE - else if(istype(C, /obj/item/weapon/twohanded/rcl)) + else if(istype(C, /obj/item/twohanded/rcl)) handleRCL(C, user) return FALSE @@ -226,7 +226,7 @@ var/old_affecting_lights = affecting_lights var/old_lighting_object = lighting_object var/old_corners = corners - + var/old_exl = explosion_level var/old_exi = explosion_id var/old_bp = blueprint_data @@ -250,7 +250,7 @@ W.AfterChange(ignore_air) W.blueprint_data = old_bp - + if(SSlighting.initialized) recalc_atom_opacity() lighting_object = old_lighting_object @@ -338,7 +338,7 @@ /turf/proc/Bless() flags |= NOJAUNT -/turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) +/turf/storage_contents_dump_act(obj/item/storage/src_object, mob/user) if(src_object.contents.len) to_chat(usr, "You start dumping out the contents...") if(!do_after(usr,20,target=src_object)) @@ -346,7 +346,7 @@ var/list/things = src_object.contents.Copy() var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /obj/item/weapon/storage.proc/mass_remove_from_storage, src, things, progress))) + while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /obj/item/storage.proc/mass_remove_from_storage, src, things, progress))) sleep(1) qdel(progress) diff --git a/icons/mob/inhands/equipment/tools_lefthand.dmi b/icons/mob/inhands/equipment/tools_lefthand.dmi index c694968cd19dffa60c23fa7cc2d38715035b3c3a..4f256eea92369d1a871f3960673b8b6721f4b4d1 100644 GIT binary patch delta 4185 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 Y=7;nsn92R}#~<-cliS8+Mh`>(3n;l8UH||9 delta 3546 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 UzDw??|Mv}ZQ!A75lg{`410!nO761SM diff --git a/tgstation.dme b/tgstation.dme old mode 100644 new mode 100755 From 39ea9fdceeaa3bf041c78947302590e425eebe66 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 17 Aug 2017 20:19:55 -0500 Subject: [PATCH 025/181] Fix spelling of "cannabis" --- code/modules/hydroponics/grown/cannabis.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/modules/hydroponics/grown/cannabis.dm.rej diff --git a/code/modules/hydroponics/grown/cannabis.dm.rej b/code/modules/hydroponics/grown/cannabis.dm.rej new file mode 100644 index 0000000000..3778386128 --- /dev/null +++ b/code/modules/hydroponics/grown/cannabis.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm (rejected hunks) +@@ -113,7 +113,7 @@ + + /obj/item/reagent_containers/food/snacks/grown/cannabis/ultimate + seed = /obj/item/seeds/cannabis/ultimate +- name = "omega cannibas leaf" ++ name = "omega cannabis leaf" + desc = "You feel dizzy looking at it. What the fuck?" + icon_state = "ocannabis" + volume = 420 From 196c9d05974e056d822d66418aa7a408646dd5e6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 20 Aug 2017 06:01:24 -0500 Subject: [PATCH 026/181] Adds tracking amount of time spent playing departments 2: The fall of the Assistants. --- SQL/database_changelog.txt.rej | 15 +- SQL/tgstation_schema.sql | 16 ++ SQL/tgstation_schema.sql.rej | 9 + SQL/tgstation_schema_prefixed.sql | 16 ++ SQL/tgstation_schema_prefixed.sql.rej | 9 + code/__DEFINES/preferences.dm | 20 +- code/_compile_options.dm | 2 +- code/controllers/configuration.dm | 7 + code/controllers/configuration.dm.rej | 24 +++ code/controllers/subsystem/blackbox.dm | 2 +- code/controllers/subsystem/blackbox.dm.rej | 10 + code/controllers/subsystem/job.dm | 16 ++ .../controllers/subsystem/server_maint.dm.rej | 30 +++ code/datums/mind.dm | 3 +- code/game/gamemodes/antag_spawner.dm.rej | 9 + code/modules/admin/admin.dm | 4 +- code/modules/admin/admin_verbs.dm | 1 + code/modules/admin/admin_verbs.dm.rej | 10 + code/modules/admin/topic.dm | 18 ++ code/modules/admin/verbs/randomverbs.dm.rej | 25 +++ code/modules/client/preferences.dm | 5 + code/modules/client/preferences.dm.rej | 14 ++ code/modules/jobs/job_exp.dm | 194 ++++++++++++++++++ code/modules/jobs/job_exp.dm.rej | 108 ++++++++++ code/modules/jobs/job_types/captain.dm | 5 + code/modules/jobs/job_types/engineering.dm | 7 + code/modules/jobs/job_types/job.dm | 5 + code/modules/jobs/job_types/medical.dm | 9 + code/modules/jobs/job_types/science.dm | 7 + code/modules/jobs/job_types/security.dm | 9 + code/modules/jobs/job_types/silicon.dm | 4 + code/modules/jobs/jobs.dm | 20 ++ code/modules/mob/dead/new_player/login.dm | 3 + code/modules/mob/dead/new_player/login.dm.rej | 9 + .../modules/mob/dead/new_player/new_player.dm | 2 + config/config.txt.rej | 25 +++ tgstation.dme | 1 + 37 files changed, 658 insertions(+), 15 deletions(-) create mode 100644 SQL/tgstation_schema.sql.rej create mode 100644 SQL/tgstation_schema_prefixed.sql.rej create mode 100644 code/controllers/configuration.dm.rej create mode 100644 code/controllers/subsystem/blackbox.dm.rej create mode 100644 code/controllers/subsystem/server_maint.dm.rej create mode 100644 code/game/gamemodes/antag_spawner.dm.rej create mode 100644 code/modules/admin/admin_verbs.dm.rej create mode 100644 code/modules/admin/verbs/randomverbs.dm.rej create mode 100644 code/modules/client/preferences.dm.rej create mode 100644 code/modules/jobs/job_exp.dm create mode 100644 code/modules/jobs/job_exp.dm.rej create mode 100644 code/modules/mob/dead/new_player/login.dm.rej create mode 100644 config/config.txt.rej diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej index 1b201ec4aa..f65c192173 100644 --- a/SQL/database_changelog.txt.rej +++ b/SQL/database_changelog.txt.rej @@ -1,15 +1,10 @@ diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) -@@ -1,10 +1,10 @@ - Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. +@@ -5,7 +5,7 @@ Also, added flags column to the player table. --The latest database version is 3.1; The query to update the schema revision table is: -+The latest database version is 3.0; The query to update the schema revision table is: + CREATE TABLE `role_time` ( `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT NULL , `minutes` INT UNSIGNED NOT NULL, PRIMARY KEY (`ckey`, `job`) ) ENGINE = InnoDB; --UPDATE `schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); - or --UPDATE `SS13_schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); +-ALTER TABLE `player` ADD `flags` INT NOT NULL AFTER `accountjoindate`; ++ALTER TABLE `player` ADD `flags` INT NOT NULL default '0' AFTER `accountjoindate`; - ---------------------------------------------------- + UPDATE `schema_revision` SET minor = 1; diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index 4c76e1f275..4c19d0bd20 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -257,6 +257,21 @@ CREATE TABLE `messages` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `role_time` +-- + +DROP TABLE IF EXISTS `role_time`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; + +CREATE TABLE `role_time` +( `ckey` VARCHAR(32) NOT NULL , + `job` VARCHAR(32) NOT NULL , + `minutes` INT UNSIGNED NOT NULL, + PRIMARY KEY (`ckey`, `job`) + ) ENGINE = InnoDB; + -- -- Table structure for table `player` -- @@ -272,6 +287,7 @@ CREATE TABLE `player` ( `computerid` varchar(32) NOT NULL, `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', `accountjoindate` DATE DEFAULT NULL, + `flags` smallint(5) unsigned DEFAULT '0' NOT NULL, PRIMARY KEY (`ckey`), KEY `idx_player_cid_ckey` (`computerid`,`ckey`), KEY `idx_player_ip_ckey` (`ip`,`ckey`) diff --git a/SQL/tgstation_schema.sql.rej b/SQL/tgstation_schema.sql.rej new file mode 100644 index 0000000000..51068bed4e --- /dev/null +++ b/SQL/tgstation_schema.sql.rej @@ -0,0 +1,9 @@ +diff a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql (rejected hunks) +@@ -268,7 +283,6 @@ CREATE TABLE `player` ( + `ip` int(10) unsigned NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', +- `exp` mediumtext, + PRIMARY KEY (`id`), + UNIQUE KEY `ckey` (`ckey`), + KEY `idx_player_cid_ckey` (`computerid`,`ckey`), diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index f717bf96ad..094485df59 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -253,6 +253,21 @@ CREATE TABLE `SS13_messages` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `SS13_role_time` +-- + +DROP TABLE IF EXISTS `SS13_role_time`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; + +CREATE TABLE `SS13_role_time` +( `ckey` VARCHAR(32) NOT NULL , + `job` VARCHAR(32) NOT NULL , + `minutes` INT UNSIGNED NOT NULL, + PRIMARY KEY (`ckey`, `job`) + ) ENGINE = InnoDB; + -- -- Table structure for table `SS13_player` -- @@ -268,6 +283,7 @@ CREATE TABLE `SS13_player` ( `computerid` varchar(32) NOT NULL, `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', `accountjoindate` DATE DEFAULT NULL, + `flags` smallint(5) unsigned DEFAULT '0' NOT NULL, PRIMARY KEY (`ckey`), KEY `idx_player_cid_ckey` (`computerid`,`ckey`), KEY `idx_player_ip_ckey` (`ip`,`ckey`) diff --git a/SQL/tgstation_schema_prefixed.sql.rej b/SQL/tgstation_schema_prefixed.sql.rej new file mode 100644 index 0000000000..dd4bc6a7f5 --- /dev/null +++ b/SQL/tgstation_schema_prefixed.sql.rej @@ -0,0 +1,9 @@ +diff a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql (rejected hunks) +@@ -268,7 +297,6 @@ CREATE TABLE `SS13_player` ( + `ip` int(10) unsigned NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', +- `exp` mediumtext, + PRIMARY KEY (`id`), + UNIQUE KEY `ckey` (`ckey`), + KEY `idx_player_cid_ckey` (`computerid`,`ckey`), diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index f26b750492..b6133df287 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -47,4 +47,22 @@ #define SEC_DEPT_ENGINEERING "Engineering" #define SEC_DEPT_MEDICAL "Medical" #define SEC_DEPT_SCIENCE "Science" -#define SEC_DEPT_SUPPLY "Supply" \ No newline at end of file +#define SEC_DEPT_SUPPLY "Supply" + +// Playtime tracking system, see jobs_exp.dm +#define EXP_TYPE_LIVING "Living" +#define EXP_TYPE_CREW "Crew" +#define EXP_TYPE_COMMAND "Command" +#define EXP_TYPE_ENGINEERING "Engineering" +#define EXP_TYPE_MEDICAL "Medical" +#define EXP_TYPE_SCIENCE "Science" +#define EXP_TYPE_SUPPLY "Supply" +#define EXP_TYPE_SECURITY "Security" +#define EXP_TYPE_SILICON "Silicon" +#define EXP_TYPE_SERVICE "Service" +#define EXP_TYPE_ANTAG "Antag" +#define EXP_TYPE_SPECIAL "Special" +#define EXP_TYPE_GHOST "Ghost" + +//Flags in the players table in the db +#define DB_FLAG_EXEMPT 1 \ No newline at end of file diff --git a/code/_compile_options.dm b/code/_compile_options.dm index a669f1b4f5..fe66b9bf69 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -72,4 +72,4 @@ //Update this whenever the db schema changes //make sure you add an update to the schema_version stable in the db changelog #define DB_MAJOR_VERSION 3 -#define DB_MINOR_VERSION 0 +#define DB_MINOR_VERSION 1 diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index abf2c1f937..daf0537547 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -103,6 +103,13 @@ var/use_account_age_for_jobs = 0 //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt + var/use_exp_tracking = FALSE + var/use_exp_restrictions_heads = FALSE + var/use_exp_restrictions_heads_hours = 0 + var/use_exp_restrictions_heads_department = FALSE + var/use_exp_restrictions_other = FALSE + var/use_exp_restrictions_admin_bypass = FALSE + //Population cap vars var/soft_popcap = 0 var/hard_popcap = 0 diff --git a/code/controllers/configuration.dm.rej b/code/controllers/configuration.dm.rej new file mode 100644 index 0000000000..5d5c2c5055 --- /dev/null +++ b/code/controllers/configuration.dm.rej @@ -0,0 +1,24 @@ +diff a/code/controllers/configuration.dm b/code/controllers/configuration.dm (rejected hunks) +@@ -337,17 +337,17 @@ + if("use_account_age_for_jobs") + use_account_age_for_jobs = 1 + if("use_exp_tracking") +- use_exp_tracking = 1 ++ use_exp_tracking = TRUE + if("use_exp_restrictions_heads") +- use_exp_restrictions_heads = 1 ++ use_exp_restrictions_heads = TRUE + if("use_exp_restrictions_heads_hours") + use_exp_restrictions_heads_hours = text2num(value) + if("use_exp_restrictions_heads_department") +- use_exp_restrictions_heads_department = 1 ++ use_exp_restrictions_heads_department = TRUE + if("use_exp_restrictions_other") +- use_exp_restrictions_other = 1 ++ use_exp_restrictions_other = TRUE + if("use_exp_restrictions_admin_bypass") +- use_exp_restrictions_admin_bypass = 1 ++ use_exp_restrictions_admin_bypass = TRUE + if("lobby_countdown") + lobby_countdown = text2num(value) + if("round_end_countdown") diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 3344afcaaa..5f53f870dc 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -1,7 +1,7 @@ SUBSYSTEM_DEF(blackbox) name = "Blackbox" wait = 6000 - flags = SS_NO_TICK_CHECK | SS_NO_INIT + flags = SS_NO_TICK_CHECK runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME init_order = INIT_ORDER_BLACKBOX diff --git a/code/controllers/subsystem/blackbox.dm.rej b/code/controllers/subsystem/blackbox.dm.rej new file mode 100644 index 0000000000..5bd713172b --- /dev/null +++ b/code/controllers/subsystem/blackbox.dm.rej @@ -0,0 +1,10 @@ +diff a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm (rejected hunks) +@@ -40,7 +40,7 @@ SUBSYSTEM_DEF(blackbox) + + if(config.use_exp_tracking) + if((triggertime < 0) || (world.time > (triggertime +3000))) //subsystem fires once at roundstart then once every 10 minutes. a 5 min check skips the first fire. The <0 is midnight rollover check +- SSblackbox.update_exp(10,FALSE) ++ update_exp(10,FALSE) + + + /datum/controller/subsystem/blackbox/Recover() diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index f28373ef22..1be36e5ac7 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -73,6 +73,8 @@ SUBSYSTEM_DEF(job) return 0 if(!job.player_old_enough(player.client)) return 0 + if(job.required_playtime_remaining(player.client)) + return 0 var/position_limit = job.total_positions if(!latejoin) position_limit = job.spawn_positions @@ -95,6 +97,9 @@ SUBSYSTEM_DEF(job) if(!job.player_old_enough(player.client)) Debug("FOC player not old enough, Player: [player]") continue + if(job.required_playtime_remaining(player.client)) + Debug("FOC player not enough xp, Player: [player]") + continue if(flag && (!(flag in player.client.prefs.be_special))) Debug("FOC flag failed, Player: [player], Flag: [flag], ") continue @@ -130,6 +135,10 @@ SUBSYSTEM_DEF(job) Debug("GRJ player not old enough, Player: [player]") continue + if(job.required_playtime_remaining(player.client)) + Debug("GRJ player not enough xp, Player: [player]") + continue + if(player.mind && job.title in player.mind.restricted_roles) Debug("GRJ incompatible with antagonist role, Player: [player], Job: [job.title]") continue @@ -300,6 +309,10 @@ SUBSYSTEM_DEF(job) Debug("DO player not old enough, Player: [player], Job:[job.title]") continue + if(job.required_playtime_remaining(player.client)) + Debug("DO player not enough xp, Player: [player], Job:[job.title]") + continue + if(player.mind && job.title in player.mind.restricted_roles) Debug("DO incompatible with antagonist role, Player: [player], Job:[job.title]") continue @@ -463,6 +476,9 @@ SUBSYSTEM_DEF(job) if(!job.player_old_enough(player.client)) level6++ continue + if(job.required_playtime_remaining(player.client)) + level6++ + continue if(player.client.prefs.GetJobDepartment(job, 1) & job.flag) level1++ else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag) diff --git a/code/controllers/subsystem/server_maint.dm.rej b/code/controllers/subsystem/server_maint.dm.rej new file mode 100644 index 0000000000..486375b505 --- /dev/null +++ b/code/controllers/subsystem/server_maint.dm.rej @@ -0,0 +1,30 @@ +diff a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm (rejected hunks) +@@ -6,18 +6,16 @@ SUBSYSTEM_DEF(server_maint) + flags = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY + priority = 10 + var/list/currentrun +- var/triggertime = null + + /datum/controller/subsystem/server_maint/Initialize(timeofday) + if (config.hub) + world.visibility = 1 +- triggertime = REALTIMEOFDAY + ..() + + /datum/controller/subsystem/server_maint/fire(resumed = FALSE) + if(!resumed) + src.currentrun = GLOB.clients.Copy() +- ++ + var/list/currentrun = src.currentrun + var/round_started = SSticker.HasRoundStarted() + +@@ -39,8 +37,3 @@ SUBSYSTEM_DEF(server_maint) + return + + #undef PING_BUFFER_TIME +- if(config.sql_enabled) +- sql_poll_population() +- if(config.use_exp_tracking) +- if(REALTIMEOFDAY > (triggertime +3000)) //server maint fires once at roundstart then once every 10 minutes. a 5 min check skips the first fire +- update_exp(10,0) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index a31aab8607..7cc4558882 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1468,6 +1468,7 @@ if(!(src in SSticker.mode.syndicates)) SSticker.mode.syndicates += src SSticker.mode.update_synd_icons_added(src) + assigned_role = "Syndicate" special_role = "Syndicate" SSticker.mode.forge_syndicate_objectives(src) SSticker.mode.greet_syndicate(src) @@ -1715,7 +1716,7 @@ /mob/living/carbon/human/mind_initialize() ..() if(!mind.assigned_role) - mind.assigned_role = "Assistant" //defualt + mind.assigned_role = "Unassigned" //default //XENO /mob/living/carbon/alien/mind_initialize() diff --git a/code/game/gamemodes/antag_spawner.dm.rej b/code/game/gamemodes/antag_spawner.dm.rej new file mode 100644 index 0000000000..ea9a00132a --- /dev/null +++ b/code/game/gamemodes/antag_spawner.dm.rej @@ -0,0 +1,9 @@ +diff a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm (rejected hunks) +@@ -108,6 +108,7 @@ + new_objective.explanation_text = "Protect [usr.real_name], the wizard." + M.mind.objectives += new_objective + SSticker.mode.apprentices += M.mind ++ M.mind.assigned_role = "Apprentice" + M.mind.special_role = "apprentice" + SSticker.mode.update_wiz_icons_added(M.mind) + M << sound('sound/effects/magic.ogg') diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 5943e753a0..e6a1b3d383 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -31,6 +31,8 @@ if(M.client) body += " played by [M.client] " body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" + if(config.use_exp_tracking) + body += "\[" + M.client.get_exp_living() + "\]" if(isnewplayer(M)) body += " Hasn't Entered Game " @@ -442,7 +444,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/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3276a319db..6403c9028f 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -61,6 +61,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, world.AVerbsAdmin()) /client/proc/cmd_admin_local_narrate, /*sends text to all mobs within view of atom*/ /client/proc/cmd_admin_create_centcom_report, /client/proc/cmd_change_command_name, + /client/proc/cmd_admin_check_player_exp, /* shows players by playtime */ /client/proc/toggle_antag_hud, /*toggle display of the admin antag hud*/ /client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/ /client/proc/customiseSNPC, /* Customise any interactive crewmembers in the world */ diff --git a/code/modules/admin/admin_verbs.dm.rej b/code/modules/admin/admin_verbs.dm.rej new file mode 100644 index 0000000000..c2f884d37c --- /dev/null +++ b/code/modules/admin/admin_verbs.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm (rejected hunks) +@@ -663,7 +664,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) + + if(!holder) + return +- ++ + if(has_antag_hud()) + toggle_antag_hud() + diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index ac047429c8..85ae68dabc 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -22,6 +22,24 @@ else if(href_list["stickyban"]) stickyban(href_list["stickyban"],href_list) + else if(href_list["getplaytimewindow"]) + if(!check_rights(R_ADMIN)) + return + var/mob/M = locate(href_list["getplaytimewindow"]) in GLOB.mob_list + if(!M) + to_chat(usr, "ERROR: Mob not found.") + return + cmd_show_exp_panel(M.client) + + else if(href_list["toggleexempt"]) + if(!check_rights(R_ADMIN)) + return + var/client/C = locate(href_list["toggleexempt"]) in GLOB.clients + if(!C) + to_chat(usr, "ERROR: Client not found.") + return + toggle_exempt_status(C) + else if(href_list["makeAntag"]) if (!SSticker.mode) to_chat(usr, "Not until the round starts!") diff --git a/code/modules/admin/verbs/randomverbs.dm.rej b/code/modules/admin/verbs/randomverbs.dm.rej new file mode 100644 index 0000000000..9941251566 --- /dev/null +++ b/code/modules/admin/verbs/randomverbs.dm.rej @@ -0,0 +1,25 @@ +diff a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm (rejected hunks) +@@ -1246,7 +1246,8 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits + to_chat(usr, "ERROR: Client not found.") + return + +- C.set_db_player_flags() ++ if(!C.set_db_player_flags()) ++ to_chat(usr, "ERROR: Unable read player flags from database. Please check logs.") + var/dbflags = C.prefs.db_flags + var/newstate = FALSE + if(dbflags & DB_FLAG_EXEMPT) +@@ -1254,6 +1255,8 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits + else + newstate = TRUE + +- message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]") +- log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]") +- C.update_flag_db(DB_FLAG_EXEMPT, newstate) +\ No newline at end of file ++ if(C.update_flag_db(DB_FLAG_EXEMPT, newstate)) ++ to_chat(usr, "ERROR: Unable to update player flags. Please check logs.") ++ else ++ message_admins("[key_name_admin(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name_admin(C)]") ++ log_admin("[key_name(usr)] has [newstate ? "activated" : "deactivated"] job exp exempt status on [key_name(C)]") +\ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 4c23db3f86..f7b2cb341b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -36,6 +36,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/tgui_lock = TRUE var/windowflashing = TRUE var/toggles = TOGGLES_DEFAULT + var/db_flags var/chat_toggles = TOGGLES_DEFAULT_CHAT var/ghost_form = "ghost" var/ghost_orbit = GHOST_ORBIT_CIRCLE @@ -580,6 +581,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(jobban_isbanned(user, rank)) HTML += "[rank] BANNED" continue + var/required_playtime_remaining = job.required_playtime_remaining(user.client) + if(required_playtime_remaining) + HTML += "[rank] \[ [get_exp_format(required_playtime_remaining)] as [job.get_exp_req_type()] \] " + continue if(!job.player_old_enough(user.client)) var/available_in_days = job.available_in_days(user.client) HTML += "[rank] \[IN [(available_in_days)] DAYS\]" diff --git a/code/modules/client/preferences.dm.rej b/code/modules/client/preferences.dm.rej new file mode 100644 index 0000000000..02e6ad2d76 --- /dev/null +++ b/code/modules/client/preferences.dm.rej @@ -0,0 +1,14 @@ +diff a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm (rejected hunks) +@@ -130,12 +130,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) + menuoptions = list() + return + +-/datum/preferences/vv_edit_var(var_name, var_value) +- var/static/list/banned_edits = list("exp") +- if(var_name in banned_edits) +- return FALSE +- return ..() +- + /datum/preferences/proc/ShowChoices(mob/user) + if(!user || !user.client) + return diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm new file mode 100644 index 0000000000..e65de15279 --- /dev/null +++ b/code/modules/jobs/job_exp.dm @@ -0,0 +1,194 @@ +GLOBAL_LIST_EMPTY(exp_to_update) +GLOBAL_PROTECT(exp_to_update) + + +// Procs +/datum/job/proc/required_playtime_remaining(client/C) + if(!C) + return 0 + if(!config.use_exp_tracking) + return 0 + if(!exp_requirements || !exp_type) + return 0 + if(!job_is_xp_locked(src.title)) + return 0 + if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, FALSE, C.mob)) + return 0 + var/isexempt = C.prefs.db_flags & DB_FLAG_EXEMPT + if(isexempt) + return 0 + var/my_exp = C.calc_exp_type(get_exp_req_type()) + var/job_requirement = get_exp_req_amount() + if(my_exp >= job_requirement) + return 0 + else + return (job_requirement - my_exp) + +/datum/job/proc/get_exp_req_amount() + if(title in GLOB.command_positions) + if(config.use_exp_restrictions_heads_hours) + return config.use_exp_restrictions_heads_hours * 60 + return exp_requirements + +/datum/job/proc/get_exp_req_type() + if(title in GLOB.command_positions) + if(config.use_exp_restrictions_heads_department && exp_type_department) + return exp_type_department + return exp_type + +/proc/job_is_xp_locked(jobtitle) + if(!config.use_exp_restrictions_heads && jobtitle in GLOB.command_positions) + return FALSE + if(!config.use_exp_restrictions_other && !(jobtitle in GLOB.command_positions)) + return FALSE + return TRUE + +/client/proc/calc_exp_type(exptype) + var/list/explist = prefs.exp.Copy() + var/amount = 0 + var/list/typelist = GLOB.exp_jobsmap[exptype] + if(!typelist) + return -1 + for(var/job in typelist["titles"]) + if(job in explist) + amount += explist[job] + return amount + +/client/proc/get_exp_report() + if(!config.use_exp_tracking) + return "Tracking is disabled in the server configuration file." + var/list/play_records = prefs.exp + if(!play_records.len) + set_exp_from_db() + play_records = prefs.exp + if(!play_records.len) + return "[key] has no records." + var/return_text = list() + return_text += "
    " + var/list/exp_data = list() + for(var/category in SSjob.name_occupations) + if(play_records[category]) + exp_data[category] = text2num(play_records[category]) + else + exp_data[category] = 0 + for(var/category in GLOB.exp_specialmap) + if(play_records[category]) + exp_data[category] = text2num(play_records[category]) + else + exp_data[category] = 0 + if(prefs.db_flags & DB_FLAG_EXEMPT) + return_text += "
  • Exempt (all jobs auto-unlocked)
  • " + + for(var/dep in exp_data) + if(exp_data[dep] > 0) + if(exp_data[EXP_TYPE_LIVING] > 0) + var/percentage = num2text(round(exp_data[dep]/exp_data[EXP_TYPE_LIVING]*100)) + return_text += "
  • [dep] [get_exp_format(exp_data[dep])] ([percentage]%)
  • " + else + return_text += "
  • [dep] [get_exp_format(exp_data[dep])]
  • " + if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, 0, mob)) + return_text += "
  • Admin (all jobs auto-unlocked)
  • " + return_text += "
" + var/list/jobs_locked = list() + var/list/jobs_unlocked = list() + for(var/datum/job/job in SSjob.occupations) + if(job.exp_requirements && job.exp_type) + if(!job_is_xp_locked(job.title)) + continue + else if(!job.required_playtime_remaining(mob.client)) + jobs_unlocked += job.title + else + var/xp_req = job.get_exp_req_amount() + jobs_locked += "[job.title] [get_exp_format(text2num(calc_exp_type(job.get_exp_req_type())))] / [get_exp_format(xp_req)] as [job.get_exp_req_type()])" + if(jobs_unlocked.len) + return_text += "

Jobs Unlocked:
  • " + return_text += jobs_unlocked.Join("
  • ") + return_text += "
" + if(jobs_locked.len) + return_text += "

Jobs Not Unlocked:
  • " + return_text += jobs_locked.Join("
  • ") + return_text += "
" + return return_text + + +/client/proc/get_exp_living() + if(!prefs.exp) + return "No data" + var/exp_living = text2num(prefs.exp[EXP_TYPE_LIVING]) + return get_exp_format(exp_living) + +/proc/get_exp_format(expnum) + if(expnum > 60) + return num2text(round(expnum / 60)) + "h" + else if(expnum > 0) + return num2text(expnum) + "m" + else + return "0h" + +/datum/controller/subsystem/blackbox/proc/update_exp(mins, ann = FALSE) + if(!SSdbcore.Connect()) + return -1 + for(var/client/L in GLOB.clients) + if(L.is_afk()) + continue + addtimer(CALLBACK(L,/client/proc/update_exp_list,mins,ann),10) + CHECK_TICK + +/proc/update_exp_db() + SSdbcore.MassInsert(format_table_name("role_time"),GLOB.exp_to_update,TRUE) + LAZYCLEARLIST(GLOB.exp_to_update) + +//Manual incrementing/updating +/* +/client/proc/update_exp_client(minutes, announce_changes = FALSE) + if(!src ||!ckey || !config.use_exp_tracking) + return + if(!SSdbcore.Connect()) + return -1 + var/datum/DBQuery/exp_read = SSdbcore.NewQuery("SELECT job, minutes FROM [format_table_name("role_time")] WHERE ckey = '[sanitizeSQL(ckey)]'") + if(!exp_read.Execute()) + var/err = exp_read.ErrorMsg() + log_sql("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") + message_admins("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") + return -1 + var/list/play_records = list() + while(exp_read.NextRow()) + play_records[exp_read.item[1]] = text2num(exp_read.item[2]) + + for(var/rtype in SSjob.name_occupations) + if(!play_records[rtype]) + play_records[rtype] = 0 + for(var/rtype in GLOB.exp_specialmap) + if(!play_records[rtype]) + play_records[rtype] = 0 + var/list/old_records = play_records.Copy() + if(mob.stat != DEAD && mob.mind.assigned_role) + play_records[EXP_TYPE_LIVING] += minutes + if(announce_changes) + to_chat(mob,"You got: [minutes] Living EXP!") + for(var/job in SSjob.name_occupations) + if(mob.mind.assigned_role == job) + play_records[job] += minutes + if(announce_changes) + to_chat(mob,"You got: [minutes] [job] EXP!") + if(mob.mind.special_role && !mob.mind.var_edited) + play_records[EXP_TYPE_SPECIAL] += minutes + if(announce_changes) + to_chat(mob,"You got: [minutes] [mob.mind.special_role] EXP!") + else if(isobserver(mob)) + play_records[EXP_TYPE_GHOST] += minutes + if(announce_changes) + to_chat(mob,"You got: [minutes] Ghost EXP!") + else if(minutes) //Let "refresh" checks go through + return + prefs.exp = play_records + + for(var/jtype in play_records) + var jobname = jtype + var time = play_records[jtype] + var/datum/DBQuery/update_query = SSdbcore.NewQuery("INSERT INTO [format_table_name("role_time")] (`ckey`, `job`, `minutes`) VALUES ('[sanitizeSQL(ckey)]', '[jobname]', '[time]') ON DUPLICATE KEY UPDATE time = '[time]'") + if(!update_query.Execute()) + var/err = update_queryd.ErrorMsg() + log_game("SQL ERROR during exp_update_client update. Error : \[[err]\]\n") + message_admins("SQL ERROR during exp_update_client update. Error : \[[err]\]\n") + return \ No newline at end of file diff --git a/code/modules/jobs/job_exp.dm.rej b/code/modules/jobs/job_exp.dm.rej new file mode 100644 index 0000000000..128a479acd --- /dev/null +++ b/code/modules/jobs/job_exp.dm.rej @@ -0,0 +1,108 @@ +diff a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm (rejected hunks) +@@ -140,15 +140,12 @@ GLOBAL_PROTECT(exp_to_update) + //resets a client's exp to what was in the db. + /client/proc/set_exp_from_db() + if(!config.use_exp_tracking) +- return ++ return -1 + if(!SSdbcore.Connect()) + return -1 + var/datum/DBQuery/exp_read = SSdbcore.NewQuery("SELECT job, minutes FROM [format_table_name("role_time")] WHERE ckey = '[sanitizeSQL(ckey)]'") + if(!exp_read.Execute()) +- var/err = exp_read.ErrorMsg() +- log_sql("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") +- message_admins("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") +- return ++ return -1 + var/list/play_records = list() + while(exp_read.NextRow()) + play_records[exp_read.item[1]] = text2num(exp_read.item[2]) +@@ -172,42 +169,24 @@ GLOBAL_PROTECT(exp_to_update) + if(!set_db_player_flags()) + return -1 + +- var/datum/DBQuery/flag_read = SSdbcore.NewQuery("SELECT flags FROM [format_table_name("player")] WHERE ckey='[sanitizeSQL(ckey)]'") +- +- if(!flag_read.Execute()) +- var/err = flag_read.ErrorMsg() +- log_sql("SQL ERROR during player flags read. Error : \[[err]\]\n") +- message_admins("SQL ERROR during player flags read. Error : \[[err]\]\n") +- return +- +- var/playerflags = null +- if(flag_read.NextRow()) +- playerflags = text2num(flag_read.item[1]) +- +- if((playerflags & newflag) && !state) ++ if((prefs.db_flags & newflag) && !state) + prefs.db_flags &= ~newflag + else + prefs.db_flags |= newflag + + var/datum/DBQuery/flag_update = SSdbcore.NewQuery("UPDATE [format_table_name("player")] SET flags = '[prefs.db_flags]' WHERE ckey='[sanitizeSQL(ckey)]'") + +- + if(!flag_update.Execute()) +- var/err = flag_update.ErrorMsg() +- log_sql("SQL ERROR during exp_exempt update. Error : \[[err]\]\n") +- message_admins("SQL ERROR during exp_exempt update. Error : \[[err]\]\n") +- return ++ return -1 ++ + + /client/proc/update_exp_list(minutes, announce_changes = FALSE) + if(!config.use_exp_tracking) +- return ++ return -1 + if(!SSdbcore.Connect()) + return -1 + var/datum/DBQuery/exp_read = SSdbcore.NewQuery("SELECT job, minutes FROM [format_table_name("role_time")] WHERE ckey = '[sanitizeSQL(ckey)]'") + if(!exp_read.Execute()) +- var/err = exp_read.ErrorMsg() +- log_sql("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") +- message_admins("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") + return -1 + var/list/play_records = list() + while(exp_read.NextRow()) +@@ -241,9 +220,13 @@ GLOBAL_PROTECT(exp_to_update) + if(announce_changes) + to_chat(mob,"You got: [minutes] [role] EXP!") + if(mob.mind.special_role && !mob.mind.var_edited) +- play_records[mob.mind.special_role] += minutes ++ var/trackedrole = mob.mind.special_role ++ var/gangrole = lookforgangrole(mob.mind.special_role) ++ if(gangrole) ++ trackedrole = gangrole ++ play_records[trackedrole] += minutes + if(announce_changes) +- to_chat(src,"You got: [minutes] [mob.mind.special_role] EXP!") ++ to_chat(src,"You got: [minutes] [trackedrole] EXP!") + if(!rolefound) + play_records["Unknown"] += minutes + else +@@ -276,11 +259,21 @@ GLOBAL_PROTECT(exp_to_update) + var/datum/DBQuery/flags_read = SSdbcore.NewQuery("SELECT flags FROM [format_table_name("player")] WHERE ckey='[ckey]'") + + if(!flags_read.Execute()) +- var/err = flags_read.ErrorMsg() +- log_sql("SQL ERROR during player flags read. Error : \[[err]\]\n") +- message_admins("SQL ERROR during player flags read. Error : \[[err]\]\n") + return FALSE + + if(flags_read.NextRow()) + prefs.db_flags = text2num(flags_read.item[1]) ++ else if(isnull(prefs.db_flags)) ++ prefs.db_flags = 0 //This PROBABLY won't happen, but better safe than sorry. + return TRUE ++ ++//Since each gang is tracked as a different antag type, records need to be generalized or you get up to 57 different possible records ++/proc/lookforgangrole(rolecheck) ++ if(findtext(rolecheck,"Gangster")) ++ return "Gangster" ++ else if(findtext(rolecheck,"Gang Boss")) ++ return "Gang Boss" ++ else if(findtext(rolecheck,"Gang Lieutenant")) ++ return "Gang Lieutenant" ++ else ++ return FALSE +\ No newline at end of file diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index b9d01b7c02..47efea04ac 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -13,6 +13,8 @@ Captain selection_color = "#ccccff" req_admin_notify = 1 minimal_player_age = 14 + exp_requirements = 180 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/captain @@ -64,6 +66,9 @@ Head of Personnel selection_color = "#ddddff" req_admin_notify = 1 minimal_player_age = 10 + exp_requirements = 180 + exp_type = EXP_TYPE_CREW + exp_type_department = EXP_TYPE_SUPPLY outfit = /datum/outfit/job/hop diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 40800998c0..4070a00e97 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -14,6 +14,9 @@ Chief Engineer selection_color = "#ffeeaa" req_admin_notify = 1 minimal_player_age = 7 + exp_requirements = 180 + exp_type = EXP_TYPE_CREW + exp_type_department = EXP_TYPE_ENGINEERING outfit = /datum/outfit/job/ce @@ -72,6 +75,8 @@ Station Engineer spawn_positions = 5 supervisors = "the chief engineer" selection_color = "#fff5cc" + exp_requirements = 60 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/engineer @@ -127,6 +132,8 @@ Atmospheric Technician spawn_positions = 2 supervisors = "the chief engineer" selection_color = "#fff5cc" + exp_requirements = 60 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/atmos diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 0a1622626c..4e57096994 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -43,6 +43,11 @@ var/outfit = null + var/exp_requirements = 0 + + var/exp_type = "" + var/exp_type_department = "" + //Only override this proc //H is usually a human unless an /equip override transformed it /datum/job/proc/after_spawn(mob/living/H, mob/M) diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm index 196f74764f..6b72d851a5 100644 --- a/code/modules/jobs/job_types/medical.dm +++ b/code/modules/jobs/job_types/medical.dm @@ -14,6 +14,9 @@ Chief Medical Officer selection_color = "#ffddf0" req_admin_notify = 1 minimal_player_age = 7 + exp_requirements = 180 + exp_type = EXP_TYPE_CREW + exp_type_department = EXP_TYPE_MEDICAL outfit = /datum/outfit/job/cmo @@ -90,6 +93,8 @@ Chemist spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#ffeef0" + exp_type = EXP_TYPE_CREW + exp_requirements = 60 outfit = /datum/outfit/job/chemist @@ -124,6 +129,8 @@ Geneticist spawn_positions = 2 supervisors = "the chief medical officer and research director" selection_color = "#ffeef0" + exp_type = EXP_TYPE_CREW + exp_requirements = 60 outfit = /datum/outfit/job/geneticist @@ -158,6 +165,8 @@ Virologist spawn_positions = 1 supervisors = "the chief medical officer" selection_color = "#ffeef0" + exp_type = EXP_TYPE_CREW + exp_requirements = 60 outfit = /datum/outfit/job/virologist diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index aa9dd1b179..68d3bdeca9 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -14,6 +14,9 @@ Research Director selection_color = "#ffddff" req_admin_notify = 1 minimal_player_age = 7 + exp_type_department = EXP_TYPE_SCIENCE + exp_requirements = 180 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/rd @@ -68,6 +71,8 @@ Scientist spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" + exp_requirements = 60 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/scientist @@ -101,6 +106,8 @@ Roboticist spawn_positions = 2 supervisors = "research director" selection_color = "#ffeeff" + exp_requirements = 60 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/roboticist diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index 88c73db19a..64b3c0ea8e 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -20,6 +20,9 @@ Head of Security selection_color = "#ffdddd" req_admin_notify = 1 minimal_player_age = 14 + exp_requirements = 300 + exp_type = EXP_TYPE_CREW + exp_type_department = EXP_TYPE_SECURITY outfit = /datum/outfit/job/hos @@ -71,6 +74,8 @@ Warden supervisors = "the head of security" selection_color = "#ffeeee" minimal_player_age = 7 + exp_requirements = 300 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/warden @@ -121,6 +126,8 @@ Detective supervisors = "the head of security" selection_color = "#ffeeee" minimal_player_age = 7 + exp_requirements = 300 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/detective @@ -169,6 +176,8 @@ Security Officer supervisors = "the head of security, and the head of your assigned department (if applicable)" selection_color = "#ffeeee" minimal_player_age = 7 + exp_requirements = 300 + exp_type = EXP_TYPE_CREW outfit = /datum/outfit/job/security diff --git a/code/modules/jobs/job_types/silicon.dm b/code/modules/jobs/job_types/silicon.dm index 0b6380bfaf..2e0a710d41 100644 --- a/code/modules/jobs/job_types/silicon.dm +++ b/code/modules/jobs/job_types/silicon.dm @@ -12,6 +12,8 @@ AI supervisors = "your laws" req_admin_notify = 1 minimal_player_age = 30 + exp_requirements = 180 + exp_type = EXP_TYPE_CREW /datum/job/ai/equip(mob/living/carbon/human/H) return H.AIize(FALSE) @@ -44,6 +46,8 @@ Cyborg supervisors = "your laws and the AI" //Nodrak selection_color = "#ddffdd" minimal_player_age = 21 + exp_requirements = 120 + exp_type = EXP_TYPE_CREW /datum/job/cyborg/equip(mob/living/carbon/human/H) return H.Robotize(FALSE, FALSE) diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 2d7caa5fc4..b5ec8fa27a 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -59,6 +59,26 @@ GLOBAL_LIST_INIT(nonhuman_positions, list( "Cyborg", "pAI")) +GLOBAL_LIST_INIT(exp_jobsmap, list( + EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | civilian_positions | list("AI","Cyborg")), // crew positions + EXP_TYPE_COMMAND = list("titles" = command_positions), + EXP_TYPE_ENGINEERING = list("titles" = engineering_positions), + EXP_TYPE_MEDICAL = list("titles" = medical_positions), + EXP_TYPE_SCIENCE = list("titles" = science_positions), + EXP_TYPE_SUPPLY = list("titles" = supply_positions), + EXP_TYPE_SECURITY = list("titles" = security_positions), + EXP_TYPE_SILICON = list("titles" = list("AI","Cyborg")), + EXP_TYPE_SERVICE = list("titles" = civilian_positions), +)) + +GLOBAL_LIST_INIT(exp_specialmap, list( + EXP_TYPE_LIVING = list(), // all living mobs + EXP_TYPE_ANTAG = list(), + EXP_TYPE_SPECIAL = list("Lifebringer","Ash Walker","Exile","Servant Golem","Free Golem","Hermit","Translocated Vet","Escaped Prisoner","Hotel Staff","SuperFriend","Space Syndicate","Ancient Crew","Space Doctor","Space Bartender","Beach Bum","Skeleton","Zombie","Space Bar Patron","Lavaland Syndicate","Ghost Role"), // Ghost roles + EXP_TYPE_GHOST = list() // dead people, observers +)) +GLOBAL_PROTECT(exp_jobsmap) +GLOBAL_PROTECT(exp_specialmap) /proc/guest_jobbans(job) return ((job in GLOB.command_positions) || (job in GLOB.nonhuman_positions) || (job in GLOB.security_positions)) diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index 9a49c23cfc..4de3b1d4dd 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -1,4 +1,7 @@ /mob/dead/new_player/Login() + if(config.use_exp_tracking) + client.set_exp_from_db() + client.set_db_player_flags() if(!mind) mind = new /datum/mind(key) mind.active = 1 diff --git a/code/modules/mob/dead/new_player/login.dm.rej b/code/modules/mob/dead/new_player/login.dm.rej new file mode 100644 index 0000000000..b7361e13ff --- /dev/null +++ b/code/modules/mob/dead/new_player/login.dm.rej @@ -0,0 +1,9 @@ +diff a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm (rejected hunks) +@@ -1,5 +1,6 @@ + /mob/dead/new_player/Login() +- client.update_exp_client(0, 0) ++ if(config.use_exp_tracking) ++ client.update_exp_client(0, 0) + if(!mind) + mind = new /datum/mind(key) + mind.active = 1 diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 2cea8e32f2..96e24dee83 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -307,6 +307,8 @@ return 0 if(!job.player_old_enough(src.client)) return 0 + if(job.required_playtime_remaining(client)) + return 0 if(config.enforce_human_authority && !client.prefs.pref_species.qualifies_for_rank(rank, client.prefs.features)) return 0 return 1 diff --git a/config/config.txt.rej b/config/config.txt.rej new file mode 100644 index 0000000000..fee79cf699 --- /dev/null +++ b/config/config.txt.rej @@ -0,0 +1,25 @@ +diff a/config/config.txt b/config/config.txt (rejected hunks) +@@ -32,17 +32,17 @@ BAN_LEGACY_SYSTEM + ## Uncomment this to have the job system use the player's account creation date, rather than the when they first joined the server for job timers. + #USE_ACCOUNT_AGE_FOR_JOBS + +-##Unhash this to track player playtime in the database. Requires database to be enabled. ++## Unhash this to track player playtime in the database. Requires database to be enabled. + #USE_EXP_TRACKING +-##Unhash this to enable playtime requirements for head jobs. ++## Unhash this to enable playtime requirements for head jobs. + #USE_EXP_RESTRICTIONS_HEADS +-##Unhash this to override head jobs' playtime requirements with this number of hours. ++## Unhash this to override head jobs' playtime requirements with this number of hours. + #USE_EXP_RESTRICTIONS_HEADS_HOURS 15 +-##Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. ++## Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. + #USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT +-##Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. ++## Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. + #USE_EXP_RESTRICTIONS_OTHER +-##Allows admins to bypass job playtime requirements. ++## Allows admins to bypass job playtime requirements. + #USE_EXP_RESTRICTIONS_ADMIN_BYPASS + + diff --git a/tgstation.dme b/tgstation.dme index 1475d2335c..31f9768bc1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1449,6 +1449,7 @@ #include "code\modules\hydroponics\grown\tomato.dm" #include "code\modules\hydroponics\grown\towercap.dm" #include "code\modules\jobs\access.dm" +#include "code\modules\jobs\job_exp.dm" #include "code\modules\jobs\jobs.dm" #include "code\modules\jobs\job_types\assistant.dm" #include "code\modules\jobs\job_types\captain.dm" From d1fc5ce3859e674847935d2ccfceaa5e413b0781 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 20 Aug 2017 10:51:46 -0500 Subject: [PATCH 027/181] Moves playtime tracking change entry below header --- SQL/database_changelog.txt.rej | 39 ++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej index 1b201ec4aa..b4ec2b6394 100644 --- a/SQL/database_changelog.txt.rej +++ b/SQL/database_changelog.txt.rej @@ -1,15 +1,36 @@ diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) -@@ -1,10 +1,10 @@ - Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. +@@ -1,3 +1,12 @@ ++Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. ++ ++The latest database version is 3.1; The query to update the schema revision table is: ++ ++INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 1); ++or ++INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 1); ++ ++---------------------------------------------------- --The latest database version is 3.1; The query to update the schema revision table is: -+The latest database version is 3.0; The query to update the schema revision table is: + 20th July 2017, by Shadowlight213 + Added role_time table to track time spent playing departments. +@@ -7,21 +16,10 @@ CREATE TABLE `role_time` ( `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT --UPDATE `schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); - or --UPDATE `SS13_schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); + ALTER TABLE `player` ADD `flags` INT NOT NULL default '0' AFTER `accountjoindate`; + +-UPDATE `schema_revision` SET minor = 1; +- + Remember to add a prefix to the table name if you use them. ---------------------------------------------------- +-Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. +- +-The latest database version is 3.0; The query to update the schema revision table is: +- +-INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); +-or +-INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); +- +----------------------------------------------------- + 28 June 2017, by oranges + Added schema_revision to store the current db revision, why start at 3.0? + From 365b16e298c7a4058c8edaebb59392da5a3314db Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Mon, 21 Aug 2017 19:47:23 -0700 Subject: [PATCH 028/181] saving work --- code/citadel/custom_loadout/read_from_file.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/citadel/custom_loadout/read_from_file.dm b/code/citadel/custom_loadout/read_from_file.dm index f5b668da92..eb75c88c2e 100644 --- a/code/citadel/custom_loadout/read_from_file.dm +++ b/code/citadel/custom_loadout/read_from_file.dm @@ -73,4 +73,5 @@ GLOBAL_LIST(custom_item_list) ret[item_path] += GLOB.custom_item_list[ckey][char][job][item_path] else ret[item_path] = GLOB.custom_item_list[ckey][char][job][item_path] + to_chat(world, "debug: parsing returned [english_list(ret)]") return ret From d3504f2e7b57bc1f1e8c9dc5e77c0e60b8927743 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 23 Aug 2017 15:46:50 -0500 Subject: [PATCH 029/181] Add a brain damage line from a backstory --- strings/brain_damage_lines.json.rej | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/strings/brain_damage_lines.json.rej b/strings/brain_damage_lines.json.rej index 6d8e1cdb62..da5d21a48b 100644 --- a/strings/brain_damage_lines.json.rej +++ b/strings/brain_damage_lines.json.rej @@ -1,10 +1,11 @@ diff a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json (rejected hunks) -@@ -131,7 +131,7 @@ - "", - "IS TIS A BUG??", - "SI IST A BUGG/", -- "BUG!!!" -+ "BUG!!!" +@@ -61,7 +61,8 @@ + "@pick(semicolon)N-NYAAAAAA~", + "@pick(bug)", + "@pick(semicolon)wtf??????????? @pick(bug)", +- "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)" ++ "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)", ++ "DON'T EVER TUCH ME", ], - - "semicolon": [ + + "mutations": [ From 342fd1d7faf8d343b5d25f333bd0eb63d885e201 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 23 Aug 2017 15:46:54 -0500 Subject: [PATCH 030/181] Alternative To Removing Kudzu Manufacturing (#30080) --- code/modules/events/spacevine.dm | 37 ------------------------- code/modules/hydroponics/grown/kudzu.dm | 6 ++-- 2 files changed, 4 insertions(+), 39 deletions(-) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 5fe3d018fb..1feb7aa116 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -69,43 +69,6 @@ return -/datum/spacevine_mutation/space_covering - name = "space protective" - hue = "#aa77aa" - quality = POSITIVE - -/datum/spacevine_mutation/space_covering - var/static/list/coverable_turfs - -/datum/spacevine_mutation/space_covering/New() - . = ..() - if(!coverable_turfs) - coverable_turfs = typecacheof(list(/turf/open/space)) - /turf/open/space/transit - -/datum/spacevine_mutation/space_covering/on_grow(obj/structure/spacevine/holder) - process_mutation(holder) - -/datum/spacevine_mutation/space_covering/process_mutation(obj/structure/spacevine/holder) - var/turf/T = get_turf(holder) - if(is_type_in_typecache(T, coverable_turfs)) - var/currtype = T.type - T.ChangeTurf(/turf/open/floor/vines) - T.baseturf = currtype - -/datum/spacevine_mutation/space_covering/on_death(obj/structure/spacevine/holder) - var/turf/T = get_turf(holder) - if(istype(T, /turf/open/floor/vines)) - T.ChangeTurf(T.baseturf) - -/datum/spacevine_mutation/bluespace - name = "bluespace" - hue = "#3333ff" - quality = MINOR_NEGATIVE - -/datum/spacevine_mutation/bluespace/on_spread(obj/structure/spacevine/holder, turf/target) - if(holder.energy > 1 && !locate(/obj/structure/spacevine) in target) - holder.master.spawn_spacevine_piece(target, holder) - /datum/spacevine_mutation/light name = "light" hue = "#ffff00" diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index ad32be14d5..3667b98792 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -42,8 +42,10 @@ qdel(src) /obj/item/seeds/kudzu/attack_self(mob/user) - plant(user) - to_chat(user, "You plant the kudzu. You monster.") + user.visible_message("[user] begins throwing seeds on the ground...") + if(do_after(user, 50, needhand = TRUE, target = user.drop_location(), progress = TRUE)) + plant(user) + to_chat(user, "You plant the kudzu. You monster.") /obj/item/seeds/kudzu/get_analyzer_text() var/text = ..() From cd11c01c42d289d2da3f7f4b6d0ce4db122c967b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 26 Aug 2017 11:07:42 -0500 Subject: [PATCH 031/181] Adds magillitis, a traitor serum for geneticists & CMOs --- .../reagents/chemistry/reagents/other_reagents.dm | 12 ++++++++++++ code/modules/reagents/reagent_containers/bottle.dm | 6 ++++++ .../modules/reagents/reagent_containers/hypospray.dm | 8 ++++++++ code/modules/uplink/uplink_item.dm | 7 +++++++ 4 files changed, 33 insertions(+) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 3247b273ae..408e31a2d7 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1558,6 +1558,18 @@ ZI.Insert(H) ..() +/datum/reagent/magillitis + name = "Magillitis" + id = "magillitis" + description = "An experimental serum which causes rapid muscular growth in basic primates. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + reagent_state = LIQUID + color = "#00f041" + +/datum/reagent/magillitis/on_mob_life(mob/living/carbon/M) + ..() + if(ismonkey(M) && current_cycle >= 10) + return M.gorillize() + /datum/reagent/growthserum name = "Growth Serum" id = "growthserum" diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index b1b5b2939e..ac86057e80 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -162,6 +162,12 @@ icon_state = "bottle16" list_reagents = list("polonium" = 30) +/obj/item/reagent_containers/glass/bottle/magillitis + name = "magillitis bottle" + desc = "A small bottle. Contains a serum known only as 'magillitis'." + icon_state = "bottle16" + list_reagents = list("magillitis" = 5) + /obj/item/reagent_containers/glass/bottle/venom name = "venom bottle" desc = "A small bottle. Contains Venom." diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 74de184958..e7a965b1f3 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -65,6 +65,14 @@ volume = 100 list_reagents = list("nanites" = 80, "synaptizine" = 20) +/obj/item/reagent_containers/hypospray/magillitis + name = "experimental autoinjector" + desc = "A modified air-needle autoinjector with a small single-use reservoir. It contains an experimental serum." + icon_state = "combat_hypo" + volume = 5 + container_type = NONE + list_reagents = list("magillitis" = 5) + //MediPens /obj/item/reagent_containers/hypospray/medipen diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index ba1d5c3c40..f34b431510 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -1314,6 +1314,13 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. cost = 14 restricted_roles = list("Geneticist", "Chief Medical Officer") +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in basic primates." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 15 + restricted_roles = list("Geneticist", "Chief Medical Officer") + /datum/uplink_item/role_restricted/pressure_mod name = "Kinetic Accelerator Pressure Mod" desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. Occupies 35% mod capacity." From 28bc1d992b1ee596ec5c2c6c0ecd8eaefa637d95 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 26 Aug 2017 11:07:56 -0500 Subject: [PATCH 032/181] Update metastation.json --- _maps/metastation.json.rej | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 _maps/metastation.json.rej diff --git a/_maps/metastation.json.rej b/_maps/metastation.json.rej new file mode 100644 index 0000000000..bb48267f5e --- /dev/null +++ b/_maps/metastation.json.rej @@ -0,0 +1,11 @@ +diff a/_maps/metastation.json b/_maps/metastation.json (rejected hunks) +@@ -3,6 +3,6 @@ + "map_path": "map_files/MetaStation", + "map_file": "MetaStation.dmm", + "minetype": "lavaland", +- "transition_config": "default" ++ "transition_config": "default", + "allow_custom_shuttles": "yes" +-} +\ No newline at end of file ++} From 26890c6f81548b90250e9089d0086af1ba723898 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 26 Aug 2017 14:08:30 -0500 Subject: [PATCH 033/181] Pulls the plug on Cerestation (for real this time) --- _maps/basemap.dm | 1 - _maps/cerestation.dm | 1 - _maps/cerestation.json | 7 - _maps/map_files/Cerestation/cerestation.dmm | 142082 ----------------- config/maps.txt.rej | 13 + 5 files changed, 13 insertions(+), 142091 deletions(-) delete mode 100644 _maps/cerestation.dm delete mode 100644 _maps/cerestation.json delete mode 100644 _maps/map_files/Cerestation/cerestation.dmm create mode 100644 config/maps.txt.rej diff --git a/_maps/basemap.dm b/_maps/basemap.dm index db5a71afb2..d11b527aa3 100644 --- a/_maps/basemap.dm +++ b/_maps/basemap.dm @@ -11,7 +11,6 @@ #include "map_files\OmegaStation\OmegaStation.dmm" #include "map_files\PubbyStation\PubbyStation.dmm" #include "map_files\BoxStation\BoxStation.dmm" -#include "map_files\Cerestation\cerestation.dmm" #ifdef TRAVISBUILDING #include "templates.dm" diff --git a/_maps/cerestation.dm b/_maps/cerestation.dm deleted file mode 100644 index 9345072d05..0000000000 --- a/_maps/cerestation.dm +++ /dev/null @@ -1 +0,0 @@ -#define FORCE_MAP "_maps/cerestation.json" \ No newline at end of file diff --git a/_maps/cerestation.json b/_maps/cerestation.json deleted file mode 100644 index e4c6b52f89..0000000000 --- a/_maps/cerestation.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "map_name": "CereStation", - "map_path": "map_files/Cerestation", - "map_file": "cerestation.dmm", - "minetype": "lavaland", - "transition_config": "default" -} \ No newline at end of file diff --git a/_maps/map_files/Cerestation/cerestation.dmm b/_maps/map_files/Cerestation/cerestation.dmm deleted file mode 100644 index f9f808e392..0000000000 --- a/_maps/map_files/Cerestation/cerestation.dmm +++ /dev/null @@ -1,142082 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aaa" = ( -/turf/open/space, -/area/space) -"aab" = ( -/turf/open/floor/plating/asteroid/airless, -/area/space) -"aac" = ( -/turf/closed/mineral/random/low_chance, -/area/space) -"aad" = ( -/turf/closed/mineral, -/area/space) -"aae" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"aaf" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"aag" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space) -"aai" = ( -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"aaj" = ( -/obj/machinery/door/poddoor/shutters{ - id = "syndieshutters"; - name = "blast shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"aal" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"aan" = ( -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"aau" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aav" = ( -/obj/machinery/camera/motion{ - c_tag = "AI Core North-West" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaw" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aax" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aay" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaz" = ( -/obj/machinery/camera/motion{ - c_tag = "AI Core North-East" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaE" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-09" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aaF" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aaG" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaH" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaI" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaJ" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaK" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "AI Core APC"; - areastring = "/area/ai_monitored/turret_protected/ai"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaL" = ( -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aaM" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aaO" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"aaP" = ( -/turf/closed/wall, -/area/space) -"aaQ" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/north) -"aaR" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"aaS" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"aaT" = ( -/obj/machinery/door/window/southright{ - req_access_txt = "65" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aaU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"aaV" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aaW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"aaX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"aba" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/space) -"abb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/space) -"abc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/space) -"abd" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/space) -"abe" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/north) -"abf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/north) -"abg" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abh" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abi" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abj" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abk" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/conveyor/auto{ - dir = 6; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abl" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abn" = ( -/obj/effect/landmark/tripai, -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_y = -25 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 28 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = 27; - pixel_y = 5 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abo" = ( -/obj/effect/landmark/tripai, -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_y = -25 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = 5 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 28 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abp" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abr" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/space) -"abs" = ( -/turf/open/floor/plating, -/area/space) -"abt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/north) -"abv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abw" = ( -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abx" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 8; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = 9; - pixel_y = 2 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aby" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abz" = ( -/obj/item/device/radio/intercom{ - anyai = 1; - broadcasting = 0; - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 27; - pixel_y = -9 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - freerange = 1; - listening = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = -9 - }, -/obj/item/device/radio/intercom{ - anyai = 1; - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 25 - }, -/obj/machinery/turretid{ - name = "AI Chamber turret control"; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = -11; - pixel_y = 24 - }, -/obj/machinery/requests_console{ - department = "AI"; - departmentType = 5; - pixel_x = -28; - pixel_y = 28 - }, -/obj/effect/landmark/start/ai, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abA" = ( -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 4; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue"; - pixel_x = -9; - pixel_y = 2 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abB" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 4 - }, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"abC" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space) -"abE" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"abF" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/north) -"abG" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/north) -"abH" = ( -/obj/structure/rack, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/north) -"abI" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Northern External Waste Belt APC"; - areastring = "/area/maintenance/asteroid/disposal/external/north"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abJ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/north) -"abK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/north) -"abL" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/north) -"abM" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abP" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abQ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abR" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"abS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"abV" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/space) -"abW" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"abX" = ( -/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/disposal/external/north) -"abY" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/north) -"abZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aca" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-09" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"aci" = ( -/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/shuttle/syndicate) -"acj" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"ack" = ( -/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/disposal/external/north) -"acl" = ( -/obj/machinery/disposal/deliveryChute, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/north) -"acm" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_n"; - name = "north of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"acn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"aco" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"acp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/syndicate) -"acu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 2; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/showcase{ - density = 0; - desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; - dir = 2; - icon = 'icons/mob/robots.dmi'; - icon_state = "robot_old"; - name = "Cyborg Statue" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acD" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_ne"; - name = "northeast of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"acH" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"acI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"acJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acK" = ( -/obj/machinery/camera/motion{ - c_tag = "AI Core South-East"; - dir = 1; - network = list("MiniSat") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"acM" = ( -/turf/open/space, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"acN" = ( -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"acO" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai) -"acQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"acR" = ( -/obj/machinery/door/airlock/hatch{ - name = "AI Core Hallway"; - req_one_access_txt = "65" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/turret_protected/ai) -"acS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"acU" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"add" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"ade" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"adf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"adg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/turret_protected/ai) -"adh" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"adi" = ( -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"adm" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"adn" = ( -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"ado" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"adp" = ( -/obj/machinery/telecomms/processor/preset_three, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adq" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"adr" = ( -/obj/effect/decal/remains/human, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"ads" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/gun/energy/e_gun - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"adt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/turret_protected/ai) -"adu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"adv" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/gun/energy/e_gun - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"adC" = ( -/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, -/area/security/execution/transfer) -"adD" = ( -/obj/machinery/telecomms/server/presets/engineering, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adE" = ( -/obj/machinery/telecomms/bus/preset_four, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adF" = ( -/obj/machinery/telecomms/bus/preset_three, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adG" = ( -/obj/machinery/telecomms/server/presets/security, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adH" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 1; - name = "Telecomms Server APC"; - areastring = "/area/tcommsat/server"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"adI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/tcommsat/computer) -"adJ" = ( -/obj/machinery/computer/message_monitor, -/obj/machinery/camera{ - c_tag = "Telecomms Control Room 2"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"adK" = ( -/obj/machinery/announcement_system, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"adL" = ( -/obj/machinery/camera{ - c_tag = "AI Hallway"; - dir = 5 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"adP" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/com_north) -"adS" = ( -/obj/item/ore/glass, -/turf/open/floor/plating/asteroid, -/area/security/execution/transfer) -"adV" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"adX" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"adY" = ( -/obj/machinery/telecomms/server/presets/common, -/turf/open/floor/circuit, -/area/tcommsat/server) -"adZ" = ( -/obj/machinery/telecomms/processor/preset_four, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aea" = ( -/obj/machinery/telecomms/receiver/preset_right, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aeb" = ( -/obj/machinery/telecomms/server/presets/command, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aec" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"aed" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aee" = ( -/obj/machinery/computer/telecomms/server{ - network = "tcommsat" - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aef" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/turret_protected/ai) -"aeg" = ( -/obj/item/coin/antagtoken, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"aep" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/com_west) -"aeq" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 5"; - dir = 6; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aes" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 6"; - dir = 6; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aet" = ( -/obj/machinery/flasher{ - id = "Cell 6"; - pixel_y = 32 - }, -/obj/machinery/holopad, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aew" = ( -/obj/machinery/blackbox_recorder, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aex" = ( -/obj/machinery/telecomms/broadcaster/preset_right, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aey" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aez" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"aeA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"aeB" = ( -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aeC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"aeD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/ai_monitored/turret_protected/ai) -"aeF" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 30 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"aeJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"aeK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/prison) -"aeM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aeO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeP" = ( -/turf/open/floor/circuit, -/area/tcommsat/server) -"aeQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aeR" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Control Room"; - req_access_txt = "19; 61" - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afa" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"afb" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"afc" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"afd" = ( -/turf/closed/wall/r_wall, -/area/security/prison) -"afg" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"afh" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Perma Storage" - }, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"afl" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/machinery/ntnet_relay, -/obj/machinery/camera{ - c_tag = "Telecomms Server Room"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/circuit, -/area/tcommsat/server) -"afm" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/circuit, -/area/tcommsat/server) -"afn" = ( -/obj/machinery/telecomms/hub/preset, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/tcommsat/server) -"afp" = ( -/obj/machinery/door/airlock/glass_engineering{ - cyclelinkeddir = 4; - name = "Server Room"; - req_access_txt = "61" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"afq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"afr" = ( -/obj/machinery/door/airlock/glass_engineering{ - cyclelinkeddir = 8; - name = "Server Room"; - req_access_txt = "61" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/tcommsat/computer) -"afs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afw" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"afz" = ( -/obj/machinery/door/window/brigdoor/security/cell/northleft{ - id = "Cell 6"; - name = "Cell Door 6" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"afA" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/prison) -"afD" = ( -/obj/structure/holohoop{ - icon_state = "hoop"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"afE" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/com_north) -"afH" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/com_north) -"afJ" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"afK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Telecomms Control Room"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afN" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afO" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"afP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"afQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afS" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/machinery/turretid{ - name = "AI Chamber turret control"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afU" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afV" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-09" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"afW" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"aga" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 4"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"agc" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/prison) -"agd" = ( -/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{ - dir = 1 - }, -/area/security/prison) -"age" = ( -/obj/machinery/airalarm{ - 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{ - dir = 1 - }, -/area/security/prison) -"agf" = ( -/obj/machinery/door_timer{ - id = "Cell 6"; - name = "Cell 6"; - 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{ - dir = 1 - }, -/area/security/prison) -"agh" = ( -/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{ - dir = 5 - }, -/area/security/prison) -"agi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/prison) -"agk" = ( -/turf/closed/mineral, -/area/security/execution/transfer) -"agl" = ( -/turf/closed/wall, -/area/security/execution/transfer) -"agm" = ( -/turf/open/floor/plating/asteroid, -/area/security/execution/transfer) -"agH" = ( -/obj/machinery/message_server, -/turf/open/floor/circuit, -/area/tcommsat/server) -"agI" = ( -/obj/machinery/telecomms/broadcaster/preset_left, -/turf/open/floor/circuit, -/area/tcommsat/server) -"agK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"agL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"agM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"agN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"agO" = ( -/obj/machinery/door/airlock/engineering{ - name = "Telecommunications"; - req_access_txt = "61" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/tcommsat/computer) -"agP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/mob/living/simple_animal/bot/secbot/pingsky, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "AI Asteroid Hallway 4"; - dir = 1; - network = list("SS13") - }, -/obj/item/device/radio/beacon, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"agW" = ( -/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, -/area/security/prison) -"agX" = ( -/turf/open/floor/plating/astplate, -/area/security/prison) -"agY" = ( -/obj/machinery/door/window/brigdoor/security/cell/westleft{ - id = "Cell 4"; - name = "Cell Door 4" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"aha" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CellBlockMidRight"; - location = "CellBlockUpRight"; - name = "navigation beacon (CellBlockUpRight)" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ahb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"ahc" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 2"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ahf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"ahh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"ahv" = ( -/obj/machinery/telecomms/server/presets/supply, -/turf/open/floor/circuit, -/area/tcommsat/server) -"ahw" = ( -/obj/machinery/telecomms/bus/preset_two, -/turf/open/floor/circuit, -/area/tcommsat/server) -"ahx" = ( -/obj/machinery/telecomms/receiver/preset_left, -/turf/open/floor/circuit, -/area/tcommsat/server) -"ahy" = ( -/obj/machinery/telecomms/server/presets/medical, -/turf/open/floor/circuit, -/area/tcommsat/server) -"ahz" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ahA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ahB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ahC" = ( -/obj/machinery/door/airlock/hatch{ - name = "AI Core"; - req_one_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"ahD" = ( -/obj/machinery/door/airlock/hatch{ - name = "AI Core"; - req_one_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"ahE" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"ahF" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"ahH" = ( -/turf/open/floor/plating, -/area/security/prison) -"ahJ" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ahK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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{ - dir = 8 - }, -/area/security/prison) -"ahO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"ahP" = ( -/turf/closed/wall/rust, -/area/security/execution/transfer) -"ahR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"ahY" = ( -/obj/machinery/telecomms/server/presets/service, -/turf/open/floor/circuit, -/area/tcommsat/server) -"ahZ" = ( -/obj/machinery/telecomms/processor/preset_two, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aia" = ( -/obj/machinery/telecomms/processor/preset_one, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aib" = ( -/obj/machinery/telecomms/server/presets/science, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aic" = ( -/obj/machinery/computer/telecomms/monitor{ - network = "tcommsat" - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aid" = ( -/obj/structure/table, -/obj/item/device/radio/off, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aie" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aif" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Telecomms Control Room APC"; - areastring = "/area/tcommsat/computer"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aig" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/device/multitool, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"aih" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aii" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aij" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aik" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"aiq" = ( -/obj/machinery/door_timer{ - id = "Cell 4"; - name = "Cell 4"; - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"air" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ais" = ( -/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, -/area/security/prison) -"aiu" = ( -/obj/machinery/door_timer{ - id = "Cell 7"; - name = "Cell 7"; - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"aix" = ( -/obj/structure/sign/poster/official/do_not_question{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/security/prison) -"aiy" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 5"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aiA" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aiF" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aiM" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/tcommsat/server) -"aiN" = ( -/obj/machinery/telecomms/bus/preset_one, -/turf/open/floor/circuit, -/area/tcommsat/server) -"aiO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "AI Asteroid Hallway 3"; - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aiP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aiQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"aiR" = ( -/turf/closed/wall, -/area/quartermaster/sorting) -"aiS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"aiT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"aiU" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"aja" = ( -/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, -/area/security/processing) -"ajb" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"ajc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"aje" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 3"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ajg" = ( -/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, -/area/security/prison) -"aji" = ( -/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{ - dir = 8 - }, -/area/security/prison) -"ajj" = ( -/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"; - areastring = "/area/security/prison"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ajk" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ajm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"ajo" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 8"; - name = "Cell 8 Locker" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"ajz" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"ajA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"ajB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/tcommsat/server) -"ajC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"ajD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"ajE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"ajF" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"ajG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"ajH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"ajI" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "AI Asteroid" - }) -"ajJ" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/quartermaster/sorting) -"ajK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"ajL" = ( -/obj/machinery/conveyor{ - dir = 5; - id = "CargoWaste"; - verted = -1 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"ajM" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "CargoWaste" - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"ajN" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "CargoWaste" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"ajO" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"ajP" = ( -/obj/structure/disposalpipe/wrapsortjunction{ - icon_state = "pipe-j1s"; - dir = 8 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"ajQ" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/quartermaster/sorting) -"ajR" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"ajS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/kss13{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/space) -"ajT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/bedsheet, -/obj/structure/sign/poster/contraband/communist_state{ - pixel_y = 32 - }, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plating, -/area/space) -"ajU" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/item/clothing/head/ushanka, -/turf/open/floor/plating, -/area/space) -"ajW" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"ajX" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"aka" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/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 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"akc" = ( -/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, -/area/security/prison) -"akd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ake" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"akf" = ( -/obj/machinery/door/window/brigdoor/security/cell/eastleft{ - id = "Cell 8"; - name = "Cell Door 8" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"akk" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"akl" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"akn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"ako" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"akp" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"akq" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"akr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"aks" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat/hallway) -"akt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"aku" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"akv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"akw" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"akx" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Cargo Asteroid" - }) -"aky" = ( -/obj/machinery/conveyor{ - dir = 9; - id = "CargoWaste"; - verted = -1 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"akz" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "CargoWaste" - }, -/obj/machinery/recycler, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"akA" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "CargoWaste" - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"akB" = ( -/obj/machinery/mineral/stacking_machine{ - input_dir = 8; - output_dir = 2 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"akC" = ( -/obj/machinery/mineral/stacking_unit_console{ - dir = 2; - machinedir = 8 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"akD" = ( -/obj/item/trash/candy, -/turf/open/floor/plating, -/area/space) -"akE" = ( -/obj/effect/decal/remains/human, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/space) -"akF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/glowshroom/single, -/turf/open/floor/plating, -/area/space) -"akG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/processing) -"akH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/processing) -"akI" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/processing) -"akK" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"akL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akN" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"akQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"akT" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"akU" = ( -/obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"akV" = ( -/obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"akW" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"akX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"akY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat/hallway) -"akZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"ala" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"alb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"alc" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Cargo Asteroid" - }) -"ald" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"ale" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alg" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alh" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"ali" = ( -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alj" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/quartermaster/sorting) -"alk" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Cargo Asteroid" - }) -"all" = ( -/obj/item/trash/can, -/turf/open/floor/plating, -/area/space) -"alm" = ( -/turf/closed/wall, -/area/security/prison) -"aln" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/prison) -"alo" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_x = -32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"alr" = ( -/turf/open/floor/plating/asteroid, -/area/security/prison) -"als" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"alt" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"alu" = ( -/obj/structure/rack, -/obj/item/pickaxe/emergency, -/obj/item/shovel, -/obj/item/storage/bag/ore, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"alv" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"alw" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"alx" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"aly" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"alz" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/stamp/captain, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"alA" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"alB" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"alC" = ( -/obj/item/storage/secure/safe{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"alD" = ( -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"alE" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"alF" = ( -/obj/item/soap/deluxe, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"alG" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"alH" = ( -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"alI" = ( -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"alJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"alK" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Cargo Disposals"; - dir = 1; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alQ" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"alR" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Gulag Dock"; - req_access_txt = "0"; - req_one_access_txt = "38;2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/processing) -"alS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/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{ - dir = 1 - }, -/area/security/prison) -"alT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"alU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"alW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/prison) -"alX" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CellBlockUpLeft"; - location = "CellBlockMidLeft"; - name = "navigation beacon (CellBlockMidLeft)" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"alY" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"alZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/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 = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"amb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/prison) -"amd" = ( -/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, -/area/security/prison) -"amf" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Perma Brig"; - req_access_txt = "0"; - req_one_access_txt = "38;2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"amg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"amh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ami" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"amj" = ( -/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{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aml" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating/astplate, -/area/security/prison) -"amn" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"amo" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"amp" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"amq" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"amr" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"ams" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"amt" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"amu" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"amv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"amw" = ( -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"amx" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"amy" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"amz" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"amA" = ( -/obj/machinery/door/airlock{ - id_tag = "bc" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"amB" = ( -/obj/machinery/button/door{ - id = "bc"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"amC" = ( -/obj/machinery/camera/motion{ - c_tag = "Bridge Escape Pod External"; - dir = 8 - }, -/turf/open/space, -/area/space) -"amD" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "AI Asteroid Maintenance APC"; - areastring = "/area/ai_monitored/turret_protected/aisat/hallway"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"amE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"amF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "AI Asteroid Hallway 2"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat/hallway) -"amG" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"amH" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"amI" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Cargo Asteroid" - }) -"amJ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Disposals"; - req_access_txt = "12;31" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"amK" = ( -/obj/structure/table, -/obj/item/storage/box, -/obj/item/storage/box, -/obj/item/storage/box, -/obj/item/storage/box, -/obj/item/storage/box, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"amL" = ( -/obj/structure/table, -/obj/item/device/destTagger, -/obj/item/stack/packageWrap, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"amM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"amN" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"amO" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"amP" = ( -/turf/closed/wall, -/area/quartermaster/miningdock) -"amQ" = ( -/obj/machinery/disposal/deliveryChute, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space) -"amR" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Gulag Dock"; - 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, -/area/security/processing) -"amS" = ( -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"amT" = ( -/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, -/area/security/prison) -"amU" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"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{ - dir = 8 - }, -/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/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"amX" = ( -/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, -/area/security/prison) -"amY" = ( -/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, -/area/security/prison) -"anb" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 3"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"anc" = ( -/obj/structure/table, -/obj/item/device/radio/beacon, -/turf/open/floor/plating/astplate, -/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, -/area/maintenance/asteroid/fore/com_north) -"ane" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"ang" = ( -/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 = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anh" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"ani" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Captain's Private Quarters APC"; - areastring = "/area/crew_quarters/heads/captain"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anj" = ( -/obj/structure/table/wood, -/obj/item/pinpointer, -/obj/item/disk/nuclear, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"ank" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"anl" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"anm" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"ann" = ( -/obj/docking_port/stationary/random{ - dir = 1; - id = "pod_lavaland1"; - name = "lavaland" - }, -/turf/open/space, -/area/space) -"ano" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"anp" = ( -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"anq" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"anr" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Disposals APC"; - areastring = "/area/quartermaster/sorting"; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"ans" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"ant" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/quartermaster/sorting) -"anu" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Disposals"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"anv" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"anw" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/closed/wall, -/area/quartermaster/office) -"anx" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/office) -"any" = ( -/turf/closed/wall, -/area/quartermaster/office) -"anz" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"anA" = ( -/obj/structure/rack, -/obj/item/shovel, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"anB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"anC" = ( -/obj/structure/closet/crate, -/obj/item/device/flashlight/lantern, -/obj/item/device/flashlight/lantern, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"anE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"anF" = ( -/turf/closed/wall, -/area/security/warden) -"anH" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"anI" = ( -/turf/open/floor/plasteel, -/area/security/prison) -"anJ" = ( -/turf/closed/wall/r_wall, -/area/security/warden) -"anK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"anM" = ( -/obj/machinery/door_timer{ - id = "Cell 9"; - name = "Cell 9"; - pixel_x = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"anQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"anS" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/security/prison) -"anT" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"anU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"anV" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"anZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"aoa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aob" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aoc" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/captain, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aod" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"aoe" = ( -/obj/machinery/suit_storage_unit/captain, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aof" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aog" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_y = 30 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aoh" = ( -/obj/machinery/door/window/eastright{ - name = "Captain's Desk"; - req_access_txt = "20" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/keycard_auth{ - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aoi" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aoj" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aok" = ( -/obj/structure/table/wood, -/obj/item/storage/lockbox/medal, -/obj/machinery/camera{ - c_tag = "Captain's Office" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aol" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aom" = ( -/obj/structure/displaycase/captain, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aon" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_1) -"aoo" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"aop" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"aoq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"aor" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"aos" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aot" = ( -/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/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aou" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Cargo APC"; - areastring = "/area/quartermaster/office"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aov" = ( -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aow" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aox" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoy" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/office) -"aoA" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/supply) -"aoB" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoD" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aoG" = ( -/obj/machinery/door/poddoor/shutters{ - id = "MiningWarehouse" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"aoH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aoI" = ( -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aoJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aoK" = ( -/obj/structure/closet/crate, -/obj/item/ore/slag, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aoM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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, -/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, -/area/security/prison) -"aoP" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoR" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 9"; - dir = 9; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"aoT" = ( -/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 = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aoU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aoV" = ( -/turf/closed/wall, -/area/crew_quarters/dorms/female) -"aoW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"aoX" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"aoY" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aoZ" = ( -/obj/structure/closet/secure_closet/captains, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apa" = ( -/obj/machinery/light/small, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apb" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access = null; - req_access_txt = "20" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apc" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apd" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/melee/chainofcommand, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"ape" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"apf" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"apg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aph" = ( -/mob/living/simple_animal/pet/fox/Renault, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"api" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"apj" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/computer/shuttle/pod{ - pixel_x = -32; - possible_destinations = "pod_lavaland1"; - shuttleId = "pod1" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Command Escape Pod"; - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"apk" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"apl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat/hallway) -"apm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"apn" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"apo" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"app" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"apq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"apr" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"aps" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"apt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/landmark/xeno_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"apu" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"apv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"apw" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/ore_box, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"apy" = ( -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -32 - }, -/obj/machinery/holopad, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"apz" = ( -/obj/machinery/door/window/brigdoor/security/cell/westleft{ - id = "Cell 2"; - name = "Cell Door 2" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"apA" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/camera{ - c_tag = "Brig Cellblock South"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"apC" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"apD" = ( -/obj/machinery/door/window/brigdoor/security/cell/eastleft{ - id = "Cell 9"; - name = "Cell Door 9" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"apG" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Perma Cell 4"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"apK" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Dorm APC"; - areastring = "/area/crew_quarters/locker"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"apL" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"apM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"apN" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"apO" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"apP" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"apQ" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"apR" = ( -/obj/machinery/camera/motion{ - c_tag = "Bridge Maintenance Eastl"; - dir = 8 - }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"apS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"apT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"apU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"apV" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced, -/obj/item/hand_tele, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apW" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/card, -/obj/item/card/id/captains_spare, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apX" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/communications, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apY" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/machinery/recharger, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"apZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqa" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqb" = ( -/obj/structure/table/wood, -/obj/item/storage/photo_album, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqc" = ( -/obj/structure/table/wood, -/obj/item/toy/figure/captain, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqd" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqe" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/item/storage/pod{ - pixel_x = -24 - }, -/obj/item/device/radio/intercom{ - pixel_x = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_1) -"aqf" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"aqg" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"aqh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aqi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/ai_monitored/turret_protected/aisat/hallway) -"aqj" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"aqk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/ai_monitored/turret_protected/aisat/hallway) -"aql" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aqm" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aqn" = ( -/obj/machinery/camera{ - c_tag = "Cargo Western Loading Bay 2"; - dir = 5; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aqo" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aqp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aqq" = ( -/obj/machinery/door/airlock/mining{ - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"aqr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aqs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aqt" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"aqy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aqC" = ( -/turf/closed/wall, -/area/crew_quarters/locker) -"aqD" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/locker) -"aqE" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"aqF" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"aqG" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"aqH" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"aqI" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"aqJ" = ( -/obj/machinery/camera{ - c_tag = "Fore Asteroid Maintenance APCs 2"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aqK" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aqL" = ( -/obj/machinery/computer/arcade, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqO" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqP" = ( -/obj/structure/table/wood, -/obj/item/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqQ" = ( -/obj/structure/table/wood, -/obj/item/device/camera, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"aqR" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"aqS" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 1; - id = "pod1"; - name = "escape pod 1"; - port_angle = 90 - }, -/turf/open/floor/plating, -/area/shuttle/pod_1) -"aqT" = ( -/obj/structure/closet/crate, -/obj/item/pickaxe/mini, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aqU" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aqV" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"aqW" = ( -/obj/machinery/camera{ - c_tag = "Core-Command-Cargo Bridge 4"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"aqX" = ( -/turf/closed/wall, -/area/quartermaster/storage) -"aqY" = ( -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Cargo RC"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aqZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ara" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"arb" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"arc" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"ard" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"are" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"arf" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"arg" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"arh" = ( -/turf/open/floor/plating, -/area/quartermaster/office) -"ari" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"arj" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ark" = ( -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Cargo RC"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Cargo Eastern Loading Bay 1"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"arl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"arm" = ( -/obj/machinery/button/door{ - id = "MiningWarehouse"; - name = "Mining Warehouse Shutters"; - pixel_y = -24 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock) -"arn" = ( -/turf/closed/wall/r_wall, -/area/security/main) -"arp" = ( -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_x = -32 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"aru" = ( -/obj/machinery/door_timer{ - id = "Cell 10"; - name = "Cell 10"; - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"arx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"ary" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Dorm Commons North"; - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"arz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"arA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"arB" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"arC" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"arD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/female) -"arE" = ( -/obj/machinery/light_switch{ - pixel_x = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/dorms/female) -"arF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/dorms/female) -"arG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/female) -"arH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/female) -"arI" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/female) -"arJ" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/cmo/private) -"arK" = ( -/obj/machinery/vending/cigarette{ - extended_inventory = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"arL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"arM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"arN" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"arO" = ( -/obj/structure/table/wood, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"arP" = ( -/turf/closed/wall/r_wall, -/area/bridge) -"arQ" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4; - name = "Command Escape Pod" - }, -/turf/open/floor/plating, -/area/bridge) -"arR" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/chief/private) -"arS" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"arT" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"arU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"arV" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"arW" = ( -/obj/machinery/conveyor_switch{ - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"asa" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"asb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"asc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"asd" = ( -/obj/machinery/door/poddoor/shutters{ - id = "MiningWarehouse" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"ase" = ( -/obj/machinery/door/airlock/mining{ - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"asf" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/mining) -"asg" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/mining) -"ash" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/shotgun/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/ballistic/shotgun/riot, -/obj/item/gun/ballistic/shotgun/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"asj" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/turf/open/floor/plasteel/black, -/area/security/armory) -"asn" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"asp" = ( -/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, -/area/security/prison) -"ast" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"asu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"asv" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"asw" = ( -/obj/structure/table/wood, -/obj/item/toy/dummy, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"asx" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"asy" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"asz" = ( -/obj/machinery/door/airlock{ - name = "Female Sleeping Quarters" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/dorms/female) -"asA" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/female) -"asB" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/female) -"asC" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/female) -"asD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"asE" = ( -/obj/structure/bed, -/obj/item/bedsheet/cmo, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/storage/secure/safe{ - pixel_x = -28 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"asF" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"asG" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"asH" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"asI" = ( -/turf/closed/wall, -/area/crew_quarters/heads/cmo/private) -"asJ" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"asK" = ( -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"asL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"asM" = ( -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"asN" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/bridge) -"asO" = ( -/turf/open/floor/plating, -/area/bridge) -"asP" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"asQ" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"asR" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"asS" = ( -/obj/structure/bed, -/obj/item/bedsheet/ce, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/sign/poster/contraband/power{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"asU" = ( -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"asV" = ( -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"asW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"asX" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"asY" = ( -/obj/machinery/holopad, -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = 8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = -8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"asZ" = ( -/obj/machinery/button/door{ - dir = 2; - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = 8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = -8 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"ata" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"atb" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/newscaster{ - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"atc" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"atd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ate" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"atf" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/pickaxe, -/obj/item/storage/toolbox/mechanical, -/obj/machinery/button/door{ - id = "MiningWarehouse"; - name = "Mining Warehouse Shutters"; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"atg" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"ath" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"ati" = ( -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"atj" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"atk" = ( -/turf/closed/wall, -/area/security/processing) -"atm" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/security/armory) -"atn" = ( -/obj/structure/rack, -/obj/item/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/security/armory) -"atq" = ( -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -32 - }, -/obj/machinery/holopad, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"atr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/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, -/area/security/prison) -"ats" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"att" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CellBlockLowLeft"; - location = "CellBlockLowRight"; - name = "navigation beacon (CellBlockLowRight)" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"atv" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Perma Cell 6"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"atx" = ( -/obj/structure/weightlifter, -/turf/open/floor/plating/astplate, -/area/security/prison) -"atA" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"atB" = ( -/obj/structure/table/wood, -/obj/item/device/paicard, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"atC" = ( -/obj/structure/table/wood, -/obj/item/storage/firstaid/brute, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"atD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"atE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/female) -"atF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/female) -"atG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/female) -"atH" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/female) -"atI" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 9 - }, -/area/crew_quarters/dorms/female) -"atJ" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Female Sleeping Quarters APC"; - areastring = "/area/crew_quarters/dorms/female"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/dorms/female) -"atK" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"atL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"atM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"atN" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"atO" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"atP" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"atQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"atR" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Office"; - req_access = null; - req_access_txt = "20" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"atS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"atT" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"atU" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"atW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/storage/secure/safe{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"atX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"atY" = ( -/obj/structure/closet/crate/medical, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"atZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"aua" = ( -/obj/machinery/door/poddoor/shutters{ - id = "CargoWarehouse" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"aub" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"auf" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Supply Shuttle Airlock"; - req_access_txt = "31" - }, -/obj/docking_port/mobile/supply{ - dwidth = 5; - width = 12 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 5; - height = 7; - id = "supply_home"; - name = "Cargo Bay"; - width = 12 - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"aug" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"auh" = ( -/obj/effect/landmark/start/shaft_miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aui" = ( -/obj/machinery/computer/security/mining{ - network = list("MINE","AuxBase") - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"auk" = ( -/obj/structure/closet/crate, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/silver, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aul" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aum" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"aun" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"auo" = ( -/obj/machinery/gulag_teleporter, -/turf/open/floor/plasteel, -/area/security/processing) -"aup" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/obj/machinery/camera{ - c_tag = "Brig Equipment North"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"auq" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/main) -"aur" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/main) -"aut" = ( -/obj/machinery/camera/motion{ - c_tag = "Armory South"; - dir = 1; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/darkred/side, -/area/security/armory) -"auv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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, -/area/security/prison) -"auz" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Brig Perma South"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"auA" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"auB" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"auC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"auD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"auE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"auF" = ( -/obj/structure/table/wood, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"auG" = ( -/obj/structure/table/wood, -/obj/item/device/instrument/guitar, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"auH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"auI" = ( -/obj/structure/bed, -/obj/item/bedsheet/yellow, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"auJ" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"auK" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"auL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_x = -30 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"auM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"auN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/cmo/private) -"auO" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"auP" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"auQ" = ( -/obj/structure/table/wood, -/obj/machinery/vending/wallmed{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"auR" = ( -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 5 - }, -/area/bridge) -"auS" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door/window{ - dir = 8; - icon_state = "right"; - name = "Bridge Desk"; - opacity = 1; - req_access_txt = "0"; - req_one_access_txt = "19;41" - }, -/turf/open/floor/carpet, -/area/bridge) -"auT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/carpet, -/area/bridge) -"auU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/carpet, -/area/bridge) -"auV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/door{ - id = "bridge"; - name = "Bridge Lockdown"; - pixel_y = 24; - req_one_access_txt = "19;14" - }, -/turf/open/floor/carpet, -/area/bridge) -"auW" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door/window/eastright{ - name = "Bridge Desk"; - req_access_txt = "0"; - req_one_access_txt = "19;41" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/carpet, -/area/bridge) -"auX" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_y = 30 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 9 - }, -/area/bridge) -"auY" = ( -/obj/machinery/camera{ - c_tag = "Bridge Main 1" - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"auZ" = ( -/obj/structure/sign/pods{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"ava" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"avb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief/private) -"avc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"avd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - departmentType = 3; - name = "Chief Engineer RC"; - pixel_x = 30 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"ave" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Cargo Warehouse APC"; - areastring = "/area/quartermaster/storage"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"avg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"avh" = ( -/obj/machinery/door/poddoor/shutters{ - id = "CargoWarehouse" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"avi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"avj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"avk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"avl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"avm" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"avn" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/shuttle/supply) -"avo" = ( -/obj/structure/closet/secure_closet/miner, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"avp" = ( -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"avq" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"avr" = ( -/obj/machinery/door/airlock/glass_mining{ - cyclelinkeddir = 8; - name = "Mining Dock"; - req_access_txt = "48" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"avs" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Mining Dock Airlock"; - req_access = null; - req_access_txt = "48"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"avt" = ( -/obj/machinery/door/airlock/titanium{ - name = "Mining Shuttle Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/shuttle/mining) -"avu" = ( -/obj/docking_port/mobile{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining"; - name = "mining shuttle"; - port_angle = 90; - width = 7 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining_home"; - name = "mining shuttle bay"; - width = 7 - }, -/obj/machinery/door/airlock/titanium{ - name = "Mining Shuttle Airlock"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/shuttle/mining) -"avv" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/labor) -"avw" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/labor) -"avx" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/space) -"avy" = ( -/turf/open/floor/plasteel, -/area/security/main) -"avA" = ( -/obj/structure/table, -/obj/item/storage/box/prisoner, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"avB" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Security Equipment APC"; - areastring = "/area/security/main"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"avI" = ( -/turf/closed/wall, -/area/security/brig) -"avN" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"avO" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"avP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"avQ" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"avR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"avS" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"avT" = ( -/obj/structure/bed, -/obj/item/bedsheet/yellow, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"avU" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"avV" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/female) -"avW" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Male Sleeping Quarters APC"; - areastring = "/area/crew_quarters/dorms/male"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/dorms/male) -"avX" = ( -/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/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"avY" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Chief Medical Officer's Private Quarters APC"; - areastring = "/area/crew_quarters/heads/cmo/private"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"avZ" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"awa" = ( -/obj/structure/closet{ - icon_door = "blue"; - name = "Chief Medical Officer's Uniform" - }, -/obj/item/clothing/shoes/sneakers/brown/cmo, -/obj/item/clothing/under/rank/chief_medical_officer, -/obj/item/clothing/suit/toggle/labcoat/cmo, -/obj/item/clothing/gloves/color/latex/nitrile, -/obj/item/storage/belt/medical, -/obj/item/storage/backpack/medic, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"awb" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"awc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"awd" = ( -/obj/machinery/door/airlock/medical{ - name = "Chief Medical Officer's Personal Quarters"; - req_access_txt = "40" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"awe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"awf" = ( -/turf/open/floor/plasteel/black, -/area/bridge) -"awg" = ( -/turf/open/floor/plasteel/darkblue/side{ - dir = 4 - }, -/area/bridge) -"awh" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/device/aicard, -/turf/open/floor/carpet, -/area/bridge) -"awi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/bridge) -"awj" = ( -/turf/open/floor/carpet, -/area/bridge) -"awk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/bridge) -"awl" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/folder, -/turf/open/floor/carpet, -/area/bridge) -"awm" = ( -/turf/open/floor/plasteel/darkblue/side{ - dir = 8 - }, -/area/bridge) -"awn" = ( -/obj/machinery/door/airlock/engineering{ - name = "Chief Engineer's Personal Quarters"; - req_access_txt = "56" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"awo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"awp" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"awq" = ( -/obj/structure/closet{ - icon_door = "yellow"; - name = "Chief Engineer's Uniform" - }, -/obj/item/clothing/shoes/sneakers/brown/ce, -/obj/item/clothing/under/rank/chief_engineer, -/obj/item/storage/backpack/industrial, -/obj/item/clothing/gloves/color/black/ce, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"awr" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"aws" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"awt" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"awu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/conveyor_switch{ - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"awv" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aww" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"awx" = ( -/obj/machinery/computer/shuttle/labor, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -31 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"awy" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"awz" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hos) -"awA" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/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{ - dir = 9 - }, -/area/security/main) -"awC" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/security/main) -"awD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"awE" = ( -/turf/open/floor/plasteel, -/area/security/processing) -"awF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/processing) -"awG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/processing) -"awH" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/main) -"awI" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/main) -"awJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/brig) -"awK" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"awL" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/red, -/area/security/warden) -"awM" = ( -/obj/structure/closet/secure_closet/warden, -/obj/item/device/radio, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/showroomfloor, -/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, -/area/security/warden) -"awO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"awP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"awR" = ( -/obj/structure/table, -/obj/machinery/computer/med_data/laptop, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/security/brig) -"awS" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/security/brig) -"awT" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"awU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"awX" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"awY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"awZ" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"axa" = ( -/turf/closed/wall, -/area/crew_quarters/dorms/male) -"axb" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/machinery/computer/mecha, -/turf/open/floor/carpet, -/area/bridge) -"axc" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/carpet, -/area/bridge) -"axd" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/machinery/computer/cargo/request, -/turf/open/floor/carpet, -/area/bridge) -"axe" = ( -/turf/closed/wall, -/area/crew_quarters/heads/chief/private) -"axf" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"axg" = ( -/obj/structure/closet/crate/freezer, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"axh" = ( -/obj/machinery/button/door{ - id = "CargoWarehouse"; - name = "Cargo Warehouse Shutters"; - pixel_x = 24 - }, -/obj/structure/closet/crate/freezer, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"axi" = ( -/obj/machinery/button/door{ - id = "CargoWarehouse"; - name = "Cargo Warehouse Shutters"; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"axj" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #1" - }, -/mob/living/simple_animal/bot/mulebot{ - beacon_freq = 1400; - home_destination = "QM #1"; - suffix = "#1" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"axk" = ( -/turf/open/floor/mineral/titanium/blue, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/supply) -"axl" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "QM #4" - }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #4"; - suffix = "#2" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"axm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"axn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"axo" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/quartermaster/miningdock) -"axp" = ( -/obj/machinery/computer/shuttle/mining, -/obj/machinery/camera{ - c_tag = "Mining Bay"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"axq" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"axr" = ( -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating, -/area/shuttle/mining) -"axs" = ( -/obj/structure/ore_box, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"axt" = ( -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"axu" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"axv" = ( -/obj/machinery/mineral/labor_claim_console{ - machinedir = 2; - pixel_x = 30; - pixel_y = 30 - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"axw" = ( -/obj/machinery/door/airlock/titanium{ - name = "Labor Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"axy" = ( -/obj/structure/closet/l3closet/scientist, -/obj/structure/sign/goldenplaque{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"axz" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/security/processing) -"axA" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"axB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"axD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/main) -"axF" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"axI" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"axK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"axL" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor/westright{ - name = "Warden's Desk"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red, -/area/security/warden) -"axN" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/white, -/area/security/brig) -"axO" = ( -/turf/open/floor/plasteel/white, -/area/security/brig) -"axP" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/plasteel/black, -/area/security/brig) -"axQ" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/security/brig) -"axR" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"axT" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"axU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"axV" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"axW" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Dorm SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"axX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"axY" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"axZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aya" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ayb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ayc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ayd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aye" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"ayf" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"ayg" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"ayh" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"ayi" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hos/private) -"ayj" = ( -/obj/structure/bed, -/obj/item/bedsheet/hos, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/storage/secure/safe{ - pixel_x = -28 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"ayk" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"ayl" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aym" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"ayn" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hos/private) -"ayp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"ayq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"ayr" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/darkblue, -/area/bridge) -"ays" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/card, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/bridge) -"ayt" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/communications, -/turf/open/floor/carpet, -/area/bridge) -"ayu" = ( -/obj/structure/window/reinforced, -/obj/machinery/computer/security, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge) -"ayv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"ayw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"ayx" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"ayy" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hor/private) -"ayz" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"ayA" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"ayB" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"ayC" = ( -/obj/structure/bed, -/obj/item/bedsheet/rd, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/sign/poster/contraband/lamarr{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"ayD" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hor/private) -"ayE" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"ayF" = ( -/obj/structure/closet, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"ayG" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"ayH" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Fore Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/cargo_west"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"ayI" = ( -/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/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"ayJ" = ( -/obj/structure/closet/crate/internals, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"ayK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/camera{ - c_tag = "Cargo Western Loading Bay 1"; - dir = 5; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayL" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayM" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #2" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"ayN" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"ayO" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "QM #5" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"ayP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"ayT" = ( -/obj/machinery/door/airlock/mining{ - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ayU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ayV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ayW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ayX" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"ayY" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating/airless, -/area/shuttle/mining) -"ayZ" = ( -/obj/machinery/door/airlock/titanium{ - name = "Labor Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/labor) -"aza" = ( -/obj/machinery/mineral/stacking_machine/laborstacker{ - input_dir = 2; - output_dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/labor) -"azb" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"azc" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/security/main) -"azd" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"azf" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"azh" = ( -/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, -/area/security/brig) -"azi" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"azk" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"azl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"azn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/window/reinforced, -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel/white, -/area/security/brig) -"azo" = ( -/obj/structure/table/wood, -/obj/item/folder, -/obj/item/folder/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/security/brig) -"azp" = ( -/turf/closed/wall, -/area/security/courtroom) -"azq" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"azr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"azs" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Dorm SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"azt" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"azu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Fore Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/com_north"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"azv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azw" = ( -/obj/structure/table/wood, -/obj/item/storage/crayons, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azx" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/item/coin/silver, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azy" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azA" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"azB" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"azC" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"azD" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"azE" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/structure/window, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"azF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/fun_police{ - pixel_x = -32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"azG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"azH" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"azI" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"azJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/hos/private) -"azK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"azL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/black, -/area/bridge) -"azM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"azN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"azO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"azP" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"azQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"azR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/hor/private) -"azS" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"azT" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"azU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"azV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/item/storage/secure/safe{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"azW" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Research Director's Private Quarters APC"; - areastring = "/area/crew_quarters/heads/hor/private"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"azX" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"azY" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"azZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"aAa" = ( -/obj/machinery/door/airlock/engineering{ - name = "Cargo Warehouse"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"aAb" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aAc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aAd" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aAe" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #3" - }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #3"; - suffix = "#2" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"aAf" = ( -/obj/structure/shuttle/engine/propulsion/burst/left, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"aAg" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"aAh" = ( -/obj/structure/shuttle/engine/propulsion/burst/right, -/turf/open/floor/plating/airless, -/area/shuttle/supply) -"aAi" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "QM #6" - }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #6"; - suffix = "#2" - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"aAj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Cargo Eastern Loading Bay 2"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aAk" = ( -/obj/machinery/disposal/bin, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/miningdock) -"aAl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aAm" = ( -/obj/structure/table, -/obj/item/folder, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"aAn" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"aAo" = ( -/obj/machinery/mineral/labor_claim_console{ - machinedir = 1; - pixel_x = 30 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"aAp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/glass_security{ - name = "Head of Security's Office"; - req_access_txt = "58" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hos) -"aAq" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aAr" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel, -/area/security/main) -"aAs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner, -/area/security/main) -"aAt" = ( -/obj/structure/closet/wardrobe/red, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/main) -"aAu" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"aAv" = ( -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aAx" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aAy" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/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; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aAA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"aAC" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/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, -/turf/open/floor/plasteel/red, -/area/security/brig) -"aAE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aAF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aAG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aAI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"aAJ" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aAK" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aAL" = ( -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aAO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aAP" = ( -/turf/closed/wall/r_wall, -/area/maintenance/asteroid/fore/com_north) -"aAQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aAR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aAS" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Dorm SMES"; - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"aAU" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aAV" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aAW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aAX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/male) -"aAY" = ( -/obj/machinery/light_switch{ - pixel_x = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/dorms/male) -"aAZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 6 - }, -/area/crew_quarters/dorms/male) -"aBa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/male) -"aBb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/male) -"aBc" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/dorms/male) -"aBd" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Security's Desk"; - departmentType = 5; - name = "Head of Security RC"; - pixel_x = -30 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBe" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/black, -/area/bridge) -"aBg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/bridge) -"aBh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/bridge) -"aBi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aBj" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aBk" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Research Director's Desk"; - departmentType = 5; - name = "Research Director RC"; - pixel_x = 30 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aBl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera/motion{ - c_tag = "Bridge Mainteance East"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"aBm" = ( -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"aBn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/office) -"aBo" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aBp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/office) -"aBq" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aBr" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/flasher{ - id = "gulagshuttleflasher"; - pixel_x = 25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"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/machinery/camera{ - c_tag = "Brig Equipment East"; - dir = 9; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"aBu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/main) -"aBv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) -"aBz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aBG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aBH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/rack, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"aBJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aBK" = ( -/obj/structure/chair/stool, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aBL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aBM" = ( -/obj/machinery/door/airlock{ - name = "Male Sleeping Quarters" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/dorms/male) -"aBN" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/male) -"aBO" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/male) -"aBP" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/male) -"aBQ" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBR" = ( -/obj/structure/closet/secure_closet/hos, -/obj/item/device/radio, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBS" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBU" = ( -/obj/machinery/door/airlock/security{ - name = "Head of Security's Personal Quarters"; - req_access_txt = "58" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"aBV" = ( -/obj/machinery/camera{ - c_tag = "Bridge Main 2"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aBW" = ( -/obj/machinery/computer/crew, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aBX" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aBY" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/machinery/light, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aBZ" = ( -/turf/open/floor/plasteel/darkblue/corner{ - dir = 8 - }, -/area/bridge) -"aCa" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/bridge) -"aCb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aCc" = ( -/turf/open/floor/plasteel/darkblue/corner, -/area/bridge) -"aCd" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aCe" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aCf" = ( -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aCg" = ( -/obj/machinery/door/airlock/research{ - name = "Research Director's Personal Quarters"; - req_access_txt = "30" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aCh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aCi" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aCj" = ( -/obj/structure/closet{ - icon_door = "pink"; - name = "Research Director's Uniform" - }, -/obj/item/clothing/shoes/sneakers/brown/rd, -/obj/item/clothing/under/rank/research_director, -/obj/item/clothing/under/rank/research_director/turtleneck, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/suit/toggle/labcoat, -/obj/item/storage/backpack/science, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aCk" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"aCl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - name = "cargo display"; - pixel_y = 32; - supply_display = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCu" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aCv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aCw" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Dock APC"; - areastring = "/area/quartermaster/miningdock"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aCx" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"aCy" = ( -/obj/machinery/door/airlock/titanium{ - id_tag = "prisonshuttle"; - name = "Labor Shuttle Airlock" - }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp"; - name = "labor camp shuttle"; - port_angle = 90; - width = 9 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_home"; - name = "fore bay 1"; - width = 9 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/labor) -"aCz" = ( -/obj/structure/disposalpipe/segment, -/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, -/area/crew_quarters/heads/hos) -"aCA" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Labor Camp Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/security/processing) -"aCB" = ( -/obj/structure/table, -/obj/item/clothing/head/beret/sec, -/turf/open/floor/plasteel, -/area/security/main) -"aCC" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aCD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"aCE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aCF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/camera{ - c_tag = "Brig Main West"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/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{ - dir = 1 - }, -/area/security/brig) -"aCI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/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{ - dir = 1 - }, -/area/security/brig) -"aCK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig Main Middle"; - dir = 6; - 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{ - dir = 1 - }, -/area/security/brig) -"aCN" = ( -/obj/structure/sign/bluecross_2{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aCU" = ( -/obj/structure/closet/secure_closet/courtroom, -/obj/item/gavelhammer, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aCV" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aCW" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aCY" = ( -/turf/open/floor/plasteel/neutral, -/area/security/courtroom) -"aDa" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Courtroom North"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aDb" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aDc" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aDd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aDe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/table, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aDf" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Dorm Commons South"; - dir = 10 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDk" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aDl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms/male) -"aDm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/male) -"aDn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/male) -"aDo" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/dorms/male) -"aDp" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 9 - }, -/area/crew_quarters/dorms/male) -"aDq" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/dorms/male) -"aDr" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hos/private) -"aDs" = ( -/turf/closed/wall, -/area/bridge) -"aDt" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/bridge) -"aDu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge"; - layer = 2.6; - name = "Emergency Blast Door" - }, -/turf/open/floor/plating, -/area/bridge) -"aDw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "bridge"; - layer = 2.6; - name = "Emergency Blast Door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/bridge) -"aDy" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"aDz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"aDA" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aDB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDD" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aDE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown, -/area/quartermaster/office) -"aDF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown, -/area/quartermaster/office) -"aDG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/quartermaster/office) -"aDH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Cargo Hall"; - dir = 1; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "Cargo Hall East"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aDL" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plating/airless, -/area/shuttle/labor) -"aDM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"aDN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/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, -/area/security/brig) -"aDP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/brig) -"aDX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aEb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"aEg" = ( -/obj/machinery/door/airlock/security{ - name = "Courtroom"; - req_access = null; - req_access_txt = "1" - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aEh" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/courtroom) -"aEi" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/courtroom) -"aEj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/security/courtroom) -"aEk" = ( -/obj/structure/table/wood, -/obj/item/gavelblock, -/turf/open/floor/plasteel/neutral, -/area/security/courtroom) -"aEm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aEn" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/security/courtroom) -"aEo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aEp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"aEq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Dorm Toilets APC"; - areastring = "/area/crew_quarters/toilet"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aEr" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"aEs" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aEt" = ( -/turf/open/floor/plasteel/neutral/side, -/area/crew_quarters/locker) -"aEu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aEv" = ( -/obj/structure/bed, -/obj/item/bedsheet/yellow, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aEw" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aEx" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aEy" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/bridge) -"aEz" = ( -/obj/structure/rack, -/obj/item/device/flashlight, -/turf/open/floor/plating, -/area/bridge) -"aEA" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Head of Security's Personal Quarters APC"; - areastring = "/area/crew_quarters/heads/hos/private"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/bridge) -"aEB" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/bridge) -"aEC" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Bridge APC"; - areastring = "/area/bridge"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/bridge) -"aED" = ( -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEE" = ( -/obj/machinery/camera{ - c_tag = "Bridge Midway 1" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEF" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEG" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEH" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 1 - }, -/area/bridge) -"aEJ" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aEL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aEM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/corner{ - dir = 4 - }, -/area/bridge) -"aEN" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEO" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEP" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aEQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"aER" = ( -/turf/closed/wall, -/area/quartermaster/qm/private) -"aES" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aET" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aEU" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aEV" = ( -/obj/structure/bed, -/obj/item/bedsheet/qm, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/storage/secure/safe{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aEW" = ( -/turf/closed/wall/r_wall, -/area/quartermaster/qm/private) -"aEX" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Bay"; - req_access_txt = "0"; - req_one_access_txt = "31;48" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aEY" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Bay"; - req_access_txt = "0"; - req_one_access_txt = "31;48" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aEZ" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/fourcolor, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aFa" = ( -/obj/structure/table, -/obj/item/clothing/gloves/fingerless, -/obj/item/clothing/head/soft, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aFb" = ( -/obj/structure/closet/wardrobe/cargotech, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aFc" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aFd" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill, -/obj/item/hand_labeler_refill, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aFe" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/labor) -"aFf" = ( -/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" - }, -/turf/open/floor/plasteel, -/area/security/main) -"aFh" = ( -/obj/effect/landmark/start/security_officer, -/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, -/area/security/main) -"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 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"aFk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/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/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, -/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" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/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, -/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, -/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, -/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, -/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, -/area/security/brig) -"aFs" = ( -/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, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aFt" = ( -/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/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aFu" = ( -/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 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aFv" = ( -/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, -/area/security/brig) -"aFw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/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{ - dir = 8 - }, -/area/security/brig) -"aFy" = ( -/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" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aFz" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aFA" = ( -/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, -/area/security/brig) -"aFB" = ( -/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, -/area/security/brig) -"aFC" = ( -/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, -/area/security/brig) -"aFD" = ( -/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/side, -/area/security/brig) -"aFE" = ( -/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, -/area/security/brig) -"aFF" = ( -/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, -/area/security/brig) -"aFG" = ( -/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, -/area/security/brig) -"aFJ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/courtroom) -"aFK" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - name = "disposal pipe - Chemistry"; - sortType = 11 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"aFM" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/security/courtroom) -"aFN" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/security/courtroom) -"aFR" = ( -/turf/closed/wall, -/area/crew_quarters/toilet) -"aFS" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aFT" = ( -/obj/structure/closet/secure_closet/personal, -/obj/machinery/light, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aFU" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aFV" = ( -/obj/structure/bed, -/obj/item/bedsheet/yellow, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aFW" = ( -/obj/machinery/light/small, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aFX" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aFY" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/turf/open/floor/plasteel/black, -/area/crew_quarters/dorms/male) -"aFZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/bridge) -"aGa" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/bridge) -"aGb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/bridge) -"aGc" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Head of Personnel's Office APC"; - areastring = "/area/crew_quarters/heads/hop"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/bridge) -"aGd" = ( -/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/plating, -/area/bridge) -"aGe" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Bridge APC Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/bridge) -"aGf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGg" = ( -/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 = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGh" = ( -/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/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGi" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGj" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/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/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aGm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/qm/private) -"aGn" = ( -/obj/structure/table/wood, -/obj/item/device/modular_computer/laptop/preset/civillian, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aGo" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aGq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Quartermaster RC"; - pixel_x = 30 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aGr" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Quartermaster's Private Quarters APC"; - areastring = "/area/quartermaster/qm/private"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aGs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aGt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"aGu" = ( -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/office) -"aGv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/office) -"aGw" = ( -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Cargo RC"; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGx" = ( -/obj/machinery/autolathe, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGy" = ( -/obj/structure/table, -/obj/item/device/multitool, -/obj/machinery/camera{ - c_tag = "Cargo Desk"; - dir = 6; - network = list("SS13","QM") - }, -/obj/machinery/status_display{ - density = 0; - name = "cargo display"; - pixel_y = 32; - supply_display = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGz" = ( -/obj/structure/table, -/obj/item/folder, -/obj/item/stamp/denied{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/obj/item/stamp, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGA" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGB" = ( -/obj/structure/table, -/obj/machinery/computer/stockexchange, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aGC" = ( -/turf/closed/wall, -/area/security/checkpoint/supply) -"aGD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"aGE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"aGF" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/detectives_office) -"aGG" = ( -/turf/closed/wall, -/area/lawoffice) -"aGH" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/lawoffice) -"aGK" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/brig) -"aGL" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aGM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aGN" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"aGP" = ( -/turf/open/floor/plasteel, -/area/security/brig) -"aGQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/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/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aGR" = ( -/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/showroomfloor, -/area/security/brig) -"aGU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/courtroom) -"aGV" = ( -/turf/open/floor/plasteel, -/area/security/courtroom) -"aGW" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/security/courtroom) -"aGY" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aGZ" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHa" = ( -/obj/machinery/door/airlock/glass{ - name = "Dormitories" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aHb" = ( -/obj/machinery/door/airlock/glass{ - name = "Dormitories" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aHc" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hop) -"aHd" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hop) -"aHe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aHf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aHg" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/bridge) -"aHh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aHi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aHj" = ( -/obj/machinery/door/airlock/mining{ - name = "Quartermaster's Private Quarters"; - req_access_txt = "41" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aHk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aHl" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aHm" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aHn" = ( -/obj/structure/closet{ - icon_door = "orange"; - name = "Quartermaster's Uniform" - }, -/obj/item/clothing/shoes/sneakers/brown/qm, -/obj/item/clothing/under/rank/cargo, -/obj/item/storage/backpack, -/obj/item/clothing/gloves/color/black, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"aHo" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"aHp" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Gravity Generator APC"; - areastring = "/area/maintenance/asteroid/fore/cargo_west"; - pixel_y = -24 - }, -/turf/closed/mineral, -/area/maintenance/asteroid/fore/cargo_west) -"aHq" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aHr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aHs" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aHt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"aHu" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/supply) -"aHv" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/supply) -"aHw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/supply) -"aHx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/supply) -"aHy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aHB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aHC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/lawoffice) -"aHE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/lawoffice) -"aHF" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aHH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aHJ" = ( -/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, -/area/security/brig) -"aHK" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"aHL" = ( -/obj/structure/chair, -/obj/machinery/camera{ - c_tag = "Brig Lobby West"; - dir = 4; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aHM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"aHN" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"aHO" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/brig) -"aHP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"aHR" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aHS" = ( -/obj/machinery/camera{ - c_tag = "Brig Lobby Checkpoint"; - dir = 9; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aHT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/courtroom) -"aHV" = ( -/obj/machinery/door/airlock/glass{ - name = "Courtroom"; - req_access_txt = "1" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aHW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/security/courtroom) -"aHX" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHY" = ( -/obj/machinery/door/airlock{ - id_tag = "b3" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aHZ" = ( -/obj/structure/urinal{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aIa" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aIb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aIc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aId" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"aIe" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aIf" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aIg" = ( -/obj/structure/closet/wardrobe/pjs, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aIh" = ( -/obj/structure/bed, -/obj/item/bedsheet/hop, -/obj/effect/landmark/start/head_of_personnel, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aIi" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aIj" = ( -/obj/structure/closet/secure_closet/hop, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/storage/secure/safe{ - pixel_y = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aIk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/hop) -"aIl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Personnel's Desk"; - departmentType = 5; - name = "Head of Personnel RC"; - pixel_y = 30 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aIm" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aIn" = ( -/obj/structure/bed/dogbed, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/mob/living/simple_animal/pet/dog/corgi/Ian, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aIo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/hop) -"aIp" = ( -/obj/machinery/door/airlock/glass_command{ - cyclelinkeddir = null; - name = "Head of Personnel's Office"; - req_access_txt = "57"; - req_one_access = null; - req_one_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aIq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/bridge) -"aIr" = ( -/obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aIs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aIt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/bridge) -"aIu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aIv" = ( -/obj/machinery/camera{ - c_tag = "Bridge Midway 2"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aIw" = ( -/obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aIx" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aIy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aIz" = ( -/mob/living/simple_animal/sloth/paperwork, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aIA" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"aIB" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/supply) -"aIC" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"aID" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/supply) -"aIE" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Cargo Security Checkpoint APC"; - areastring = "/area/security/checkpoint/supply"; - pixel_x = -23; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aIF" = ( -/obj/effect/landmark/secequipment, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"aIG" = ( -/obj/effect/landmark/secequipment, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/main) -"aII" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/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, -/area/security/detectives_office) -"aIM" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/lawoffice) -"aIN" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/lawoffice) -"aIO" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/lawoffice) -"aIP" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"aIQ" = ( -/turf/open/floor/wood, -/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, -/area/security/brig) -"aIS" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/brig) -"aIT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/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, -/area/security/brig) -"aIW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/courtroom) -"aIX" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aIY" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aIZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/courtroom) -"aJa" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aJb" = ( -/obj/machinery/button/door{ - id = "b3"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aJc" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aJd" = ( -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aJe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -29 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aJf" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"aJg" = ( -/obj/structure/closet/wardrobe/grey, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aJh" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aJj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aJk" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel's Private Quarters"; - req_access = null; - req_access_txt = "57" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aJl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aJm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aJn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aJo" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aJp" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aJq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aJr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aJs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aJt" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Fore Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/com_east"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aJu" = ( -/turf/closed/wall, -/area/teleporter/quantum/cargo) -"aJv" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/teleporter/quantum/cargo) -"aJw" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bot, -/area/quartermaster/office) -"aJy" = ( -/obj/machinery/photocopier, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJz" = ( -/obj/machinery/computer/cargo, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJA" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJB" = ( -/obj/structure/table, -/obj/machinery/computer/stockexchange, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJC" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aJE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"aJF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/security/cargo, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/supply) -"aJG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for making sure Cargo isn't hiding an armory bigger than Security's."; - name = "Cargo Monitor"; - network = list("QM"); - pixel_y = -32 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/supply) -"aJH" = ( -/obj/structure/filingcabinet, -/obj/machinery/light, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/supply) -"aJI" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/newscaster/security_unit{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/supply) -"aJJ" = ( -/obj/machinery/camera{ - c_tag = "Cargo Security Checkpoint"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/supply) -"aJK" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/coin/silver, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"aJL" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"aJM" = ( -/obj/structure/table/wood, -/obj/machinery/computer/med_data/laptop, -/turf/open/floor/carpet, -/area/security/detectives_office) -"aJN" = ( -/obj/structure/table/wood, -/obj/item/storage/box/evidence, -/obj/item/hand_labeler, -/obj/item/hand_labeler_refill{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/machinery/camera{ - c_tag = "Detective's Office"; - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aJQ" = ( -/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, -/area/lawoffice) -"aJR" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/holopad, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"aJS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aJU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/brig) -"aJW" = ( -/obj/effect/spawner/structure/window/reinforced, -/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/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "brigfront"; - name = "emergency blast door" - }, -/turf/open/floor/plating, -/area/security/brig) -"aJX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"aJZ" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aKa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aKb" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aKc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aKd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aKe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"aKf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aKg" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aKh" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKi" = ( -/obj/structure/chair, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKj" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKk" = ( -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKn" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "bridge"; - layer = 2.6; - name = "Emergency Blast Door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/bridge) -"aKp" = ( -/turf/closed/wall, -/area/hallway/primary/fore) -"aKq" = ( -/turf/closed/wall/rust, -/area/hallway/primary/fore) -"aKr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aKs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Cargo Quantum Pad APC"; - areastring = "/area/teleporter/quantum/cargo"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aKu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aKv" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Cargo Office"; - req_access_txt = "0"; - req_one_access_txt = "50;48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aKw" = ( -/obj/machinery/mineral/ore_redemption, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aKx" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northright{ - name = "Cargo Desk"; - req_one_access_txt = "50;48" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/office) -"aKA" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aKB" = ( -/obj/structure/table/wood, -/obj/item/folder/blue{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aKC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/lawoffice) -"aKD" = ( -/obj/machinery/photocopier, -/obj/machinery/button/door{ - id = "lawyer"; - name = "Privacy Shutters"; - pixel_x = 24; - pixel_y = -3 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aKE" = ( -/obj/machinery/camera{ - c_tag = "Brig Holding Cell"; - dir = 4; - network = list("SS13","Security") - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aKF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aKG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aKH" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"aKI" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "b2"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = -24 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aKJ" = ( -/obj/machinery/door/airlock{ - id_tag = "b2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aKK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aKL" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aKM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aKN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aKO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aKP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aKQ" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aKR" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKS" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"aKU" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/machinery/keycard_auth{ - pixel_x = -24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKV" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Head of Personnel's Office"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/recharger, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKW" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKX" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/stamp/hop, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKY" = ( -/obj/machinery/computer/card, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aKZ" = ( -/obj/structure/chair/comfy, -/obj/machinery/button/flasher{ - id = "hopflash"; - name = "Line Flash"; - pixel_x = 32 - }, -/obj/machinery/button/door{ - id = "hopshutter"; - name = "Desk Shutters"; - pixel_x = 24; - pixel_y = 8; - req_access_txt = "57" - }, -/obj/machinery/button/door{ - id = "hopexternal"; - name = "External Lockdown"; - pixel_x = 24; - req_access_txt = "57" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"aLa" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 8 - }, -/area/bridge) -"aLb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aLc" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aLd" = ( -/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/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"aLe" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aLf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aLg" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 4 - }, -/area/bridge) -"aLh" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aLi" = ( -/obj/machinery/camera{ - c_tag = "Command SMES"; - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aLj" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/sign/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aLk" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aLl" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aLm" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aLn" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aLo" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aLp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aLq" = ( -/obj/machinery/quantumpad, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aLr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Quantum Pad"; - dir = 8; - network = list("SS13","QM") - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aLs" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLt" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLu" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLA" = ( -/obj/machinery/computer/cargo/request, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aLD" = ( -/obj/structure/filingcabinet, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aLE" = ( -/obj/structure/table/wood, -/obj/item/device/camera/detective, -/obj/item/lighter, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aLH" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/wood, -/area/lawoffice) -"aLI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/lawoffice) -"aLJ" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Lawyer's Office APC"; - areastring = "/area/lawoffice"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/wood, -/area/lawoffice) -"aLM" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aLP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aLR" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aLS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aLT" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/locker) -"aLU" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aLV" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/machinery/camera{ - c_tag = "Dorm Lockers"; - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"aLW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopshutter" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) -"aLX" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopshutter" - }, -/obj/machinery/door/window/northleft{ - layer = 2.9; - level = 2; - name = "Desk Door"; - req_access_txt = "57" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) -"aLY" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 8 - }, -/area/bridge) -"aLZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"aMa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aMb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/bridge) -"aMc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"aMd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 4 - }, -/area/bridge) -"aMe" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aMf" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aMg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aMh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aMi" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aMj" = ( -/obj/item/chair, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aMk" = ( -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aMl" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aMm" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aMn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aMo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 32 - }, -/obj/item/paper/guides/quantumpad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"aMp" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/office) -"aMq" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aMr" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aMs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aMt" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Fore Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/cargo_south"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aMw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"aMx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aMy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"aMA" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aMD" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aME" = ( -/obj/machinery/photocopier, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aMK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/brig) -"aMM" = ( -/obj/structure/table, -/obj/item/storage/box/cups, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aMN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aMO" = ( -/obj/machinery/camera{ - c_tag = "Courtroom South"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aMP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aMS" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "b1"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = -24 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aMT" = ( -/obj/machinery/door/airlock{ - id_tag = "b1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aMU" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/camera{ - c_tag = "Dorm Bathroom"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aMV" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Dorm Laundry Room"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aMW" = ( -/obj/structure/table, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aMX" = ( -/obj/structure/closet/crate/bin{ - name = "laundry bin" - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/locker) -"aMY" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Head of Personnel's Queue Line"; - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/crew_quarters/heads/hop) -"aMZ" = ( -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/crew_quarters/heads/hop) -"aNa" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "hopflash"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/crew_quarters/heads/hop) -"aNb" = ( -/obj/machinery/camera{ - c_tag = "Bridge Midway 3"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 8 - }, -/area/bridge) -"aNc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"aNd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aNe" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/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/chair/stool, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aNf" = ( -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/computer/station_alert, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aNg" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"aNh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aNi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aNj" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aNk" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aNl" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aNm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aNn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aNo" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aNp" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aNq" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aNr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/cargo) -"aNs" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/cargo) -"aNt" = ( -/obj/structure/table, -/obj/item/device/multitool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/screwdriver, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/cargo) -"aNu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/office) -"aNv" = ( -/obj/structure/table, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aNw" = ( -/obj/effect/landmark/blobstart, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aNx" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aNy" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"aNC" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Fore Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/com_west"; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/end, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aND" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aNE" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aNG" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/brig) -"aNH" = ( -/obj/effect/spawner/structure/window/reinforced, -/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/machinery/door/poddoor/preopen{ - id = "brigfront"; - name = "emergency blast door" - }, -/turf/open/floor/plating, -/area/security/brig) -"aNJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aNK" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/courtroom) -"aNL" = ( -/obj/machinery/door/airlock/glass{ - name = "Courtroom" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"aNM" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/courtroom) -"aNN" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aNO" = ( -/obj/machinery/door/airlock/glass{ - name = "Locker Room" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aNP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/locker) -"aNQ" = ( -/obj/machinery/door/airlock/glass{ - name = "Locker Room" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aNR" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aNS" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aNT" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aNU" = ( -/obj/machinery/door/poddoor/preopen{ - id = "hopexternal"; - layer = 2.6 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/crew_quarters/heads/hop) -"aNV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hopexternal"; - layer = 2.6 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) -"aNW" = ( -/obj/machinery/door/poddoor/preopen{ - id = "hopexternal"; - layer = 2.6 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/crew_quarters/heads/hop) -"aNX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall, -/area/hallway/primary/fore) -"aNY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Command SMES Access"; - req_access_txt = "10;11;12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"aNZ" = ( -/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, -/area/maintenance/asteroid/fore/com_east) -"aOa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aOb" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/fore) -"aOc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"aOd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"aOe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"aOf" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aOg" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/glass{ - name = "Cargo Quantum Pad" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/cargo) -"aOh" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/cargo) -"aOi" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"aOj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/brown/corner{ - dir = 1 - }, -/area/quartermaster/office) -"aOk" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/office) -"aOl" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Cargo Lobby"; - dir = 8; - network = list("SS13","QM") - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aOm" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/quartermaster/office) -"aOq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aOs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"aOt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"aOu" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall, -/area/hallway/primary/starboard/fore) -"aOv" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"aOw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 2"; - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOA" = ( -/obj/machinery/light{ - dir = 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/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"aOB" = ( -/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/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"aOD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/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{ - dir = 1 - }, -/area/hallway/primary/fore) -"aOE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"aOF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOH" = ( -/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/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOJ" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aOM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 4"; - dir = 6 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aON" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOO" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 5"; - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aOU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aOV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aOW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aOZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 6"; - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPa" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aPc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 7"; - dir = 6 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPd" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPe" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPf" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPg" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPh" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPi" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPj" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPl" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPm" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Security"; - location = "CommandMiddle2"; - name = "navigation beacon (Command-Middle 2)" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPn" = ( -/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 = "Command Asteroid Hall 8"; - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPq" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPs" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPt" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPv" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPw" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPx" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPy" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 9"; - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPz" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPA" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPB" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"aPC" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"aPD" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPH" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPJ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aPL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aPM" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aPN" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aPO" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aPS" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"aPT" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"aPU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"aPV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aPW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aPX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aPY" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQa" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQg" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQi" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQj" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQm" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQn" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQr" = ( -/obj/effect/landmark/lightsout, -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQv" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQA" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQB" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aQC" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aQD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aQE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aQF" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aQG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/brown/corner{ - dir = 4 - }, -/area/quartermaster/office) -"aQH" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aQI" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aQK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"aQN" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"aQO" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQS" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aQU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aQV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/science{ - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/supply{ - dir = 4; - icon_state = "direction_supply"; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = 32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aQW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aQZ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRa" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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/neutral/corner, -/area/hallway/primary/fore) -"aRf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/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, -/area/hallway/primary/fore) -"aRh" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = -32; - pixel_y = -24 - }, -/obj/structure/sign/directions/security{ - dir = 8; - icon_state = "direction_sec"; - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = -32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aRk" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringMiddle"; - location = "CommandMiddle"; - name = "navigation beacon (Command-Middle)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aRl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/supply{ - dir = 4; - icon_state = "direction_supply"; - pixel_x = 32; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aRm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRn" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRt" = ( -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRu" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRv" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aRw" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aRx" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRy" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRz" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aRA" = ( -/obj/machinery/camera{ - c_tag = "Cargo Asteroid Hall 1"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aRF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRH" = ( -/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/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"aRI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/sign/directions/evac{ - pixel_x = -32; - pixel_y = -24 - }, -/obj/structure/sign/directions/medical{ - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/sign/directions/security{ - dir = 8; - icon_state = "direction_sec"; - pixel_x = -32; - pixel_y = -40 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aRJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CommandMiddle"; - location = "Cargo"; - name = "navigation beacon (Cargo)" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aRK" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aRL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"aRM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aRP" = ( -/obj/structure/rack, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"aRQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance/external{ - id_tag = "GulagCivExit3"; - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aRR" = ( -/turf/closed/wall, -/area/teleporter/quantum/security) -"aRS" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/security) -"aRT" = ( -/obj/machinery/door/airlock/glass{ - name = "Security Quantum Pad" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/security) -"aRU" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/security) -"aRV" = ( -/turf/closed/wall, -/area/janitor) -"aRW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/janitor) -"aRX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/janitor) -"aRY" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/janitor) -"aRZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/primary/fore) -"aSa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/primary/fore) -"aSb" = ( -/obj/machinery/door/airlock/vault{ - icon_state = "door_locked"; - locked = 1; - req_access_txt = "53" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/hallway/primary/fore) -"aSc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/primary/fore) -"aSd" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/atmos{ - name = "Command Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aSh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"aSi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"aSj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/atmos{ - name = "Cargo Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aSk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aSl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard/fore) -"aSm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aSn" = ( -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aSo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/brown/corner, -/area/quartermaster/office) -"aSq" = ( -/obj/machinery/door/airlock/maintenance{ - id_tag = "GulagCivExit2"; - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aSr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSt" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "GulagCivExit3"; - name = "Gulag Door Exit"; - normaldoorcontrol = 1; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aSv" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aSw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aSx" = ( -/obj/structure/table, -/obj/item/device/multitool, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/screwdriver, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/security) -"aSy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/security) -"aSz" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27 - }, -/obj/item/paper/guides/quantumpad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/security) -"aSA" = ( -/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" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"aSB" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"aSC" = ( -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Command Asteroid Solars Maintenance APC"; - areastring = "/area/maintenance/asteroid/fore/com_south"; - pixel_x = 23; - pixel_y = 2 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"aSD" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/janitor) -"aSE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - req_access_txt = "26" - }, -/turf/open/floor/plating, -/area/janitor) -"aSF" = ( -/turf/open/floor/plasteel, -/area/janitor) -"aSG" = ( -/obj/structure/bed/dogbed, -/mob/living/simple_animal/hostile/lizard{ - name = "Wags-His-Tail"; - real_name = "Wags-His-Tail" - }, -/turf/open/floor/plasteel, -/area/janitor) -"aSH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/vehicle/janicart, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/janitor) -"aSI" = ( -/obj/vehicle/janicart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/janitor) -"aSJ" = ( -/obj/structure/table, -/obj/item/storage/box/mousetraps, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/storage/box/mousetraps, -/turf/open/floor/plasteel, -/area/janitor) -"aSK" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/paper/fluff/stations/cere/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"aSL" = ( -/obj/machinery/light_switch{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/janitor) -"aSM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/janitor) -"aSN" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aSO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Vault Airlock"; - dir = 5 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aSP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aSQ" = ( -/obj/structure/table, -/obj/item/phone, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aSR" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSS" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Output"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aST" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSU" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aSV" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"aSW" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aSX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aSZ" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTc" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTd" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aTg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8; - name = "Cargo Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTi" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTj" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Input"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTn" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Output"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTp" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aTq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Cargo Asteroid Hall 2"; - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aTr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aTs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aTt" = ( -/obj/machinery/button/door{ - id = "GulagCivExit2"; - name = "Gulag Door Exit"; - normaldoorcontrol = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aTu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aTw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aTx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Security Quantum Pad APC"; - areastring = "/area/teleporter/quantum/security"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aTy" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"aTz" = ( -/turf/closed/mineral, -/area/security/prison) -"aTA" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plasteel, -/area/janitor) -"aTB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/janitor) -"aTC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 4; - name = "Custodial APC"; - areastring = "/area/janitor"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange, -/turf/open/floor/plasteel, -/area/janitor) -"aTD" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -29 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aTE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aTF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aTG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Command Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTL" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aTM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/obj/machinery/camera{ - c_tag = "Cargo Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aTP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aTR" = ( -/obj/machinery/light/small, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"aTS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aTU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aTV" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/teleporter/quantum/security) -"aTW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"aTX" = ( -/obj/structure/closet/jcloset, -/turf/open/floor/plasteel, -/area/janitor) -"aTY" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/janitor) -"aTZ" = ( -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/janitor) -"aUa" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aUb" = ( -/turf/open/floor/plasteel/stairs, -/area/ai_monitored/nuke_storage) -"aUc" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/power/apc{ - dir = 4; - name = "Vault APC"; - areastring = "/area/ai_monitored/nuke_storage"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aUd" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUe" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aUf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUg" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aUh" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aUi" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aUj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aUk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aUl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aUm" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hallway 1"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aUn" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aUo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aUp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aUq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; - name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_x = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"aUr" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"aUs" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"aUt" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/key/janitor, -/obj/machinery/camera{ - c_tag = "Custodials"; - dir = 5 - }, -/obj/item/key/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"aUu" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/machinery/requests_console{ - department = "Janitorial"; - departmentType = 1; - pixel_y = -29 - }, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/turf/open/floor/plasteel, -/area/janitor) -"aUv" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/janitor) -"aUw" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/janitor) -"aUx" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/janitor) -"aUy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/water_vapor, -/turf/open/floor/plasteel, -/area/janitor) -"aUz" = ( -/obj/structure/janitorialcart, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/janitor) -"aUA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aUB" = ( -/obj/machinery/door/airlock/vault{ - icon_state = "door_locked"; - locked = 1; - req_access_txt = "53" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aUC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aUD" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUE" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUG" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"aUH" = ( -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 10"; - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"aUI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUJ" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUK" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aUL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aUM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aUN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aUO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Cargo SMES Access"; - req_access_txt = "10;11;12" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"aUP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"aUQ" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay SMES"; - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aUR" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"aUS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aUT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/security) -"aUU" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/asteroid/command) -"aUV" = ( -/turf/closed/wall/r_wall/rust, -/area/maintenance/solars/asteroid/command) -"aUW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Command Asteroid Solars"; - req_access_txt = "10;11;12" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aUX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/janitor) -"aUY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aUZ" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aVa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aVb" = ( -/turf/open/space, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"aVc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVe" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Input"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVf" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVh" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aVi" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVj" = ( -/obj/machinery/power/smes, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aVl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVm" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_x = -1; - pixel_y = 5 - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/gold{ - pixel_x = 1; - pixel_y = -2 - }, -/obj/item/storage/belt/champion, -/obj/machinery/camera{ - c_tag = "Vault" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVn" = ( -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVo" = ( -/obj/structure/safe, -/obj/item/twohanded/fireaxe, -/obj/item/clothing/head/bearpelt, -/obj/item/bear_armor, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/dice/d20{ - desc = "A die with twenty sides. You feel absolutely normal while looking at this."; - name = "Die of Mediocre Rolling Capability" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVp" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVq" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVr" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"aVs" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aVt" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aVu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"aVv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVw" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVy" = ( -/obj/structure/cable/orange, -/obj/machinery/power/apc{ - dir = 4; - name = "Command Asteroid Solars APC"; - areastring = "/area/maintenance/solars/asteroid/command"; - pixel_x = 23; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aVz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVB" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/asteroid/fore) -"aVC" = ( -/turf/closed/wall/r_wall/rust, -/area/maintenance/solars/asteroid/fore) -"aVD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Solars"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/maintenance/solars/asteroid/fore) -"aVE" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aVF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/computer/station_alert, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aVG" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aVH" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aVI" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aVJ" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVK" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/solar_control{ - id = "commandsolar"; - name = "Command Asteroid Solar Control"; - track = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVL" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVM" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/command) -"aVN" = ( -/obj/structure/grille, -/turf/open/space, -/area/space) -"aVO" = ( -/obj/item/coin/silver{ - pixel_x = 7; - pixel_y = 12 - }, -/obj/item/coin/silver{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/coin/silver{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/coin/silver{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/coin/silver{ - pixel_x = 5; - pixel_y = -8 - }, -/obj/structure/closet/crate{ - name = "Silver Crate" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVP" = ( -/obj/machinery/nuclearbomb/selfdestruct, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVQ" = ( -/obj/structure/filingcabinet, -/obj/item/folder/documents, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aVR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1; - name = "Command Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVS" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"aVT" = ( -/obj/machinery/power/smes, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"aVU" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aVV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"aVW" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aVX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aVY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aVZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aWa" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aWb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aWc" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_serv) -"aWd" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_serv) -"aWe" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aWf" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aWg" = ( -/obj/machinery/camera{ - c_tag = "Vault"; - dir = 5 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aWh" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/ai_monitored/nuke_storage) -"aWi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aWj" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aWk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aWl" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"aWn" = ( -/obj/structure/cable/orange, -/obj/machinery/power/apc{ - dir = 4; - name = "Fore Asteroid Solars APC"; - areastring = "/area/maintenance/solars/asteroid/fore"; - pixel_x = 23; - pixel_y = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"aWo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWp" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"aWq" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"aWr" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/airless, -/area/space) -"aWs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_serv) -"aWt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"aWu" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-09" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aWv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aWw" = ( -/obj/machinery/computer/bank_machine, -/obj/machinery/light, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aWx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aWy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aWz" = ( -/obj/machinery/power/solar_control{ - id = "foresolar"; - name = "Fore Asteroid Solar Control"; - track = 0 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aWA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"aWB" = ( -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aWC" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWD" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWE" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/solar{ - id = "commandsolar"; - name = "Fore Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/command) -"aWF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aWG" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "commandsolar"; - name = "Fore Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/command) -"aWH" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aWI" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aWJ" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aWK" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "Cargo Asteroid Hall 3"; - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aWM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"aWN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aWO" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/solar{ - id = "foresolar"; - name = "Fore Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/fore) -"aWP" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aWQ" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "foresolar"; - name = "Fore Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/fore) -"aWR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/fore) -"aWS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWT" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"aWU" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aWV" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"aWW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aWX" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/med_cargo) -"aWY" = ( -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/med_cargo) -"aWZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/med_cargo) -"aXa" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXb" = ( -/obj/item/stack/cable_coil{ - amount = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXc" = ( -/obj/item/stack/cable_coil{ - amount = 30 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXe" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXf" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aXg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"aXj" = ( -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/tracker, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXn" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"aXo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXr" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"aXs" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"aXv" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/port/west) -"aXx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"aXA" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"aXB" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/rehab_dome) -"aXC" = ( -/turf/closed/wall, -/area/crew_quarters/rehab_dome) -"aXD" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Engineering Asteroid" - }) -"aXK" = ( -/turf/closed/wall, -/area/maintenance/asteroid/port/west) -"aXL" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/port/west) -"aXM" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/port/neast) -"aXN" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aXO" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aXP" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aXQ" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aXR" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Engineering Asteroid" - }) -"aXW" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"aXX" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"aXY" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"aXZ" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"aYa" = ( -/obj/structure/flora/ausbushes/fullgrass, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYb" = ( -/obj/structure/table/wood, -/obj/item/seeds/apple, -/obj/item/seeds/cherry, -/obj/item/seeds/grape, -/obj/item/seeds/poppy, -/obj/item/seeds/tea, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYc" = ( -/obj/structure/table/wood, -/obj/item/cultivator, -/obj/item/shovel/spade, -/obj/item/reagent_containers/glass/bucket, -/obj/item/storage/bag/plants/portaseeder, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYd" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYe" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome East 1"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYf" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Engineering Asteroid" - }) -"aYg" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Engineering Asteroid" - }) -"aYi" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"aYj" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"aYk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_serv) -"aYl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYm" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome North"; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYn" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYo" = ( -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYq" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/mob/living/simple_animal/butterfly, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aYs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/com_engi) -"aYt" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aYv" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"aYw" = ( -/turf/closed/wall, -/area/hallway/primary/port) -"aYx" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aYy" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"aYz" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"aYA" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"aYB" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"aYC" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"aYD" = ( -/obj/structure/flora/ausbushes/fullgrass, -/mob/living/simple_animal/butterfly, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYE" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYF" = ( -/obj/structure/flora/ausbushes/pointybush, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYH" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYI" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aYJ" = ( -/turf/closed/wall, -/area/hallway/primary/central) -"aYK" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aYL" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"aYM" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"aYN" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aYO" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aYP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"aYQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/med_cargo) -"aYR" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating/airless, -/area/space) -"aYS" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"aYT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aYU" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"aYV" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"aYW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"aYX" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"aYY" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aYZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZa" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/sortjunction{ - name = "disposal pipe - Bar"; - icon_state = "pipe-j1s"; - dir = 4; - sortType = 19 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZb" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZd" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZe" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZf" = ( -/turf/open/floor/plasteel/redblue, -/area/crew_quarters/rehab_dome) -"aZg" = ( -/obj/structure/flora/ausbushes/leafybush, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZh" = ( -/obj/structure/flora/ausbushes/grassybush, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZi" = ( -/mob/living/simple_animal/chicken/rabbit/normal, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZj" = ( -/obj/structure/flora/ausbushes/reedbush, -/mob/living/simple_animal/butterfly, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aZl" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"aZm" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"aZn" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"aZo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aZq" = ( -/turf/closed/wall, -/area/hallway/primary/starboard) -"aZr" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"aZs" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"aZt" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"aZu" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"aZv" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aZw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"aZx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"aZy" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"aZz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"aZA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZD" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZE" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"aZF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"aZG" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"aZH" = ( -/obj/structure/flora/ausbushes/reedbush, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZI" = ( -/obj/structure/sink/puddle, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZJ" = ( -/obj/structure/flora/ausbushes/stalkybush, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"aZK" = ( -/turf/closed/mineral, -/area/hallway/primary/central) -"aZL" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aZM" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"aZN" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"aZO" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"aZP" = ( -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"aZQ" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"aZR" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"aZS" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"aZT" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Port Hallway APC"; - areastring = "/area/hallway/primary/port"; - pixel_y = 24 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"aZU" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aZV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"aZW" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"aZX" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"aZY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"aZZ" = ( -/turf/closed/wall, -/area/crew_quarters/bar) -"baa" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Bar Backroom"; - req_access_txt = "25" - }, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"bab" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/bar) -"bac" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"bad" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"bae" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Port Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/port/neast"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"baf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/map/left/ceres{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/flora/ausbushes/reedbush, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bag" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/light, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bah" = ( -/turf/open/floor/plating/asteroid, -/area/hallway/primary/central) -"bai" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/hallway/primary/central) -"baj" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bak" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bal" = ( -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 7"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bam" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"ban" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bao" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bap" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"baq" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bar" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bas" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bat" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bau" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"bav" = ( -/turf/open/floor/plating, -/area/hallway/primary/port) -"baw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"bax" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 1"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bay" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Bar APC"; - areastring = "/area/crew_quarters/bar"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/closet/gmcloset, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baz" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baA" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/table/wood, -/obj/machinery/reagentgrinder, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baB" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/secure_closet/bar{ - req_access_txt = "25" - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/reagent_dispensers/beerkeg, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baE" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"baF" = ( -/turf/closed/wall, -/area/crew_quarters/kitchen) -"baG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Freezer"; - req_access_txt = "28" - }, -/turf/open/floor/plating, -/area/crew_quarters/kitchen) -"baH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"baI" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"baJ" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome East 2"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"baK" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Rehabilitation Dome APC"; - areastring = "/area/crew_quarters/rehab_dome"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plating/astplate, -/area/crew_quarters/rehab_dome) -"baL" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/hallway/primary/central) -"baM" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/central) -"baN" = ( -/turf/open/floor/plating, -/area/hallway/primary/central) -"baO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"baP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"baQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"baR" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Central Primary Hallway APC"; - areastring = "/area/hallway/primary/central"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"baS" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"baT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"baU" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"baV" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"baW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"baX" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/port) -"baY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"baZ" = ( -/obj/machinery/camera{ - c_tag = "Bar Backroom"; - dir = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bba" = ( -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbf" = ( -/obj/structure/kitchenspike, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbg" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbh" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbi" = ( -/obj/machinery/camera{ - c_tag = "Freezer" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbj" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Kitchen APC"; - areastring = "/area/crew_quarters/kitchen"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbk" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbl" = ( -/obj/structure/flora/ausbushes/stalkybush, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome West 1"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bbm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bbn" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/rehab_dome) -"bbo" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/rehab_dome) -"bbp" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/rehab_dome) -"bbq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/hallway/primary/central) -"bbr" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/hallway/primary/central) -"bbs" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/rack, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbt" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbv" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbw" = ( -/obj/structure/table, -/obj/item/stack/sheet/rglass{ - amount = 20 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bbx" = ( -/obj/machinery/camera{ - c_tag = "EVA Equipment"; - dir = 6 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bby" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bbz" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bbA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bbB" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bbC" = ( -/obj/structure/table/wood, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbD" = ( -/obj/machinery/light/small, -/obj/structure/table/wood, -/obj/item/gun/ballistic/revolver/doublebarrel, -/obj/item/storage/belt/bandolier, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbF" = ( -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbG" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bbI" = ( -/mob/living/simple_animal/hostile/retaliate/goat{ - name = "Pete" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbJ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bbK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"bbL" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/rehab_dome) -"bbM" = ( -/obj/machinery/door/airlock/glass{ - name = "Rehabilitation Dome" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/rehab_dome) -"bbN" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/rehab_dome) -"bbO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome Lobby East"; - dir = 8; - network = list("SS13") - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/rehab_dome) -"bbP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plating/astplate, -/area/hallway/primary/central) -"bbQ" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/hallway/primary/central) -"bbR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bbW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bbX" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bbY" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel/fifty{ - amount = 20 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bbZ" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bca" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bcb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bcc" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bce" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcg" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/starboard) -"bch" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bci" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bcj" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bck" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bcl" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Service SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bcm" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"bcn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bco" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bcp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bcq" = ( -/obj/machinery/vending/boozeomat, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/bar) -"bcr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Bar Backroom"; - req_access_txt = "25" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bcs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bct" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bcu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bcv" = ( -/obj/machinery/gibber, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bcw" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"bcx" = ( -/obj/structure/flora/ausbushes/reedbush, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bcy" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/rehab_dome) -"bcz" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/rehab_dome) -"bcA" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/rehab_dome) -"bcB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/rehab_dome) -"bcC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bcD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bcE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bcF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bcG" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bcH" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bcI" = ( -/obj/structure/closet/crate/rcd, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bcJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bcK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bcL" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcM" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bcN" = ( -/obj/machinery/camera{ - c_tag = "Medical SMES"; - dir = 6 - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bcO" = ( -/obj/machinery/computer/station_alert, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcP" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcQ" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcS" = ( -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bcT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 6"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bcU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bcV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bcW" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bcX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bcY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bcZ" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/glass/rag, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bda" = ( -/obj/structure/table, -/obj/item/book/manual/barman_recipes, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/coin/silver, -/obj/item/coin/silver, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdc" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdd" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bde" = ( -/obj/structure/sign/securearea{ - desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; - icon_state = "monkey_painting"; - name = "Mr. Deempisi portrait"; - pixel_x = 4; - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdi" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdk" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdl" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdm" = ( -/obj/structure/flora/ausbushes/lavendergrass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdn" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome South 1"; - dir = 1 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bdq" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/rehab_dome) -"bdr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/crew_quarters/rehab_dome) -"bds" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/rehab_dome) -"bdt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/rehab_dome) -"bdu" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/central) -"bdv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bdw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bdx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bdy" = ( -/obj/structure/rack, -/obj/item/tank/jetpack/carbondioxide, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bdz" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/tank/jetpack/carbondioxide, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bdA" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/clothing/shoes/magboots, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bdB" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/magboots, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bdC" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bdD" = ( -/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/floorgrime, -/area/hallway/primary/starboard) -"bdE" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bdF" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bdG" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bdH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bdI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bdJ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bdK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bdL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bdM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"bdN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bdO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bdP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bdQ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdS" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/mob/living/carbon/monkey/punpun, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdV" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bdW" = ( -/obj/machinery/icecream_vat, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdX" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdY" = ( -/obj/structure/closet/chefcloset, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bdZ" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"bea" = ( -/obj/structure/chair/stool, -/mob/living/simple_animal/butterfly, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"beb" = ( -/obj/structure/table/wood, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bec" = ( -/obj/structure/chair/stool, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bed" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/rehab_dome) -"bee" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/crew_quarters/rehab_dome) -"bef" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/rehab_dome) -"beg" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 10 - }, -/area/hallway/primary/central) -"beh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bei" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bej" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bek" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bel" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = -32; - pixel_y = 24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bem" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringEast"; - location = "EngineeringMiddle"; - name = "navigation beacon (Engineering-Middle)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"ben" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"beo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bep" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"beq" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"ber" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bes" = ( -/turf/closed/wall, -/area/ai_monitored/storage/eva) -"bet" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"beu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/glass_command{ - name = "EVA"; - req_access_txt = "18" - }, -/turf/open/floor/plasteel/blue, -/area/ai_monitored/storage/eva) -"bev" = ( -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"bew" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Starboard Hallway APC"; - areastring = "/area/hallway/primary/starboard"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bex" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bey" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bez" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beA" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beB" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beD" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beE" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"beF" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/starboard) -"beG" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/starboard) -"beH" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/starboard) -"beI" = ( -/turf/closed/wall, -/area/maintenance/asteroid/starboard) -"beJ" = ( -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"beK" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"beL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/bartender, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"beM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/wood/poker, -/obj/item/clothing/head/collectable/tophat, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"beN" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"beO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Bar Access"; - req_access_txt = "25" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"beP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"beQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Freezer"; - req_access_txt = "28" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/kitchen) -"beR" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/mob/living/simple_animal/chicken/rabbit/normal, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"beS" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"beT" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/rehab_dome) -"beU" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/rehab_dome) -"beV" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 5 - }, -/area/hallway/primary/central) -"beW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"beX" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"beY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/holopad, -/obj/effect/landmark/observer_start, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CommandMiddle2"; - location = "EngineeringMiddle2"; - name = "navigation beacon (Engineering-Middle 2)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"beZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bfa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bfb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bfc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bfd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bfe" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringEast2"; - location = "EngineeringEast"; - name = "navigation beacon (Engineering-East)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bff" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/corner, -/area/hallway/primary/central) -"bfg" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"bfh" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/blue/side{ - dir = 9 - }, -/area/ai_monitored/storage/eva) -"bfi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/ai_monitored/storage/eva) -"bfj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/ai_monitored/storage/eva) -"bfk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/ai_monitored/storage/eva) -"bfl" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/blue/side{ - dir = 5 - }, -/area/ai_monitored/storage/eva) -"bfm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "Medbay SMES Access"; - req_access_txt = "0"; - req_one_access_txt = "10;11;12" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"bfn" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall, -/area/hallway/primary/starboard) -"bfo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bfp" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Starboard Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bfq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bfr" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bfs" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bft" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bfu" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bfv" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bfw" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bfx" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bfz" = ( -/obj/structure/window{ - icon_state = "window"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/stage_left, -/area/crew_quarters/theatre) -"bfA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bfB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"bfC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bfD" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/obj/structure/table/wood/poker, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/wood/poker, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bfG" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bfH" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bfI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bfJ" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfK" = ( -/obj/structure/table, -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfL" = ( -/obj/machinery/processor, -/obj/machinery/camera{ - c_tag = "Kitchen" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfN" = ( -/obj/structure/sink/kitchen{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bfP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"bfQ" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome South 2"; - dir = 1 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bfR" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bfS" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bfT" = ( -/obj/structure/flora/ausbushes/grassybush, -/obj/structure/sign/nosmoking_2{ - pixel_y = -32 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bfU" = ( -/obj/machinery/light, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"bfV" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/rehab_dome) -"bfW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Rehabilitation Dome Lobby South"; - dir = 1 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/rehab_dome) -"bfX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/rehab_dome) -"bfY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/rehab_dome) -"bfZ" = ( -/obj/structure/sign/securearea{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bga" = ( -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 3"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bgb" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bgc" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bgd" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side, -/area/hallway/primary/central) -"bge" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 4"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bgf" = ( -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bgg" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bgh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/sign/securearea{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringWest"; - location = "EngineeringEast3"; - name = "navigation beacon (Engineering-East 3)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bgj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/hallway/primary/central) -"bgk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_command{ - name = "EVA"; - req_access_txt = "18" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue, -/area/ai_monitored/storage/eva) -"bgl" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/ai_monitored/storage/eva) -"bgm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bgn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bgo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bgp" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "EVA APC"; - areastring = "/area/ai_monitored/storage/eva"; - pixel_x = 23; - pixel_y = 2 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/ai_monitored/storage/eva) -"bgq" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bgr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bgs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgv" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgw" = ( -/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 = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgx" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgz" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgA" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bgB" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bgC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bgD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Starboard Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bgE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bgF" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bgG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bgH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bgI" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bgJ" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bgK" = ( -/obj/structure/window{ - icon_state = "window"; - dir = 4 - }, -/turf/open/floor/plasteel/stage_left, -/area/crew_quarters/theatre) -"bgL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bgM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bgN" = ( -/obj/machinery/camera{ - c_tag = "Bar"; - dir = 5 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgO" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgS" = ( -/obj/machinery/atmospherics/pipe/manifold/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/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bgT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Kitchen Access"; - req_access_txt = "28" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgY" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bgZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/atmos{ - name = "Service Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bha" = ( -/obj/machinery/door/airlock/atmos{ - name = "Service Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bhb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bhc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bhd" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bhe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bhf" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bhg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 8 - }, -/area/ai_monitored/storage/eva) -"bhh" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bhi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bhj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"bhk" = ( -/obj/machinery/camera{ - c_tag = "EVA Storage"; - dir = 9 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/ai_monitored/storage/eva) -"bhl" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bhm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bhn" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bho" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bhp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bhq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bhr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bhs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bht" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bhu" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bhv" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Surgery APC"; - areastring = "/area/medical/surgery"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/medical/surgery) -"bhw" = ( -/obj/machinery/light/small, -/obj/structure/closet, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bhx" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bhy" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/costume, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"bhz" = ( -/obj/structure/window{ - icon_state = "window"; - dir = 4 - }, -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/costume, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plasteel/stage_left, -/area/crew_quarters/theatre) -"bhA" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bhB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bhC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bhD" = ( -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bhE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bhF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhG" = ( -/obj/effect/landmark/start/cook, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhH" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhI" = ( -/obj/structure/table, -/obj/item/book/manual/chef_recipes, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhJ" = ( -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhK" = ( -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bhL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Output"; - on = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bhM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bhN" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bhO" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"bhP" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"bhQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"bhR" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/lattice, -/turf/open/space, -/area/space) -"bhS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 5"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bhT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bhU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bhV" = ( -/obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/ai_monitored/storage/eva) -"bhW" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/plasteel/blue/side, -/area/ai_monitored/storage/eva) -"bhX" = ( -/obj/machinery/light, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/blue/side, -/area/ai_monitored/storage/eva) -"bhY" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel/blue/side, -/area/ai_monitored/storage/eva) -"bhZ" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/blue/side{ - dir = 6 - }, -/area/ai_monitored/storage/eva) -"bia" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bib" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bic" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bid" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 4"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bie" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bif" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"big" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 5"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bih" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bii" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard) -"bij" = ( -/turf/closed/wall, -/area/medical/surgery) -"bik" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Surgery Observation"; - req_access_txt = "5" - }, -/turf/open/floor/plating, -/area/medical/surgery) -"bil" = ( -/turf/closed/wall/r_wall, -/area/medical/virology) -"bim" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bin" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bio" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bip" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 2"; - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"biq" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bir" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bis" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/table/wood, -/obj/item/kitchen/fork, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bit" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/mime, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"biu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"biv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = 5 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"biw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bix" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"biy" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biB" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biC" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biD" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"biE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Service Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"biF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"biG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"biH" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, -/area/space) -"biI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/space, -/area/space) -"biJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/space, -/area/space) -"biK" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/space, -/area/space) -"biL" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"biM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"biN" = ( -/turf/closed/wall, -/area/medical/morgue) -"biO" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/medical/morgue) -"biP" = ( -/turf/closed/wall, -/area/medical/patients_rooms) -"biQ" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/blood/empty, -/obj/item/reagent_containers/blood/empty, -/obj/item/reagent_containers/blood/AMinus, -/obj/item/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/APlus, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/surgery) -"biR" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/medical/surgery) -"biS" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue, -/area/medical/surgery) -"biT" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 9 - }, -/area/medical/surgery) -"biU" = ( -/obj/structure/table, -/obj/item/surgicaldrill, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/surgery) -"biV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/surgery) -"biW" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"biX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"biY" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"biZ" = ( -/obj/structure/closet/crate, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bja" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bjb" = ( -/turf/closed/wall, -/area/medical/virology) -"bjc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bjd" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bje" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bjf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bjg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bjh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bji" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bjj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bjk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bjl" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bjm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bjn" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"bjo" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bjp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bjq" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bjr" = ( -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bjs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bjt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bju" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/food/condiment/enzyme, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjv" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/mint, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjw" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bjx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bjy" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bjz" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bjA" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bjB" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/space, -/area/space) -"bjD" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/space, -/area/space) -"bjE" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bjF" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bjG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bjH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bjI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bjJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bjK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bjL" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bjM" = ( -/obj/structure/table, -/obj/item/cartridge/medical{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/cartridge/medical{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/cartridge/medical, -/obj/item/cartridge/chemistry{ - pixel_y = 2 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/crew_quarters/heads/cmo) -"bjN" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/vault, -/area/medical/patients_rooms) -"bjO" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/vault, -/area/medical/patients_rooms) -"bjP" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/vault, -/area/medical/patients_rooms) -"bjQ" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/vault, -/area/medical/patients_rooms) -"bjR" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/surgery) -"bjS" = ( -/turf/open/floor/plasteel/neutral, -/area/medical/surgery) -"bjT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/blue, -/area/medical/surgery) -"bjU" = ( -/obj/structure/table, -/obj/item/hemostat, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/surgery) -"bjV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"bjW" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"bjX" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Virology 2"; - dir = 5; - network = list("SS13","CMO") - }, -/obj/structure/sign/poster/official/bless_this_spess{ - pixel_x = -32 - }, -/obj/item/folder/red, -/obj/item/pen/red, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bjY" = ( -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bjZ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bka" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bkb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bkc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/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/plating, -/area/maintenance/asteroid/port/west) -"bkd" = ( -/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, -/area/maintenance/asteroid/port/west) -"bke" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bkf" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bkg" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bkh" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bki" = ( -/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 = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bkj" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bkk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass{ - name = "Bar" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkl" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkm" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkn" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/wood, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bko" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkp" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkq" = ( -/obj/structure/table/wood, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bks" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkt" = ( -/obj/machinery/deepfryer, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bku" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkv" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bkw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bkx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bky" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bkz" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bkA" = ( -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bkB" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/power/emitter/anchored{ - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bkC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bkD" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/power/emitter/anchored{ - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bkE" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/emitter/anchored{ - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bkF" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bkG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bkH" = ( -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bkI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bkJ" = ( -/obj/item/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/blue, -/area/medical/patients_rooms) -"bkK" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/patients_rooms) -"bkL" = ( -/obj/machinery/vending/wallmed{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/patients_rooms) -"bkM" = ( -/obj/item/folder/white, -/obj/structure/table/glass, -/turf/open/floor/plasteel/blue, -/area/medical/patients_rooms) -"bkN" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/blue, -/area/medical/surgery) -"bkO" = ( -/obj/structure/table/optable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/neutral, -/area/medical/surgery) -"bkP" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/blue, -/area/medical/surgery) -"bkQ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"bkR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"bkS" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bkT" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bkU" = ( -/turf/closed/wall, -/area/storage/primary) -"bkV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bkW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bkX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/glass{ - name = "Bar" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bkZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bla" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"blb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"blc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bld" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"ble" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"blf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Input"; - on = 1 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"blg" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bli" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blj" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blk" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bll" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"blm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bln" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"blo" = ( -/obj/machinery/light, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"blp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"blq" = ( -/obj/machinery/computer/station_alert, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - departmentType = 3; - name = "Chief Engineer RC"; - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"blr" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"bls" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"blt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"blu" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"blv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bly" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"blB" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"blC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"blD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"blE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"blF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"blG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"blH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"blI" = ( -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Chief Medical Officer's Office APC"; - areastring = "/area/crew_quarters/heads/cmo"; - pixel_x = 23; - pixel_y = 2 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/crew_quarters/heads/cmo) -"blJ" = ( -/obj/machinery/button/door{ - id = "medp1"; - name = "Privacy Shutters"; - pixel_x = -24 - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/cmo, -/area/medical/patients_rooms) -"blK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cmo, -/area/medical/patients_rooms) -"blL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/cmo, -/area/medical/patients_rooms) -"blM" = ( -/obj/machinery/button/door{ - id = "medp2"; - name = "Privacy Shutters"; - pixel_x = -24 - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/cmo, -/area/medical/patients_rooms) -"blN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue, -/area/medical/surgery) -"blO" = ( -/obj/structure/table, -/obj/item/retractor, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/surgery) -"blP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"blQ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Surgery Observation"; - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"blR" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/surgery) -"blS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/virology) -"blT" = ( -/obj/machinery/door/airlock/glass_virology{ - name = "Isolation A"; - req_access_txt = "39" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"blU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/medical/virology) -"blV" = ( -/obj/structure/bed, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"blW" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"blX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"blY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"blZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bma" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bmb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/storage/primary) -"bmc" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/storage/primary) -"bmd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bme" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/junction, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmh" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmi" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmj" = ( -/obj/machinery/vending/cola, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bmk" = ( -/obj/machinery/food_cart, -/obj/machinery/light_switch{ - pixel_x = -25 - }, -/obj/machinery/button/door{ - id = "kitchen"; - name = "Privacy Shutters"; - pixel_x = -24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bml" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bmm" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/crew_quarters/kitchen) -"bmn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"bmo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j1s"; - name = "disposal pipe - Kitchen"; - sortType = 20 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bmp" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bmq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bmr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8; - name = "Service Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/neast) -"bms" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bmt" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bmu" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmw" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmx" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmy" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bmz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 2"; - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bmA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bmB" = ( -/obj/structure/reflector/single/anchored{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bmC" = ( -/obj/structure/reflector/box/anchored, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bmD" = ( -/obj/structure/reflector/single/anchored{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bmE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bmF" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bmG" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmJ" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmL" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bmM" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bmN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bmO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bmP" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmR" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/table, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bmV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bmW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"bmX" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bmY" = ( -/obj/machinery/camera{ - c_tag = "Chief Medical Officer's Office"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/button/door{ - id = "cmooffice"; - name = "Office Emergency Lockdown"; - pixel_y = -24 - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bmZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"bna" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "medp1" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/patients_rooms) -"bnb" = ( -/obj/machinery/door/airlock/medical{ - name = "Patient Room"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms) -"bnc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "medp1" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/patients_rooms) -"bnd" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "medp2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/patients_rooms) -"bne" = ( -/obj/machinery/door/airlock/medical{ - name = "Patient Room 2"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/patients_rooms) -"bnf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "medp2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/patients_rooms) -"bng" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/surgery) -"bnh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/camera{ - c_tag = "Surgery"; - dir = 10; - network = list("SS13","CMO") - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/surgery) -"bni" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/surgery) -"bnj" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/razor, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/surgery) -"bnk" = ( -/obj/structure/table, -/obj/item/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/surgery) -"bnl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"bnm" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"bnn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"bno" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bnp" = ( -/obj/machinery/door/airlock/virology{ - name = "Break Room"; - req_access_txt = "39" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bnq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Virology Breakroom"; - dir = 5; - network = list("SS13","CMO") - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"bnr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/wrench, -/obj/item/crowbar, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"bns" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"bnt" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"bnv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"bnw" = ( -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"bnx" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/storage/primary) -"bny" = ( -/obj/structure/table, -/obj/machinery/camera{ - c_tag = "Primary Tool Storage North"; - dir = 5 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnz" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Primary Tool Storage" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bnE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bnF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bnG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bnH" = ( -/obj/machinery/door/airlock/glass{ - name = "Bar" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bnI" = ( -/obj/machinery/door/airlock/glass{ - name = "Bar" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"bnJ" = ( -/obj/structure/sign/barsign, -/turf/closed/wall, -/area/crew_quarters/bar) -"bnK" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"bnL" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/port/neast) -"bnM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_engi) -"bnN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_engi) -"bnO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_engi) -"bnP" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bnQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bnR" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Laser Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bnS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engineering) -"bnT" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Laser Room"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bnU" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bnV" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"bnW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"bnX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"bnY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bnZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"boa" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bob" = ( -/turf/closed/wall, -/area/security/checkpoint/medical) -"boc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"bod" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Chief Medical Officer's Office"; - req_access_txt = "40" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/barber, -/area/crew_quarters/heads/cmo) -"boe" = ( -/turf/closed/wall, -/area/medical/medbay/central) -"bof" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 9 - }, -/area/medical/medbay/central) -"bog" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"boh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"boi" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Morgue APC"; - areastring = "/area/medical/patients_rooms"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/patients_rooms) -"boj" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bok" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/medical/surgery) -"bol" = ( -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/surgery) -"bom" = ( -/obj/machinery/door/airlock/glass_medical{ - name = "Surgery Observation"; - req_access_txt = "0" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/medical/surgery) -"bon" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"boo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"bop" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitegreen/side, -/area/medical/virology) -"boq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"bor" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/whitegreen/corner, -/area/medical/virology) -"bov" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"bow" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/whitegreen/corner, -/area/medical/virology) -"box" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"boy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"boA" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"boB" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/device/analyzer, -/turf/open/floor/plasteel, -/area/storage/primary) -"boC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"boD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"boE" = ( -/turf/open/floor/plasteel, -/area/storage/primary) -"boF" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/storage/primary) -"boG" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"boH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"boI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"boK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"boL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/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/plasteel, -/area/hallway/primary/port) -"boM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"boN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 7" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boQ" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boT" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boU" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boV" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"boW" = ( -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 1" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"boX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"boY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"boZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bpa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - icon_state = "pump_map"; - name = "Cooling Loop To Gas"; - on = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 4; - filter_type = "n2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpg" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bph" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bpi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bpj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bpk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = 32; - pixel_y = 32 - }, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpl" = ( -/obj/machinery/camera{ - c_tag = "Engineering Asteroid Hallway 6" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bpm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bpn" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bpo" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bpp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bpq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = -32; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bpr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 3"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bps" = ( -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for big and small criminals alike!"; - name = "Criminal Delivery Chute" - }, -/obj/machinery/door/window/brigdoor{ - name = "Criminal Deposit"; - req_access_txt = "2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bpt" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/medical) -"bpu" = ( -/obj/machinery/recharger, -/obj/structure/table, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/medical) -"bpv" = ( -/obj/structure/filingcabinet, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Medbay Security Checkpoint"; - dir = 6 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/medical) -"bpw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/security/med, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/medical) -"bpx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bpy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 9 - }, -/area/medical/medbay/central) -"bpz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bpA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bpB" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/structure/sign/examroom{ - pixel_x = -32; - pixel_y = 32 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bpC" = ( -/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/plasteel/blue, -/area/medical/medbay/central) -"bpD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bpE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bpF" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bpG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bpH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bpI" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bpJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bpK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bpL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/item/stack/packageWrap, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bpM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bpN" = ( -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bpO" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay/central) -"bpR" = ( -/obj/structure/table/glass, -/obj/item/clothing/gloves/color/latex, -/obj/item/device/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Virology"; - dir = 5; - network = list("SS13","CMO") - }, -/obj/machinery/requests_console{ - department = "Virology"; - name = "Virology Requests Console"; - pixel_x = -32 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"bpS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"bpT" = ( -/obj/machinery/smartfridge/chemistry/virology/preloaded, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"bpU" = ( -/obj/structure/closet/wardrobe/virology_white, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"bpV" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bpW" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/pod_3) -"bpX" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_3) -"bpY" = ( -/turf/closed/wall, -/area/awaymission/research/interior/gateway) -"bpZ" = ( -/turf/closed/wall/rust, -/area/awaymission/research/interior/gateway) -"bqa" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bqb" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bqc" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/storage/primary) -"bqd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bqe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bql" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bqm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bqn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bqo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bqp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bqq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"bqr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/meter, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqs" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqt" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqv" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "SM North"; - dir = 1; - network = list("SS13","CE") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqz" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqA" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bqC" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bqD" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = null; - volume_rate = 200 - }, -/turf/open/floor/plating/airless, -/area/engine/engineering) -"bqE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bqF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bqG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bqH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bqI" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bqJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"bqK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used to watch the questionable medical practices of Medbay from a safe distance."; - name = "Medbay Monitor"; - network = list("CMO"); - pixel_x = -32 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/medical) -"bqL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bqM" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bqN" = ( -/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/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/medical) -"bqO" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bqP" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bqQ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bqR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bqS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bqT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bqU" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bqV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay North"; - dir = 1; - network = list("SS13") - }, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bqW" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bqX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bqY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_y = -30 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bqZ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bra" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"brb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"brc" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/medbay/central) -"brd" = ( -/obj/structure/closet/l3closet/virology, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 9 - }, -/area/medical/virology) -"bre" = ( -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"brf" = ( -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"brg" = ( -/obj/structure/closet/l3closet/virology, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 5 - }, -/area/medical/virology) -"brh" = ( -/obj/item/storage/box/masks{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/gloves, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 5 - }, -/area/medical/virology) -"bri" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"brj" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/virologist, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"brk" = ( -/obj/machinery/computer/pandemic, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"brl" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4; - name = "Medical Escape Pod" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"brm" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"brn" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4; - name = "Medical Escape Pod" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bro" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 4; - id = "pod3"; - name = "escape pod 3"; - port_angle = 0 - }, -/turf/open/floor/plating, -/area/shuttle/pod_3) -"brp" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/item/storage/pod{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"brq" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/machinery/computer/shuttle/pod{ - pixel_y = 32; - possible_destinations = "pod_lavaland3"; - shuttleId = "pod3" - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Medbay Escape Pod" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_3) -"brr" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_3) -"brs" = ( -/obj/docking_port/stationary/random{ - dir = 4; - id = "pod_lavaland3"; - name = "lavaland" - }, -/turf/open/space, -/area/space) -"brt" = ( -/obj/item/stack/rods, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bru" = ( -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"brv" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"brw" = ( -/obj/machinery/vending/tool, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"brx" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/screwdriver, -/turf/open/floor/plasteel, -/area/storage/primary) -"bry" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/storage/primary) -"brz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"brB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/directions/engineering{ - dir = 4; - icon_state = "direction_eng"; - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - icon_state = "direction_med"; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/science{ - pixel_x = 32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"brC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"brE" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"brF" = ( -/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/structure/sign/botany{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"brG" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brI" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brM" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"brQ" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brR" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brS" = ( -/obj/machinery/light, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brV" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"brW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"brX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"brY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"brZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bsa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Cooling Loop Bypass"; - on = 0 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bsb" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"bsc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bsd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bse" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"bsf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"bsg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bsh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsi" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsj" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsk" = ( -/obj/machinery/light, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsl" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsm" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"bsn" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bso" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bsp" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bsq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bsr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/directions/engineering{ - dir = 8; - icon_state = "direction_eng"; - pixel_x = -32; - pixel_y = -24 - }, -/obj/structure/sign/directions/supply{ - dir = 1; - icon_state = "direction_supply"; - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/sign/directions/evac{ - pixel_x = -32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bss" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"bst" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Medbay Security Checkpoint APC"; - areastring = "/area/security/checkpoint/medical"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/medical) -"bsu" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/medical, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/medical) -"bsv" = ( -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/medical) -"bsw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/medical) -"bsx" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/medical) -"bsy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bsz" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bsA" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/table/glass, -/obj/item/clothing/neck/stethoscope, -/obj/item/device/flashlight/pen, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bsB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bsC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bsD" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bsE" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bsF" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bsG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bsH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bsI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - icon_state = "door_locked"; - id_tag = "virology_airlock_exterior"; - locked = 1; - name = "Virology Exterior Airlock"; - req_access_txt = "39" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bsK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"bsL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bsM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/virology) -"bsN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"bsO" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"bsP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"bsQ" = ( -/obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, -/obj/structure/reagent_dispensers/virusfood{ - density = 0; - pixel_x = 30 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitegreen/corner, -/area/medical/virology) -"bsR" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bsS" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bsT" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bsU" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bsV" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bsW" = ( -/obj/item/crowbar, -/turf/open/floor/plating/astplate, -/area/awaymission/research/interior/gateway) -"bsX" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bsY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bsZ" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bta" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/storage/primary) -"btb" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/turf/open/floor/plasteel, -/area/storage/primary) -"btc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"btd" = ( -/turf/closed/wall, -/area/hydroponics) -"bte" = ( -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hydroponics) -"btf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics) -"btg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/green/corner, -/area/hydroponics) -"bth" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plating, -/area/hydroponics) -"bti" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hydroponics) -"btj" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hydroponics) -"btk" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"btl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/serv_engi) -"btm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_engi) -"btn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bto" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"btp" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"btq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"btr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Cooling Loop"; - on = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bts" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"btt" = ( -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "SM1"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"btu" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"btv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"btw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"btx" = ( -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bty" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"btz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"btA" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"btB" = ( -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "SM2"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"btC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"btD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas To Mix"; - on = 0 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"btE" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"btF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "SM East"; - dir = 9; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"btG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"btH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"btI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"btJ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Central Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"btK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Central Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"btL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"btM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"btN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/engi_med) -"btO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/bluecross_2{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"btP" = ( -/obj/machinery/computer/secure_data, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/medical) -"btQ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/medical/medbay/central) -"btR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/central) -"btS" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"btT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"btU" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"btV" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"btW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"btX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"btY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"btZ" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bub" = ( -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"buc" = ( -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = 8; - pixel_y = -28; - req_access_txt = "39" - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bue" = ( -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = -28; - req_access_txt = "39" - }, -/obj/machinery/camera{ - c_tag = "Virology Airlocks"; - dir = 5; - network = list("SS13","CMO") - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"buf" = ( -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = -28; - req_access_txt = "39" - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 6 - }, -/area/medical/virology) -"bug" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/safety_internals, -/turf/closed/wall/r_wall, -/area/medical/virology) -"buh" = ( -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Console"; - pixel_y = -22; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-25" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"bui" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"buj" = ( -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/pen/red, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitegreen/corner, -/area/medical/virology) -"bul" = ( -/obj/item/computer_hardware/recharger/APC, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bum" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bun" = ( -/obj/machinery/gateway/centerstation, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"buo" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/awaymission/research/interior/gateway) -"bup" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/awaymission/research/interior/gateway) -"buq" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/awaymission/research/interior/gateway) -"bur" = ( -/obj/item/paper/fluff/stations/cere/gateway, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bus" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"but" = ( -/obj/structure/table, -/obj/machinery/power/apc{ - dir = 8; - name = "Primary Tool Storage APC"; - areastring = "/area/storage/primary"; - pixel_x = -24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/turf/open/floor/plasteel, -/area/storage/primary) -"buu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/storage/primary) -"buv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"buw" = ( -/obj/structure/table, -/obj/item/device/multitool, -/turf/open/floor/plasteel, -/area/storage/primary) -"bux" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"buy" = ( -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"buz" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics North 1" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"buA" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"buB" = ( -/obj/structure/beebox, -/obj/item/queen_bee/bought, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/grass, -/area/hydroponics) -"buC" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/grass, -/area/hydroponics) -"buD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/grass, -/area/hydroponics) -"buE" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hydroponics) -"buF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"buG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"buH" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 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/plating, -/area/maintenance/asteroid/port/east) -"buI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"buJ" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"buK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"buL" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"buM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"buN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"buO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"buP" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) -"buQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringWest3"; - location = "EngineeringWest2"; - name = "navigation beacon (Engineering-West 2)" - }, -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/central) -"buR" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"buS" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"buT" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"buU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"buV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"buW" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"buX" = ( -/obj/machinery/power/supermatter_shard/crystal/engine, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"buY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"buZ" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/item/tank/internals/plasma, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bva" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Filtered to Gas" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bvb" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bvc" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bvd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/corner, -/area/hallway/primary/central) -"bve" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringEast3"; - location = "EngineeringEast2"; - name = "navigation beacon (Engineering-East 2)" - }, -/turf/open/floor/plasteel/yellow/side, -/area/hallway/primary/central) -"bvf" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"bvg" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Central Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/central"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvl" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bvn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bvo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bvp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bvq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8; - name = "Medbay Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvs" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvt" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Input"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bvx" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bvy" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bvz" = ( -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = -4; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bvA" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bvB" = ( -/obj/structure/chair, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bvC" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bvD" = ( -/obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bvE" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bvF" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bvG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bvH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bvI" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell{ - dir = 8; - icon_state = "cell-off" - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bvJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/bed/roller, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bvK" = ( -/turf/closed/wall, -/area/medical/genetics/cloning) -"bvL" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics/cloning) -"bvM" = ( -/obj/machinery/door/airlock/glass_virology{ - name = "Monkey Pen"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bvN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Virology APC"; - areastring = "/area/medical/virology"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bvO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bvP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bvQ" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bvS" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bvT" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/awaymission/research/interior/gateway) -"bvU" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/storage/primary) -"bvW" = ( -/obj/structure/table, -/obj/item/device/assembly/igniter, -/obj/item/device/assembly/igniter, -/turf/open/floor/plasteel, -/area/storage/primary) -"bvX" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bvY" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics Front Desk"; - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hydroponics) -"bvZ" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bwa" = ( -/turf/open/floor/plasteel/darkgreen/side{ - dir = 8 - }, -/area/hydroponics) -"bwb" = ( -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bwc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 4 - }, -/area/hydroponics) -"bwd" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hydroponics) -"bwe" = ( -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bwf" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/grass, -/area/hydroponics) -"bwg" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"bwh" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bwi" = ( -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bwj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/break_room) -"bwk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Engineering Foyer"; - req_access_txt = "0"; - req_one_access_txt = "10;24" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/break_room) -"bwl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/break_room) -"bwm" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/obj/machinery/camera{ - c_tag = "SM West"; - dir = 4; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bwn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bwo" = ( -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/obj/item/tank/internals/plasma, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bwp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bwq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix To Gas"; - on = 0 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bwr" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bws" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bwt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/break_room) -"bwu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "engineeringlockdown"; - layer = 2.6; - name = "Emergency Lockdown Blastdoor" - }, -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Engineering Foyer"; - req_access_txt = "0"; - req_one_access_txt = "10;24" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/break_room) -"bwv" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bww" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bwx" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bwy" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bwz" = ( -/turf/closed/wall, -/area/maintenance/asteroid/central) -"bwA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bwB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bwC" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bwD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Output"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bwE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Medbay Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bwF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bwG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bwH" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bwI" = ( -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bwJ" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bwK" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Medbay"; - req_access_txt = "45" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Medbay East"; - dir = 9 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bwM" = ( -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bwN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bwO" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bwP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/camera{ - c_tag = "Cyrotubes"; - dir = 9 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bwQ" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Medbay APC"; - areastring = "/area/medical/medbay/central"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bwR" = ( -/obj/structure/bed/roller, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bwS" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"bwT" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"bwU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"bwV" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/genetics/cloning) -"bwW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bwX" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bwY" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bwZ" = ( -/obj/item/wallframe/apc, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bxa" = ( -/obj/item/stack/rods, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bxb" = ( -/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/plating, -/area/awaymission/research/interior/gateway) -"bxc" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bxd" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/item/paper/pamphlet/gateway, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"bxe" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bxf" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/storage/primary) -"bxg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"bxh" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/storage/primary) -"bxi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 3"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bxj" = ( -/obj/machinery/door/airlock/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics) -"bxk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hydroponics) -"bxl" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bxm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bxn" = ( -/obj/structure/table, -/obj/item/seeds/chili, -/obj/item/seeds/grape, -/obj/item/seeds/grape, -/obj/item/reagent_containers/food/snacks/grown/chili, -/obj/item/reagent_containers/food/snacks/grown/potato, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bxo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hydroponics) -"bxp" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/grass, -/area/hydroponics) -"bxq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/grass, -/area/hydroponics) -"bxr" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hydroponics) -"bxs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"bxt" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Engineering Foyer APC"; - areastring = "/area/engine/break_room"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bxu" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/break_room) -"bxv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/break_room) -"bxw" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/break_room) -"bxx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/button/door{ - id = "SM1"; - name = "Collector Shuttle Toggle"; - pixel_x = 24; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bxy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bxz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/glass_engineering{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bxA" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bxB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bxC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/button/door{ - id = "SM2"; - name = "Collector Shuttle Toggle"; - pixel_x = -24; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bxD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bxE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bxF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/break_room) -"bxG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/break_room) -"bxH" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/break_room) -"bxI" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Engineering Foyer APC"; - areastring = "/area/engine/break_room"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bxJ" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/central) -"bxK" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bxL" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bxM" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bxN" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bxO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bxP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bxQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bxR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bxS" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/britcup, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bxT" = ( -/obj/machinery/button/door{ - id = "medmain"; - name = "Medbay Doors"; - normaldoorcontrol = 1; - pixel_x = 4; - pixel_y = -24 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bxU" = ( -/obj/machinery/cell_charger, -/obj/item/wrench/medical, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bxW" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bxX" = ( -/obj/structure/bed/roller, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bxY" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"bxZ" = ( -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"bya" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"byb" = ( -/obj/machinery/dna_scannernew, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/medical/genetics/cloning) -"byc" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"byd" = ( -/obj/machinery/light, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bye" = ( -/obj/item/screwdriver, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"byf" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"byg" = ( -/obj/structure/table, -/obj/item/paper/pamphlet/gateway, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"byh" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/camera{ - c_tag = "Primary Tool Storage South"; - dir = 5 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/storage/primary) -"byi" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/storage/primary) -"byj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/newscaster{ - pixel_x = -28; - pixel_y = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"byk" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"byl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bym" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/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/darkgreen/side{ - dir = 4 - }, -/area/hydroponics) -"byn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"byo" = ( -/turf/open/floor/plasteel/darkgreen/side{ - dir = 4 - }, -/area/hydroponics) -"byp" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics North 2" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"byq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/window{ - dir = 8; - icon_state = "right"; - name = "Hydroponics Delivery Chute"; - opacity = 1; - req_access_txt = "33" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/hydroponics) -"byr" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Hydroponics" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"bys" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"byt" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/turf/open/floor/plating, -/area/hallway/primary/central) -"byu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/central) -"byv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"byw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"byx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"byy" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/corner, -/area/engine/break_room) -"byz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"byA" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"byB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - icon_state = "pump_map"; - name = "Chamber To Filter" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"byD" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas To Chamber"; - on = 0 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"byE" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"byF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"byG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"byH" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/break_room) -"byI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"byJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"byK" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"byL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"byM" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"byN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"byO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"byP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/medbay/central) -"byQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"byR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"byS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"byT" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/folder, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"byU" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"byV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"byW" = ( -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"byX" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"byY" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"byZ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Medbay West"; - dir = 5; - network = list("SS13") - }, -/obj/machinery/vending/wallmed{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bza" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"bzb" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/geneticist, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"bzc" = ( -/obj/machinery/computer/cloning, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/genetics/cloning) -"bzd" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/storage/primary) -"bze" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/storage/primary) -"bzf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bzg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bzh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Primary Tool Storage" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bzi" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bzj" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bzk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bzl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 4 - }, -/area/hydroponics) -"bzm" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bzn" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/grass, -/area/hydroponics) -"bzo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hydroponics) -"bzp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hydroponics) -"bzq" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/central) -"bzr" = ( -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bzs" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bzt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bzu" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bzv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bzw" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bzx" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bzy" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bzz" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bzA" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bzB" = ( -/obj/machinery/door/airlock/glass_engineering{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bzC" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"bzD" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bzE" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bzF" = ( -/turf/open/floor/plasteel/red/corner, -/area/engine/break_room) -"bzG" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating/airless, -/area/security/checkpoint/engineering) -"bzH" = ( -/obj/structure/closet/secure_closet/security/engine, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/engineering) -"bzI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/engineering) -"bzJ" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Engineering Security Checkpoint APC"; - areastring = "/area/security/checkpoint/engineering"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/engineering) -"bzK" = ( -/obj/structure/janitorialcart, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bzL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bzM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bzN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"bzO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bzP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bzQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bzR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bzS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bzT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bzU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"bzV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "medmain"; - name = "Medbay"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j1" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bzX" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bzY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bzZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bAa" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"bAb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/corner, -/area/medical/medbay/central) -"bAc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/genetics/cloning) -"bAd" = ( -/obj/machinery/disposal/bin, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"bAe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"bAf" = ( -/obj/machinery/clonepod, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/medical/genetics/cloning) -"bAg" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"bAh" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bAi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bAj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bAk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bAl" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bAm" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"bAn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 8 - }, -/area/hydroponics) -"bAo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bAp" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bAq" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bAr" = ( -/obj/machinery/door/airlock/glass{ - name = "Bee Reserve"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bAs" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/grass, -/area/hydroponics) -"bAt" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Port Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/port/east"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bAu" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bAv" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/item/device/assembly/mousetrap/armed, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bAw" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bAx" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bAy" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bAz" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bAA" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bAB" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bAC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bAD" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bAE" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"bAF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Lobby West"; - dir = 4; - network = list("SS13","CE") - }, -/obj/machinery/newscaster{ - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bAG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bAH" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bAI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bAJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAK" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 8; - icon_state = "filter_off"; - on = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sign/radiation{ - pixel_y = 32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm/engine{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"bAP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas To Filter"; - on = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sign/radiation{ - pixel_y = 32 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAS" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bAU" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bAV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bAW" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bAX" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/engine/break_room) -"bAY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating/airless, -/area/security/checkpoint/engineering) -"bAZ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/engineering) -"bBa" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bBb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/engineering) -"bBc" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bBd" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Broom Closet"; - req_access_txt = "0" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bBe" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"bBf" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bBg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bBh" = ( -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bBi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bBj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bBk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bBl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "medmain"; - name = "Medbay"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBm" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bBn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bBo" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bBp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bBq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bBr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bBs" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bBt" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/medbay/central) -"bBu" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = "cloningmain"; - name = "Genetics"; - req_access_txt = "0"; - req_one_access_txt = "5;9" - }, -/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 = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics/cloning) -"bBv" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/medical/genetics/cloning) -"bBw" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics/cloning) -"bBx" = ( -/obj/item/book/manual/medical_cloning{ - pixel_y = 6 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/genetics/cloning) -"bBy" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bBz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bBA" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/space) -"bBB" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bBC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bBD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/grass, -/area/hydroponics) -"bBE" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bBF" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bBG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bBH" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bBI" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bBJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bBK" = ( -/obj/structure/table, -/obj/item/storage/box/cups, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bBL" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bBM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBO" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBP" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBQ" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBR" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBS" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBT" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Atmos To Loop"; - on = 0 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bBV" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bBW" = ( -/obj/structure/table, -/obj/item/storage/box/cups, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Engineering Lobby East"; - dir = 4; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bBX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bBY" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bBZ" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/engine/break_room) -"bCa" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"bCb" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/engineering, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/engineering) -"bCd" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/machinery/camera{ - c_tag = "Engineering Security Checkpoint"; - dir = 9 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/engineering) -"bCe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bCf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/sign/bluecross_2{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"bCg" = ( -/turf/closed/wall, -/area/medical/chemistry) -"bCh" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bCi" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bCj" = ( -/obj/machinery/smartfridge/chemistry/preloaded, -/turf/open/floor/plating, -/area/medical/chemistry) -"bCk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/button/door{ - id = "medmain"; - name = "Medbay Doors"; - normaldoorcontrol = 1; - pixel_x = -24 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bCl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bCm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bCn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bCo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bCp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bCq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/genetics/cloning) -"bCr" = ( -/obj/structure/closet/wardrobe/white, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/genetics/cloning) -"bCs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/medical/genetics/cloning) -"bCt" = ( -/obj/machinery/button/door{ - id = "cloningmain"; - name = "Cloning Door"; - normaldoorcontrol = 1; - pixel_y = -24 - }, -/obj/machinery/camera{ - c_tag = "Cloning"; - dir = 10; - network = list("SS13","CMO") - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/light, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/genetics/cloning) -"bCu" = ( -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Cloning Lab APC"; - areastring = "/area/medical/genetics/cloning"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whitepurple/corner, -/area/medical/genetics/cloning) -"bCv" = ( -/turf/closed/wall/rust, -/area/space) -"bCw" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bCx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bCy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bCz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bCA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 8 - }, -/area/hydroponics) -"bCB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bCC" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bCD" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"bCE" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bCF" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bCG" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bCH" = ( -/obj/structure/rack, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bCI" = ( -/obj/machinery/vending/snack, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bCJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bCK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bCL" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bCM" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCO" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/closet/radiation, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCR" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/closet/radiation, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCT" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCV" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/radiation, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"bCX" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCY" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bCZ" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bDb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/engine/break_room) -"bDc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass_security{ - name = "Prisoner Processing"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red, -/area/security/checkpoint/engineering) -"bDd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/engineering) -"bDe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bDf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/computer/security/telescreen{ - desc = "Used to watch the CE's wrench monkeys incase they build another disposal 'ride'."; - name = "Engineering Monitor"; - network = list("CE") - }, -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/engineering) -"bDg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bDh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 2"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bDj" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/landmark/start/chemist, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bDk" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/dropper, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bDl" = ( -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bDq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"bDr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bDs" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bDt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bDu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay South"; - dir = 6 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bDv" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"bDw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"bDx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/genetics) -"bDy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/genetics) -"bDz" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Genetics Research"; - req_access_txt = "0"; - req_one_access_txt = "5;9" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bDA" = ( -/turf/closed/wall, -/area/medical/genetics) -"bDB" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bDC" = ( -/obj/item/storage/toolbox/mechanical/old, -/turf/open/floor/plating, -/area/space) -"bDD" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bDE" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bDF" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bDG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bDH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bDI" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/machinery/camera{ - c_tag = "Hydroponics Storage"; - dir = 1; - network = list("SS13"); - start_active = 1 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bDJ" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bDK" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/shovel/spade, -/obj/item/wrench, -/obj/item/reagent_containers/glass/bucket, -/obj/item/wirecutters, -/obj/item/shovel/spade, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/honey_frame, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bDL" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bDM" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bDN" = ( -/obj/structure/table, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/storage/bag/plants, -/obj/item/storage/bag/plants, -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"bDO" = ( -/obj/structure/closet/wardrobe/botanist, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"bDP" = ( -/obj/structure/beebox, -/obj/item/queen_bee/bought, -/obj/machinery/camera{ - c_tag = "Hydroponics Bee Reserve South"; - dir = 5; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/hydroponics) -"bDQ" = ( -/obj/structure/table, -/obj/item/book/manual/hydroponics_pod_people, -/obj/item/paper/guides/jobs/hydroponics, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"bDR" = ( -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bDS" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bDT" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bDU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bDV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bDW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bDX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bDY" = ( -/turf/open/floor/plasteel, -/area/engine/break_room) -"bDZ" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bEa" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bEb" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Engineering APC"; - areastring = "/area/engine/engineering"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bEc" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bEd" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"bEe" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bEf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engineering) -"bEg" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"bEh" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bEi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bEj" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/break_room) -"bEk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bEl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/engine/break_room) -"bEm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating/airless, -/area/security/checkpoint/engineering) -"bEn" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/engineering) -"bEo" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/filingcabinet, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/engineering) -"bEp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/engineering) -"bEq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bEr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bEs" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 1 - }, -/area/medical/chemistry) -"bEt" = ( -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 1 - }, -/area/medical/chemistry) -"bEu" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/dropper, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 1 - }, -/area/medical/chemistry) -"bEv" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/chemistry) -"bEw" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/chemistry) -"bEx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bEy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"bEz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/central) -"bEA" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bEB" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bEC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"bED" = ( -/obj/machinery/disposal/bin, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 9 - }, -/area/medical/genetics) -"bEE" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/junction, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bEF" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 5 - }, -/area/medical/genetics) -"bEG" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/grass, -/area/medical/genetics) -"bEH" = ( -/turf/open/floor/grass, -/area/medical/genetics) -"bEI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bEJ" = ( -/obj/item/coin/gold, -/turf/open/floor/plating, -/area/space) -"bEK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bEL" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/electronics/airlock, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bEM" = ( -/turf/closed/wall, -/area/crew_quarters/fitness) -"bEN" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel, -/area/maintenance/asteroid/port/west) -"bEO" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/fitness) -"bEP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bEQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bER" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bES" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j1s"; - name = "disposal pipe - Library"; - sortType = 16 - }, -/turf/closed/wall, -/area/hydroponics) -"bET" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bEU" = ( -/obj/machinery/portable_atmospherics/canister/freon, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bEV" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bEW" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bEX" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bEY" = ( -/obj/structure/closet/firecloset/full, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bEZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bFa" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bFb" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/machinery/power/apc{ - dir = 1; - name = "Atmospherics APC"; - areastring = "/area/engine/atmos"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bFc" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/metalfoam, -/obj/item/grenade/chem_grenade/metalfoam, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bFd" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bFe" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bFf" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"bFg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bFh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bFi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bFj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bFk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engineering) -"bFl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-20"; - light_color = "#E1E17D"; - light_range = 5; - luminosity = 2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFp" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFq" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFr" = ( -/obj/structure/table, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFt" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel/fifty, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFu" = ( -/obj/structure/table, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFv" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bFy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"bFz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engineering) -"bFA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/break_room) -"bFB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bFC" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bFD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bFE" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bFF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bFG" = ( -/obj/machinery/chem_dispenser, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 8 - }, -/area/medical/chemistry) -"bFH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/corner, -/area/medical/chemistry) -"bFI" = ( -/obj/machinery/chem_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"bFJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"bFK" = ( -/obj/machinery/chem_heater, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"bFL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"bFM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 4 - }, -/area/medical/chemistry) -"bFN" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Chemistry Lab"; - req_access_txt = "5; 33" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bFO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"bFP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"bFQ" = ( -/turf/closed/wall, -/area/medical/medbay/zone2) -"bFR" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/medical/medbay/zone2) -"bFS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/medical/genetics) -"bFT" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/geneticist, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bFU" = ( -/obj/machinery/computer/scan_consolenew, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/genetics) -"bFV" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"bFW" = ( -/obj/structure/flora/tree/palm, -/turf/open/floor/grass, -/area/medical/genetics) -"bGa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bGe" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space) -"bGg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/space) -"bGh" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bGi" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bGj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bGk" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGl" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/camera{ - c_tag = "Fitness North" - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "applebush" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGn" = ( -/mob/living/simple_animal/crab{ - desc = "The local trainer hired to keep the crew in shape by aggressively snipping at them."; - name = "Crabohydrates" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGo" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/folder/yellow{ - pixel_x = -2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGp" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/filingcabinet, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bGq" = ( -/turf/closed/wall, -/area/library) -"bGr" = ( -/obj/structure/bookcase{ - name = "Forbidden Knowledge" - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/library) -"bGs" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/obj/item/device/camera, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/black, -/area/library) -"bGt" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/invisible, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/library) -"bGu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/library) -"bGv" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"bGw" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/wood, -/area/library) -"bGx" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 24 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Library APC"; - areastring = "/area/library"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/wood, -/area/library) -"bGy" = ( -/turf/closed/wall, -/area/library/lounge) -"bGz" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/library/lounge) -"bGA" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bGB" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bGC" = ( -/obj/structure/fireplace, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bGD" = ( -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bGE" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bGF" = ( -/obj/structure/rack, -/obj/item/grown/log, -/obj/item/grown/log, -/obj/item/grown/log, -/obj/item/grown/log, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/hatchet, -/turf/open/floor/wood, -/area/library/lounge) -"bGG" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/library/lounge) -"bGH" = ( -/obj/machinery/portable_atmospherics/canister/water_vapor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bGI" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics North-West"; - dir = 4; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bGJ" = ( -/turf/open/floor/plasteel, -/area/engine/atmos) -"bGK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bGL" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bGM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bGN" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bGO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "atmodesk" - }, -/obj/machinery/door/window/eastright{ - name = "Atmospherics Desk"; - req_access_txt = "24" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/yellow, -/area/engine/atmos) -"bGP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bGQ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bGR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bGS" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bGT" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Engine Room"; - req_access_txt = "10;11" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow, -/area/engine/engineering) -"bGU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"bGV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bGW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bGX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bGY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bGZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bHa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bHb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bHc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bHd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bHe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"bHf" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Engine Room"; - req_access_txt = "10;11" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow, -/area/engine/engineering) -"bHg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/break_room) -"bHh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bHi" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bHj" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/break_room) -"bHk" = ( -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bHl" = ( -/obj/machinery/requests_console{ - department = "Chemistry"; - departmentType = 2; - name = "Chemistry RC"; - pixel_x = -30 - }, -/mob/living/simple_animal/bot/cleanbot{ - name = "Na2CO3" - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 8 - }, -/area/medical/chemistry) -"bHm" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bHn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"bHp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 4 - }, -/area/medical/chemistry) -"bHq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/chemistry) -"bHr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 - }, -/area/medical/medbay/central) -"bHs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/central) -"bHt" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/medbay/central) -"bHu" = ( -/obj/item/folder/white, -/obj/item/gun/syringe, -/obj/item/reagent_containers/dropper, -/obj/item/soap/nanotrasen, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/medical/medbay/zone2) -"bHv" = ( -/obj/item/storage/firstaid/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/neutral/side, -/area/medical/medbay/zone2) -"bHw" = ( -/obj/item/device/radio/intercom, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/neutral/side, -/area/medical/medbay/zone2) -"bHx" = ( -/obj/item/storage/firstaid/fire{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/neutral/side, -/area/medical/medbay/zone2) -"bHy" = ( -/obj/item/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/medical/medbay/zone2) -"bHz" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"bHA" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 9 - }, -/area/medical/genetics) -"bHB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/medical/genetics) -"bHC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/medical/genetics) -"bHD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bHE" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/genetics) -"bHF" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bHK" = ( -/obj/structure/weightlifter, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bHL" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bHM" = ( -/obj/structure/stacklifter, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bHN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bHO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bHP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bHQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bHR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bHS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 28; - pixel_y = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bHT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/fitness) -"bHU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bHV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bHW" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/black, -/area/library) -"bHX" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/library) -"bHY" = ( -/obj/structure/destructible/cult/tome, -/obj/item/clothing/under/suit_jacket/red, -/obj/item/book/codex_gigas, -/turf/open/floor/plasteel/black, -/area/library) -"bHZ" = ( -/turf/open/floor/wood, -/area/library) -"bIa" = ( -/obj/machinery/door/window{ - dir = 8; - icon_state = "right"; - name = "Library Desk"; - opacity = 1; - req_access_txt = "37" - }, -/turf/open/floor/wood, -/area/library) -"bIb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/wood, -/area/library) -"bIc" = ( -/turf/open/floor/wood, -/area/library/lounge) -"bId" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bIe" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bIf" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 28 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bIg" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"bIh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bIi" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bIj" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Atmospherics Storage"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bIk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIl" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIm" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIn" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "atmodesk"; - name = "Atmospherics Desk Shutters"; - pixel_x = 24 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-13" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/atmos) -"bIo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bIp" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/break_room) -"bIq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side, -/area/engine/break_room) -"bIr" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/yellow/side, -/area/engine/break_room) -"bIs" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/break_room) -"bIt" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"bIu" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIv" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIx" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIB" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bIC" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"bID" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/break_room) -"bIE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/break_room) -"bIF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/break_room) -"bIG" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/break_room) -"bIH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/table, -/obj/item/device/geiger_counter, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bII" = ( -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bIJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bIK" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bIL" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 8 - }, -/area/medical/chemistry) -"bIM" = ( -/obj/structure/table/glass, -/obj/item/hand_labeler_refill, -/obj/item/hand_labeler_refill, -/obj/item/hand_labeler, -/obj/item/stack/packageWrap, -/obj/machinery/light, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 8 - }, -/area/medical/chemistry) -"bIN" = ( -/obj/structure/table/glass, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/item/book/manual/wiki/chemistry, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 8 - }, -/area/medical/chemistry) -"bIO" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/machinery/camera{ - c_tag = "Chemistry"; - dir = 10; - network = list("SS13","CMO") - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 8 - }, -/area/medical/chemistry) -"bIP" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"bIQ" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/whiteyellow/corner, -/area/medical/chemistry) -"bIR" = ( -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/obj/item/clothing/glasses/science{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel/whiteyellow/corner, -/area/medical/chemistry) -"bIS" = ( -/obj/structure/table/glass, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/whiteyellow/corner, -/area/medical/chemistry) -"bIT" = ( -/obj/structure/closet/wardrobe/chemistry_white, -/turf/open/floor/plasteel/whiteyellow/corner, -/area/medical/chemistry) -"bIU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"bIV" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = null; - name = "Medbay Storage"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay/zone2) -"bIW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"bIX" = ( -/obj/structure/bedsheetbin{ - pixel_x = 2 - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/structure/table/glass, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/medical/medbay/zone2) -"bIY" = ( -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bIZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bJa" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/requests_console{ - department = "Genetics"; - departmentType = 0; - name = "Genetics Requests Console"; - pixel_x = -30 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/medical/genetics) -"bJb" = ( -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bJc" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bJd" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bJe" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/medical/genetics) -"bJf" = ( -/obj/machinery/door/window/westleft{ - name = "Monkey Pen"; - req_access_txt = "9" - }, -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"bJj" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bJl" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bJm" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bJn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bJo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bJp" = ( -/obj/structure/table, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bJq" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bJr" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"bJs" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/library) -"bJt" = ( -/turf/open/floor/plasteel/black, -/area/library) -"bJu" = ( -/turf/open/floor/plasteel/chapel, -/area/library) -"bJv" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"bJw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/library) -"bJx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/library) -"bJy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/turf/open/floor/carpet, -/area/library/lounge) -"bJz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bJA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bJB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_x = 24 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bJC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bJD" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera{ - c_tag = "Atmospherics Storage"; - dir = 4; - network = list("SS13","CE") - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bJE" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bJF" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bJG" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bJH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bJI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bJJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bJK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/atmos) -"bJL" = ( -/obj/machinery/camera{ - c_tag = "Engineering West"; - dir = 4; - network = list("SS13","CE") - }, -/obj/machinery/vending/tool, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engineering) -"bJM" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJN" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJO" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/engineering_construction, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/book/manual/wiki/engineering_guide, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJS" = ( -/obj/structure/table, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJT" = ( -/obj/structure/table, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bJU" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/pickaxe/mini, -/obj/machinery/camera{ - c_tag = "Engineering East"; - dir = 9; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"bJV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Gravity Generator"; - req_access_txt = "10;11" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bJW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bJX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bJY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/closet/secure_closet/medical3, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/zone2) -"bJZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/zone2) -"bKa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/zone2) -"bKb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/zone2) -"bKc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bKd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bKe" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone2) -"bKf" = ( -/obj/structure/closet/wardrobe/genetics_white, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/medical/genetics) -"bKg" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bKh" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/landmark/start/geneticist, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics) -"bKl" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bKm" = ( -/obj/structure/weightlifter, -/obj/machinery/camera{ - c_tag = "Fitness West"; - dir = 4; - network = list("SS13") - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bKn" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/fitness) -"bKo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/fitness) -"bKp" = ( -/obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/crew_quarters/fitness) -"bKq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Fitness Area" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bKr" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access_txt = "37" - }, -/turf/open/floor/wood, -/area/library) -"bKs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/library) -"bKt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/carpet, -/area/library) -"bKu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/turf/open/floor/carpet, -/area/library/lounge) -"bKv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/library/lounge) -"bKw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/library/lounge) -"bKx" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/library/lounge) -"bKy" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/library/lounge) -"bKz" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/atmos) -"bKA" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKB" = ( -/obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKC" = ( -/mob/living/simple_animal/pet/dog/pug{ - desc = "It's Spaghetti, the official pug of Atmospherics. Appropriately named after the jumbled mess of piping."; - name = "Spaghetti" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "Atmospherics North"; - dir = 9; - network = list("SS13","CE") - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/pickaxe/mini, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKE" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKH" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/engine/atmos) -"bKJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bKK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bKL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bKM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bKN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"bKO" = ( -/obj/structure/closet/radiation, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bKP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bKR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bKS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bKT" = ( -/obj/machinery/gravity_generator/main/station, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bKU" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bKV" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bKW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bKX" = ( -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bKY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bKZ" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Chemistry APC"; - areastring = "/area/medical/chemistry"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bLa" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"bLb" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay/zone2) -"bLc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 30 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"bLi" = ( -/obj/structure/table/glass, -/obj/item/storage/box/disks{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 10 - }, -/area/medical/genetics) -"bLj" = ( -/obj/structure/table/glass, -/obj/item/storage/box/rxglasses, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/medical/genetics) -"bLk" = ( -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/device/radio/headset/headset_medsci, -/obj/item/storage/pill_bottle/mutadone, -/obj/item/storage/pill_bottle/mannitol, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Genetics"; - dir = 10; - network = list("SS13","CMO") - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/medical/genetics) -"bLl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitepurple/side, -/area/medical/genetics) -"bLm" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 6 - }, -/area/medical/genetics) -"bLo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bLq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bLw" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bLx" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Fitness APC"; - areastring = "/area/crew_quarters/fitness"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bLy" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bLz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bLA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bLB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bLC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bLD" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"bLE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 4"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bLF" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/library) -"bLG" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/library) -"bLH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/library) -"bLI" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bLJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/library/lounge) -"bLK" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/library/lounge) -"bLL" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/wood, -/area/library/lounge) -"bLM" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/wood, -/area/library/lounge) -"bLN" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bLO" = ( -/obj/machinery/door/window/eastright{ - dir = 1; - name = "Interior Pipe Access"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bLP" = ( -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bLQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix To Engine"; - on = 0; - target_pressure = 101 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/atmos) -"bLR" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/pickaxe/mini, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLS" = ( -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Airlock"; - dir = 5; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLT" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLV" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLW" = ( -/obj/machinery/vending/engivend, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engineering) -"bLX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bLY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bLZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bMa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bMc" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"bMd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering South"; - dir = 1; - network = list("SS13","CE") - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engineering) -"bMf" = ( -/obj/machinery/light, -/obj/structure/rack, -/obj/item/pickaxe/mini, -/obj/item/pickaxe/mini, -/obj/item/pickaxe/mini, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMg" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/extinguisher, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMh" = ( -/obj/structure/rack, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/glasses/meson/engine, -/obj/item/device/geiger_counter, -/obj/item/device/geiger_counter, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMi" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMj" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"bMk" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engineering) -"bMl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Gravity Generator Airlock"; - dir = 1; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "Gravity Generator"; - req_access_txt = "10;11" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMp" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Gravity Generator"; - dir = 1; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Gravity Generator APC"; - areastring = "/area/engine/gravity_generator"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"bMt" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bMu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMw" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bMx" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"bMy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bMz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bMD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bME" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bMF" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bMG" = ( -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 - }, -/area/medical/medbay/zone2) -"bMH" = ( -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/light, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMI" = ( -/obj/item/hand_labeler, -/obj/item/gun/syringe, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMJ" = ( -/obj/item/reagent_containers/spray/cleaner, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMK" = ( -/obj/item/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/rxglasses, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bML" = ( -/obj/structure/closet/l3closet, -/obj/machinery/camera{ - c_tag = "Medbay Storage"; - dir = 10; - network = list("SS13","CMO") - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMM" = ( -/obj/structure/closet/wardrobe/white/medical, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMN" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/zone2) -"bMO" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Genetics Research"; - req_access_txt = "9" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bMP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bMQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bMR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bMV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bMW" = ( -/obj/structure/weightlifter, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bMX" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"bMY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"bMZ" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"bNa" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bNb" = ( -/obj/machinery/libraryscanner, -/turf/open/floor/wood, -/area/library) -"bNc" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/librarian, -/turf/open/floor/wood, -/area/library) -"bNd" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/library) -"bNe" = ( -/obj/structure/table/wood, -/obj/item/device/camera_film, -/turf/open/floor/wood, -/area/library) -"bNf" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole, -/turf/open/floor/wood, -/area/library/lounge) -"bNg" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/library/lounge) -"bNh" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/turf/open/floor/wood, -/area/library/lounge) -"bNi" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/fourcolor, -/turf/open/floor/wood, -/area/library/lounge) -"bNj" = ( -/obj/machinery/camera{ - c_tag = "Library East"; - dir = 9 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bNk" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Lounge APC"; - areastring = "/area/library/lounge"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/library/lounge) -"bNl" = ( -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bNm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2_in" - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bNn" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bNo" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bNp" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bNq" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/atmos) -"bNt" = ( -/obj/machinery/computer/card/minor/ce, -/obj/machinery/button/door{ - id = "engiestoragesmes"; - name = "Engineering SMES Blast Door Control"; - pixel_x = -24; - req_access_txt = "10;11" - }, -/obj/machinery/button/door{ - id = "engineeringlockdown"; - name = "Engineering Emergency Lockdown Control"; - pixel_x = -24; - pixel_y = 8; - req_access_txt = "10;11" - }, -/obj/machinery/button/door{ - id = "ceoffice"; - name = "Office Emergency Lockdown"; - pixel_x = -24; - pixel_y = -8; - req_access_txt = "10;11" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bNu" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bNv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bNw" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = null; - name = "SMES Room"; - req_access_txt = "10;11" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/engine_smes) -"bNx" = ( -/turf/closed/wall, -/area/engine/engine_smes) -"bNy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bNz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bNA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4"; - d1 = 1; - d2 = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bNB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bNC" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/engine/engine_smes) -"bND" = ( -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"bNE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bNF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bNG" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bNH" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bNI" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bNJ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bNK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Medical Storage"; - req_access_txt = "45" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bNL" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Genetics APC"; - areastring = "/area/medical/genetics"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bNM" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bNN" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bNO" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bNP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bNT" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bNU" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bNV" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bNW" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/door/window/eastleft, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bNX" = ( -/obj/structure/table/wood, -/obj/machinery/camera{ - c_tag = "Library West"; - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bNY" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood, -/area/library) -"bNZ" = ( -/obj/structure/table/wood, -/obj/item/pen/fourcolor, -/turf/open/floor/wood, -/area/library) -"bOa" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/wood, -/area/library) -"bOb" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bOc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bOd" = ( -/obj/structure/table/wood, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/wood, -/area/library/lounge) -"bOe" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library/lounge) -"bOf" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck/cas, -/obj/item/toy/cards/deck/cas/black, -/turf/open/floor/wood, -/area/library/lounge) -"bOg" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/library/lounge) -"bOh" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bOi" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bOj" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2_sensor" - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bOk" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bOl" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bOm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOo" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bOp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOq" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/storage/fancy/cigarettes, -/obj/item/lighter/greyscale, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOr" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/stool/bar, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOs" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/atmosplaque{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOu" = ( -/obj/machinery/suit_storage_unit/atmos, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"bOv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/engine/engine_smes) -"bOw" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOA" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/table, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOB" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/engine/engine_smes) -"bOC" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOD" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOE" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOF" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/sign/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOG" = ( -/obj/machinery/computer/station_alert, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOH" = ( -/obj/machinery/modular_computer/console/preset/engineering, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bOI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bOJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bOK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bOL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bOM" = ( -/obj/structure/table, -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bON" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bOO" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Medbay Storage APC"; - areastring = "/area/medical/medbay/zone2"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bOP" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bOQ" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bOR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bOS" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bOU" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bOV" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bOW" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bOX" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bOY" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bOZ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bPa" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bPb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bPc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bPd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/turf/open/floor/carpet, -/area/library) -"bPe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"bPf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"bPg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/carpet, -/area/library) -"bPh" = ( -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/wood, -/area/library/lounge) -"bPi" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library/lounge) -"bPj" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/library/lounge) -"bPk" = ( -/obj/machinery/light, -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library/lounge) -"bPl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bPm" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bPn" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"bPo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "n2_out"; - name = "n2 vent" - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"bPp" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bPq" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bPr" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/red, -/area/engine/atmos) -"bPs" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bPt" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPu" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/engine/atmos) -"bPv" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPy" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/suit_storage_unit/atmos, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"bPz" = ( -/obj/machinery/computer/apc_control, -/obj/machinery/light, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bPA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/keycard_auth{ - pixel_y = -28 - }, -/obj/structure/closet/secure_closet/engineering_chief, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bPB" = ( -/obj/machinery/suit_storage_unit/ce, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bPC" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bPD" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Chief Engineer's Office APC"; - areastring = "/area/crew_quarters/heads/chief"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"bPE" = ( -/obj/structure/table, -/obj/item/book/manual/engineering_particle_accelerator, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engine_smes) -"bPF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPG" = ( -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPH" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPJ" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPK" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPL" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPN" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Engineering SMES Storage APC"; - areastring = "/area/engine/engine_smes"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bPO" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bPP" = ( -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bPQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPR" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bPS" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPT" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPV" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPW" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - Atmospherics"; - sortType = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPY" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - Engineering"; - sortType = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bPZ" = ( -/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/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bQa" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bQb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bQd" = ( -/obj/machinery/newscaster{ - pixel_x = -28; - pixel_y = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"bQe" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bQf" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bQg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bQh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Library" - }, -/turf/open/floor/carpet, -/area/library) -"bQi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"bQj" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/carpet, -/area/library) -"bQk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/library) -"bQl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/wood, -/area/library) -"bQm" = ( -/obj/machinery/door/morgue{ - name = "Explicit Section" - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bQn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/library/lounge) -"bQo" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/library/lounge) -"bQp" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bQq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospheric Tanks 2"; - dir = 5; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bQr" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bQs" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQt" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "North Canister to Waste" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQv" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQx" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Canister To Waste"; - on = 0; - target_pressure = 101 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQy" = ( -/obj/structure/fireaxecabinet{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQz" = ( -/turf/closed/wall, -/area/engine/atmos) -"bQA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"bQB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"bQC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"bQD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"bQE" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/book/manual/wiki/engineering_guide, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/engine_smes) -"bQF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQK" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Power Storage"; - dir = 1; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"bQL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/corner, -/area/engine/engine_smes) -"bQM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/window{ - dir = 8; - icon_state = "right"; - name = "Engineering Delivery Chute"; - opacity = 1; - req_access_txt = "10" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bQN" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bQO" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bQP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bQQ" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bQR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bQS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bQT" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bQV" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bQW" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bQX" = ( -/obj/structure/table, -/obj/item/storage/box/cups, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bQY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bQZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bRa" = ( -/obj/structure/window/reinforced, -/obj/machinery/door/window/westright, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bRb" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bRc" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/fitness) -"bRd" = ( -/obj/structure/table, -/obj/item/storage/firstaid/brute, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bRe" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bRf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bRg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/library) -"bRh" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bRi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"bRj" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bRk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bRl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"bRm" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"bRn" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bRo" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bRp" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"bRq" = ( -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bRr" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "o2_in" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bRs" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bRv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"bRw" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bRx" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRy" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Filter to Waste"; - on = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRA" = ( -/obj/machinery/meter{ - frequency = 1441; - id_tag = "waste_meter"; - name = "Waste Loop" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/engine/atmos) -"bRC" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engine_smes) -"bRD" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Engineering Power Storage 2"; - dir = 1; - network = list("SS13","CE") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRE" = ( -/obj/machinery/button/door{ - id = "engiestoragesmes"; - name = "Engineering SMES Blast Door Control"; - pixel_y = -24; - req_access_txt = "10;11" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRF" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRG" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRH" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRI" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRJ" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engine_smes) -"bRK" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/engine_smes) -"bRL" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engine_smes) -"bRM" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/engine_smes) -"bRN" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bRO" = ( -/obj/machinery/camera{ - c_tag = "Medbay Asteroid Hallway 1"; - dir = 8; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bRP" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"bRQ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bRR" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bRS" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bRT" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bRU" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/cobweb, -/obj/item/coin/silver, -/obj/item/coin/silver, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bRV" = ( -/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, -/area/maintenance/asteroid/port/west) -"bRW" = ( -/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, -/area/maintenance/asteroid/port/west) -"bRX" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bRY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bRZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"bSb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bSc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bSd" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/library) -"bSe" = ( -/turf/open/floor/carpet, -/area/library) -"bSf" = ( -/obj/structure/bookcase/random/nonfiction, -/turf/open/floor/wood, -/area/library) -"bSg" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/library) -"bSh" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/wood, -/area/library) -"bSi" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bSj" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bSk" = ( -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bSl" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bSm" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bSn" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bSo" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "o2_sensor" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bSp" = ( -/obj/machinery/pipedispenser/disposal, -/turf/open/floor/plasteel/yellow/corner, -/area/engine/atmos) -"bSq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure To Canisters"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSr" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bSs" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Distro"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/yellow, -/area/engine/atmos) -"bSt" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSu" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - min_temperature = 80; - on = 1; - target_temperature = 80 - }, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"bSv" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Distro to Waste"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bSx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Central Asteroid Maintenance"; - req_access_txt = "10" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bSy" = ( -/obj/machinery/door/poddoor{ - id = "engiestoragesmes"; - name = "Engineering SMES Storage" - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bSz" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"bSA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bSB" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bSC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bSD" = ( -/obj/structure/table, -/obj/item/paper_bin, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bSE" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bSF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bSG" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bSH" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Fitness South"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/crew_quarters/fitness) -"bSM" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"bSN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"bSO" = ( -/obj/structure/punching_bag, -/obj/machinery/light, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bSP" = ( -/obj/structure/punching_bag, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"bSQ" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bSR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bSS" = ( -/obj/machinery/light/small, -/turf/open/floor/carpet, -/area/library) -"bST" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bSU" = ( -/obj/machinery/camera{ - c_tag = "Library Explicits"; - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"bSV" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"bSW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "o2_out"; - name = "oxygen vent" - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"bSY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bSZ" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 2; - name = "air mixer"; - node1_concentration = 0.8; - node2_concentration = 0.2; - on = 1; - target_pressure = 4500 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTa" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix To Canisters"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bTc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"bTd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bTe" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 4; - on = 1 - }, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"bTf" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, -/obj/machinery/meter{ - frequency = 1441; - id_tag = "distro_meter"; - name = "Distribution Loop" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bTh" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bTi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTk" = ( -/obj/machinery/button/door{ - id = "engiestoragesmes"; - name = "Engineering SMES Blast Door Control"; - pixel_y = 24; - req_access_txt = "10;11" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTl" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTm" = ( -/obj/machinery/field/generator, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTn" = ( -/obj/machinery/power/emitter, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTo" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bTp" = ( -/obj/item/stack/sheet/mineral/wood, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bTq" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bTr" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bTs" = ( -/turf/closed/wall, -/area/crew_quarters/toilet/fitness) -"bTt" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/toilet/fitness) -"bTu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/toilet/fitness) -"bTv" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"bTw" = ( -/obj/machinery/door/airlock/glass{ - name = "Holodeck Arena" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bTx" = ( -/obj/machinery/door/airlock{ - name = "Private Study" - }, -/turf/open/floor/plasteel/grimy, -/area/library) -"bTy" = ( -/obj/machinery/light/small, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bTz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bTA" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bTB" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTC" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"bTD" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"bTE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Mix"; - on = 0 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bTF" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTG" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Distro"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Distro"; - dir = 9; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTJ" = ( -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTK" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTL" = ( -/obj/machinery/power/emitter, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bTM" = ( -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bTN" = ( -/obj/structure/closet/crate, -/obj/item/pickaxe/emergency, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"bTO" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"bTP" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bTQ" = ( -/obj/structure/barricade/wooden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bTR" = ( -/obj/structure/girder, -/obj/structure/grille, -/obj/structure/barricade/wooden, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"bTS" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/obj/item/clothing/head/cone, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bTT" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bTU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bTV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bTW" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bTX" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bTY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bTZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Holodeck North" - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Broom Closet"; - req_access_txt = "0" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bUg" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bUh" = ( -/obj/machinery/newscaster{ - pixel_x = -28; - pixel_y = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/library) -"bUi" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/grimy, -/area/library) -"bUj" = ( -/turf/open/floor/engine/air, -/area/engine/atmos) -"bUk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"bUl" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank In" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bUo" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUp" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bUq" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bUr" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/engine/atmos) -"bUs" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bUt" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUu" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Distro"; - on = 1; - target_pressure = 101 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUv" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bUw" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bUx" = ( -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bUz" = ( -/obj/machinery/the_singularitygen{ - anchored = 0 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bUA" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/engine/engine_smes) -"bUB" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bUC" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"bUD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bUE" = ( -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bUF" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bUK" = ( -/obj/structure/janitorialcart, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bUL" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/library) -"bUM" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/grimy, -/area/library) -"bUN" = ( -/turf/closed/wall, -/area/chapel/main) -"bUO" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/main) -"bUP" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/main) -"bUQ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"bUR" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/engine/air, -/area/engine/atmos) -"bUS" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "air_sensor" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"bUT" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/atmos) -"bUV" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bUW" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUX" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Mix" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUY" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVa" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bVb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"bVc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"bVd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bVe" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"bVg" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Fitness Bathroom APC"; - areastring = "/area/crew_quarters/toilet/fitness"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bVh" = ( -/obj/machinery/camera{ - c_tag = "Fitness Bathrooms"; - dir = 4; - network = list("SS13","CE") - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/urinal{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bVi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bVj" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"bVk" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bVl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/storage/firstaid/brute, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bVm" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVn" = ( -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVo" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVq" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/chapel/main) -"bVr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 4; - frequency = 1441; - id_tag = "air_out"; - name = "air out" - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"bVs" = ( -/obj/machinery/meter{ - name = "Mixed Air Tank Out" - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bVt" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVu" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel/barber, -/area/engine/atmos) -"bVv" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Pure"; - on = 0 - }, -/turf/open/floor/plasteel/barber, -/area/engine/atmos) -"bVw" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - dir = 1; - name = "Interior Pipe Access"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVx" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "co2"; - name = "co2 filter"; - on = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/vault, -/area/engine/atmos) -"bVy" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "co2_in"; - name = "Carbon Dioxide Supply Control"; - output_tag = "co2_out"; - sensors = list("co2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"bVz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "CO2 to Pure"; - on = 0 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/vault, -/area/engine/atmos) -"bVA" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "plasma"; - name = "plasma filter"; - on = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/purple, -/area/engine/atmos) -"bVB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Unfiltered to Mix"; - on = 1 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"bVC" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"bVE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"bVF" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/urinal{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bVG" = ( -/obj/machinery/door/airlock{ - id_tag = "fb1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bVH" = ( -/obj/machinery/light/small, -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "fb1"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bVI" = ( -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/holodeck/rec_center) -"bVJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/storage/firstaid/o2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bVK" = ( -/obj/machinery/camera{ - c_tag = "Chapel West"; - dir = 5 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"bVL" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"bVM" = ( -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"bVN" = ( -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"bVO" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVP" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bVR" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"bVS" = ( -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bVT" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bVU" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVV" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVX" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVY" = ( -/obj/machinery/camera{ - c_tag = "Atmospheric Tanks 1"; - dir = 1; - network = list("SS13","CE") - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bVZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"bWa" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"bWb" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/atmos) -"bWc" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "mix_in"; - name = "Gas Mix Tank Control"; - output_tag = "mix_in"; - sensors = list("mix_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bWd" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bWe" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"bWf" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"bWh" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/east) -"bWi" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/east) -"bWj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 5"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"bWk" = ( -/obj/effect/spawner/structure/window, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/chapel/main) -"bWl" = ( -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"bWm" = ( -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"bWn" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bWo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bWp" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bWq" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bWr" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bWs" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bWt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bWu" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bWv" = ( -/obj/machinery/meter, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bWw" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bWx" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bWy" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bWz" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/east) -"bWA" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/east) -"bWB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bWC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bWD" = ( -/obj/machinery/door/airlock{ - id_tag = "fb2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bWE" = ( -/obj/machinery/light/small, -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "fb2"; - name = "Privacy Bolts"; - normaldoorcontrol = 1; - pixel_x = 24 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bWF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bWG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bWH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bWI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bWJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bWK" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bWL" = ( -/obj/machinery/camera{ - c_tag = "Chapel East"; - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bWM" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Chapel APC"; - areastring = "/area/chapel/main"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/chapel/main) -"bWN" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "co2_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bWO" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "co2_sensor" - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bWP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "co2_out"; - name = "co2 vent" - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bWQ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "tox_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bWR" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "tox_sensor" - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bWS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "tox_out"; - name = "plasma vent" - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bWT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "n2o_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bWU" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "n2o_sensor" - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bWV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "n2o_out"; - name = "n2o vent" - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bWW" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "mix_in"; - pixel_y = 1 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bWX" = ( -/obj/machinery/air_sensor{ - frequency = 1441; - id_tag = "mix_sensor" - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bWY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1441; - id_tag = "mix_in"; - name = "distro vent" - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bWZ" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bXa" = ( -/obj/structure/girder, -/obj/structure/grille, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bXb" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bXc" = ( -/obj/structure/chair/stool, -/obj/structure/sign/poster/contraband/hacking_guide{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bXd" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"bXe" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXf" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXg" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXh" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/east) -"bXi" = ( -/obj/effect/turf_decal/stripes/end, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Eastern External Waste Belt APC"; - areastring = "/area/maintenance/asteroid/disposal/external/east"; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXj" = ( -/obj/machinery/conveyor/auto{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXk" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXl" = ( -/obj/machinery/door/airlock{ - name = "Shower Room" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bXm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/toilet/fitness) -"bXn" = ( -/obj/machinery/door/airlock/glass{ - name = "Holodeck Arena" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"bXo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bXp" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bXq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bXr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Chapel" - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bXs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bXt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bXu" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"bXv" = ( -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bXw" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bXx" = ( -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bXy" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bXz" = ( -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bXA" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide{ - valve_open = 1 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bXB" = ( -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bXC" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"bXD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/rack, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bXE" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bXF" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bXG" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/east) -"bXH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/east) -"bXI" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/conveyor/auto{ - dir = 10; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bXJ" = ( -/obj/structure/rack, -/obj/item/pickaxe/emergency, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bXK" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bXL" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bXM" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bXN" = ( -/obj/machinery/computer/holodeck, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bXO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bXP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bXQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Holodeck Arena" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bXR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bXS" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bXT" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/chapel/main) -"bXU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"bXV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"bXW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bXX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"bXY" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bXZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bYa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bYb" = ( -/turf/closed/wall, -/area/crew_quarters/abandoned_gambling_den) -"bYc" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"bYd" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bYe" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bYf" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bYg" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bYh" = ( -/obj/structure/grille/broken, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bYi" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/central) -"bYj" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bYk" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bYl" = ( -/obj/machinery/conveyor/auto{ - dir = 10; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/east) -"bYm" = ( -/obj/structure/rack, -/obj/item/pickaxe/emergency, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"bYn" = ( -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYp" = ( -/obj/structure/table, -/obj/item/paper/fluff/holodeck/disclaimer, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bYq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bYr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bYs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass{ - name = "Holodeck Arena" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bYu" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bYv" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bYw" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"bYx" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"bYy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bYz" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"bYA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"bYB" = ( -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"bYC" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"bYD" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/east) -"bYE" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"bYF" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYG" = ( -/obj/item/soap/nanotrasen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bYI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bYJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"bYK" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bYL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/chapel/main) -"bYM" = ( -/obj/machinery/door/morgue{ - name = "Confession Room" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bYN" = ( -/obj/machinery/door/morgue{ - name = "Confession Room"; - req_access_txt = "22" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/chapel/office) -"bYP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/chapel/office) -"bYQ" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - Chapel"; - sortType = 17 - }, -/turf/closed/wall, -/area/chapel/office) -"bYR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock{ - name = "Chaplain's Office"; - req_access_txt = "22" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"bYS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/office) -"bYT" = ( -/obj/structure/mineral_door/wood, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"bYU" = ( -/obj/structure/sign/barsign, -/turf/closed/wall, -/area/crew_quarters/abandoned_gambling_den) -"bYV" = ( -/obj/machinery/disposal/deliveryChute, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/east) -"bYW" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"bYY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bYZ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/chapel/main) -"bZa" = ( -/turf/closed/mineral, -/area/chapel/main) -"bZb" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bZc" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/chapel/main) -"bZd" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bZe" = ( -/obj/machinery/door/morgue{ - name = "Confession Room"; - req_access_txt = "22" - }, -/turf/open/floor/plating, -/area/chapel/office) -"bZf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "applebush" - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZg" = ( -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZi" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZj" = ( -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZk" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/office) -"bZl" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/closet/coffin, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bZm" = ( -/obj/machinery/door/window/northleft{ - name = "Casket Storage"; - req_access_txt = "22" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bZn" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/main) -"bZo" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"bZp" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"bZq" = ( -/obj/item/chair/stool, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"bZr" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"bZs" = ( -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"bZt" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"bZu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"bZv" = ( -/obj/structure/sign/mining{ - pixel_y = -32 - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"bZy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/port/east) -"bZz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/wardrobe/black, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bZA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bZB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"bZC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bZD" = ( -/turf/closed/wall, -/area/chapel/office) -"bZE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Chapel Office"; - dir = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZF" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/chair/wood/wings, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZJ" = ( -/obj/structure/closet/coffin, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"bZK" = ( -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"bZL" = ( -/obj/structure/table/wood/poker, -/obj/item/gun/ballistic/revolver/russian, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"bZM" = ( -/obj/structure/light_construct{ - dir = 4 - }, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"bZN" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"bZS" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"bZT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"bZU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"bZV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bZW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bZX" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bZY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"bZZ" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/holywater, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"caa" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cab" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cac" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/storage/crayons, -/obj/item/storage/fancy/candle_box{ - pixel_x = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cad" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"cae" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"cak" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cal" = ( -/turf/closed/mineral, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cam" = ( -/turf/closed/wall, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"can" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"cao" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/port) -"cap" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"caq" = ( -/obj/structure/table/wood, -/obj/item/nullrod, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cas" = ( -/obj/structure/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 1 - }, -/obj/effect/landmark/start/chaplain, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cat" = ( -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cau" = ( -/obj/structure/closet/coffin, -/obj/machinery/camera{ - c_tag = "Chapel Coffins"; - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"cav" = ( -/obj/item/chair/stool, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"caw" = ( -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"caF" = ( -/obj/structure/glowshroom/single, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating/asteroid, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"caG" = ( -/turf/open/floor/plating/asteroid, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"caH" = ( -/turf/open/floor/plating/astplate, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"caI" = ( -/obj/structure/falsewall{ - desc = "A huge chunk of metal used to separate rooms. Nothing odd here, sir."; - name = "inconspicuous wall" - }, -/turf/open/floor/plating/astplate, -/area/crew_quarters/fitness) -"caJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"caK" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"caL" = ( -/obj/structure/closet/wardrobe/chaplain_black, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"caM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"caN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"caO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/girder, -/obj/structure/grille, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"caP" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"caQ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"caS" = ( -/obj/item/chair, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"caV" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil/white, -/obj/item/stack/cable_coil/white, -/obj/item/crowbar/red, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"caW" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"caX" = ( -/obj/structure/glowshroom/single, -/turf/open/floor/plating/asteroid, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"caY" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = -28; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"caZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Holodeck South"; - dir = 1; - network = list("SS13") - }, -/obj/structure/closet/lasertag/blue, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/lasertag/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cbb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/lasertag/red, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cbc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/lasertag/red, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cbd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cbe" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cbf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 6"; - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"cbg" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"cbh" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"cbi" = ( -/obj/machinery/door/window/northleft{ - name = "Chapel Mail"; - req_access_txt = "22" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/chapel/office) -"cbj" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/chapel/office) -"cbk" = ( -/obj/machinery/door/airlock{ - name = "Crematorium"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbl" = ( -/obj/structure/cable/orange, -/obj/machinery/power/apc{ - dir = 2; - name = "Gambler Den APC"; - areastring = "/area/crew_quarters/abandoned_gambling_den"; - pixel_y = -24 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/crew_quarters/abandoned_gambling_den) -"cbm" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"cbn" = ( -/obj/machinery/computer/slot_machine, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"cbs" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cbt" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"cbu" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"cbv" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"cbw" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating, -/area/chapel/office) -"cbx" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/chapel/office) -"cby" = ( -/obj/structure/bodycontainer/crematorium{ - id = "creamed" - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbz" = ( -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbA" = ( -/obj/machinery/camera{ - c_tag = "Crematorium"; - dir = 9 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbB" = ( -/obj/structure/plasticflaps, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Chapel" - }, -/turf/open/floor/plating, -/area/chapel/office) -"cbC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"cbE" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cbF" = ( -/obj/item/stack/sheet/mineral/wood, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cbG" = ( -/obj/structure/bed, -/obj/item/bedsheet/clown, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbH" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp/bananalamp, -/obj/item/device/instrument/violin, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/sign/poster/contraband/clown{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbI" = ( -/obj/structure/mineral_door/wood{ - name = "Secret Clown HQ" - }, -/turf/open/floor/plating/astplate, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"cbK" = ( -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"cbL" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/port) -"cbM" = ( -/obj/machinery/button/crematorium{ - id = "creamed"; - pixel_x = -24 - }, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbN" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbO" = ( -/obj/structure/table/wood, -/obj/item/storage/book/bible, -/turf/open/floor/plasteel/black, -/area/chapel/office) -"cbP" = ( -/obj/structure/closet/crate{ - name = "top secret clown supplies" - }, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/storage/box/mousetraps, -/obj/item/storage/crayons, -/obj/item/clothing/mask/joy, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbQ" = ( -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbR" = ( -/mob/living/carbon/monkey{ - name = "Mr.Teeny" - }, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbS" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating/astplate, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cbT" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"cbU" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Docking Asteroid" - }) -"cbV" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Docking Asteroid" - }) -"cbW" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Docking Asteroid" - }) -"cbY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"cbZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"cca" = ( -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"ccb" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"ccc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"ccd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"cce" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"ccf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"ccg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/dock_med) -"cch" = ( -/obj/structure/table, -/obj/item/toy/figure/clown, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cci" = ( -/obj/item/grown/bananapeel{ - name = "state-of-the-art clown home defense peel" - }, -/obj/structure/table, -/obj/item/grown/bananapeel{ - name = "state-of-the-art clown home defense peel" - }, -/obj/item/coin/clown, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"ccj" = ( -/obj/structure/closet/crate/bin, -/obj/item/clothing/mask/gas/mime, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cck" = ( -/obj/machinery/vending/autodrobe{ - desc = "A vending machine for costumes. The machine seems blessed by some higher power, allowing it to function without power. HONK!"; - use_power = 0 - }, -/turf/open/floor/plating, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"ccl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"ccm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"ccn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2; - name = "Arrivals Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cco" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"ccp" = ( -/obj/item/stack/sheet/mineral/wood, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccr" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccs" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Docking Asteroid" - }) -"cct" = ( -/turf/closed/mineral/random/low_chance, -/area/maintenance/asteroid/port/west) -"ccu" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"ccv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccw" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccx" = ( -/obj/item/ore/iron, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccy" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/item/ore/iron, -/obj/item/ore/iron, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccz" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"ccA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix Input"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccD" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccE" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/aft/arrivals) -"ccF" = ( -/turf/closed/mineral/random/low_chance, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"ccG" = ( -/obj/item/ore/iron, -/obj/item/ore/iron, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccH" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Docking Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccJ" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"ccK" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccL" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ccM" = ( -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ccN" = ( -/obj/item/storage/bag/ore, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccO" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"ccS" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"ccT" = ( -/obj/item/storage/bag/ore, -/obj/item/pickaxe/mini, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ccU" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"ccV" = ( -/obj/item/device/flashlight/lantern, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"ccW" = ( -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"ccX" = ( -/turf/closed/mineral/random/low_chance, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"ccY" = ( -/obj/item/device/flashlight/lantern, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"ccZ" = ( -/obj/item/pickaxe/mini, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cda" = ( -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cdb" = ( -/turf/open/floor/plating/asteroid/airless, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cdc" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"cdd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Service-Research Bridge"; - dir = 9 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"cde" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdh" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cdi" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/aft/arrivals) -"cdj" = ( -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/aft) -"cdk" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix Output"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cdn" = ( -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/aft) -"cdo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Docking Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdq" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cdr" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/escape) -"cds" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/escape) -"cdt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdu" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/asteroid/aft) -"cdv" = ( -/turf/closed/wall/r_wall/rust, -/area/maintenance/solars/asteroid/aft) -"cdw" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 16"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cdx" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"cdy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cdz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdA" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cdB" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"cdC" = ( -/obj/structure/lattice, -/obj/item/wirecutters, -/turf/open/space, -/area/solar/asteroid/aft) -"cdD" = ( -/obj/structure/closet/crate{ - name = "solar pack crate" - }, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/solar_assembly, -/obj/item/electronics/tracker, -/obj/item/paper/guides/jobs/engi/solars, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdE" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/aft) -"cdF" = ( -/obj/machinery/power/smes, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE"; - pixel_x = 32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/aft) -"cdG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cdH" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 1; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cdI" = ( -/turf/closed/wall, -/area/construction/mining/aux_base) -"cdJ" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"cdK" = ( -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"cdL" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"cdM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Solar Maintenance"; - req_access = null; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/aft) -"cdR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cdS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cdT" = ( -/turf/closed/wall, -/area/hallway/secondary/exit) -"cdU" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/secondary/exit) -"cdV" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cdW" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/turf/open/floor/mineral/plastitanium/brig{ - dir = 9; - floor_tile = /obj/item/stack/tile/plasteel; - icon_state = "darkred" - }, -/area/shuttle/escape) -"cdX" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 1; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cdY" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 1; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cdZ" = ( -/obj/structure/closet/secure_closet/miner/unlocked, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cea" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ceb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cec" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"ced" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/crew{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/circuitboard/computer/card{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/circuitboard/computer/communications{ - pixel_x = 5; - pixel_y = -5 - }, -/obj/machinery/camera{ - c_tag = "Secure Tech Storage"; - dir = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"cee" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"cef" = ( -/obj/structure/lattice, -/obj/structure/sign/mining{ - pixel_y = -32 - }, -/turf/open/space, -/area/space) -"ceg" = ( -/obj/item/wrench, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"ceh" = ( -/obj/structure/lattice, -/obj/item/storage/toolbox/electrical, -/turf/open/space, -/area/space) -"cei" = ( -/obj/machinery/power/solar_control{ - id = "portsolar"; - name = "Aft Asteroid Solar Control"; - track = 0 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/aft) -"cej" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cek" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Aft Asteroid Solar APC"; - areastring = "/area/maintenance/solars/asteroid/aft"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"cel" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cem" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/item/coin/silver, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cen" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/hallway/secondary/exit) -"ceo" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"cep" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"ceq" = ( -/obj/structure/chair, -/obj/machinery/camera{ - c_tag = "Docking Security Holding Area"; - dir = 6 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"cer" = ( -/obj/structure/chair, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/hallway/secondary/exit) -"ces" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/hallway/secondary/exit) -"cet" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"ceu" = ( -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 1; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cev" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cew" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"cex" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_sci) -"cey" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cez" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ceA" = ( -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ceB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ceC" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"ceD" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/robotics{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/circuitboard/computer/mecha_control{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/storage/tech) -"ceE" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"ceF" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/borgupload{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/circuitboard/computer/aiupload{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/storage/tech) -"ceG" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"ceH" = ( -/turf/closed/wall, -/area/quartermaster/miningdock/abandoned) -"ceI" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/quartermaster/miningdock/abandoned) -"ceJ" = ( -/obj/item/solar_assembly, -/obj/item/stack/sheet/glass, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/aft) -"ceK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Solars"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"ceL" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"ceM" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/hallway/secondary/exit) -"ceN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"ceO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"ceP" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"ceQ" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"ceR" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/hallway/secondary/exit) -"ceS" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"ceT" = ( -/turf/open/floor/mineral/plastitanium/brig{ - dir = 8; - floor_tile = /obj/item/stack/tile/plasteel; - icon_state = "darkred" - }, -/area/shuttle/escape) -"ceU" = ( -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkredfull" - }, -/area/shuttle/escape) -"ceV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"ceW" = ( -/turf/closed/wall, -/area/hallway/primary/aft) -"ceX" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"ceY" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"ceZ" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cfa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cfb" = ( -/turf/closed/wall, -/area/storage/tech) -"cfc" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage"; - req_access_txt = "19;23" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"cfd" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/delivery, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cfe" = ( -/obj/structure/ore_box, -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cff" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe/mini, -/obj/item/gun/energy/kinetic_accelerator, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cfg" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/quartermaster/miningdock/abandoned) -"cfh" = ( -/obj/item/solar_assembly, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solar/asteroid/aft) -"cfi" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cfj" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cfk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"cfl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cfm" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cfn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cfo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cfp" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cfq" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "shuttle_flasher"; - pixel_x = -24; - pixel_y = 6 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cfr" = ( -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"cfs" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Brig"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkredfull" - }, -/area/shuttle/escape) -"cft" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cfu" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cfv" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cfw" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cfx" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cfy" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"cfz" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Tech Storage APC"; - areastring = "/area/ai_monitored/turret_protected/ai_upload"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"cfA" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"cfB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/cone, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cfC" = ( -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cfD" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Mining Storage APC"; - areastring = "/area/quartermaster/miningdock/abandoned"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cfE" = ( -/obj/machinery/power/port_gen/pacman, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cfF" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cfG" = ( -/obj/item/stack/sheet/glass, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"cfH" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cfI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cfJ" = ( -/turf/closed/wall, -/area/maintenance/asteroid/aft/arrivals) -"cfK" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/arrivals) -"cfL" = ( -/obj/structure/rack, -/obj/item/pickaxe/mini, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cfM" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cfN" = ( -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/hallway/secondary/exit) -"cfO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side, -/area/hallway/secondary/exit) -"cfP" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cfQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cfR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner, -/area/hallway/secondary/exit) -"cfS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/red/side, -/area/hallway/secondary/exit) -"cfT" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/hallway/secondary/exit) -"cfU" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 8; - name = "Security Escape Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cfV" = ( -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cfW" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Emergency Shuttle Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"cfX" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 10; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cfY" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 2; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cfZ" = ( -/obj/structure/table, -/obj/item/storage/box/teargas, -/obj/item/storage/box/zipties, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 2; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"cga" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cgb" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cgc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1; - name = "Research Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cgd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cge" = ( -/obj/docking_port/mobile/auxillary_base{ - dheight = 4; - dir = 4; - dwidth = 4; - height = 9; - width = 9 - }, -/obj/machinery/computer/auxillary_base, -/obj/docking_port/stationary/public_mining_dock, -/turf/closed/wall, -/area/shuttle/auxillary_base) -"cgf" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cgg" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/storage/tech) -"cgh" = ( -/obj/structure/table, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cgi" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/paper/fluff/stations/cere/abandoned_dock, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cgj" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cgk" = ( -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"cgl" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cgm" = ( -/obj/structure/sign/mining{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cgn" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cgo" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Arrival Hallway Maintenance APC"; - areastring = "/area/maintenance/asteroid/aft/arrivals"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgp" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgq" = ( -/obj/machinery/computer/station_alert, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgr" = ( -/obj/machinery/camera{ - c_tag = "Arrivals SMES"; - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgs" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgt" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cgu" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cgv" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cgw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cgx" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Holding Area"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cgy" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/escape) -"cgz" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cgA" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cgB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cgC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cgD" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cgE" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/storage/tech) -"cgF" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/turf/open/floor/plating, -/area/storage/tech) -"cgG" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cgH" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"cgI" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/device/multitool, -/obj/structure/sign/securearea{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cgJ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high/plus, -/obj/machinery/camera{ - c_tag = "Tech Storage North" - }, -/turf/open/floor/plating, -/area/storage/tech) -"cgK" = ( -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/item/wirecutters, -/turf/open/floor/plating, -/area/storage/tech) -"cgL" = ( -/obj/structure/table, -/obj/item/aiModule/reset, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cgM" = ( -/obj/machinery/ai_status_display{ - pixel_y = 32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cgN" = ( -/obj/machinery/computer/upload/borg, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cgO" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cgP" = ( -/obj/machinery/computer/upload/ai, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cgQ" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cgR" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen"; - opened = 1 - }, -/obj/item/ore/silver, -/obj/item/ore/silver, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/iron, -/obj/item/ore/gold, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cgS" = ( -/obj/machinery/light/small, -/obj/structure/table, -/turf/open/floor/plating, -/area/quartermaster/miningdock/abandoned) -"cgT" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cgU" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/arrivals) -"cgV" = ( -/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/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"cgW" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"cgY" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cgZ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cha" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"chb" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"chc" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Auxillary Construction APC"; - areastring = "/area/security/vacantoffice"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"chd" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"che" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"chf" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel/escape{ - dir = 9 - }, -/area/hallway/secondary/exit) -"chg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/escape{ - dir = 1 - }, -/area/hallway/secondary/exit) -"chh" = ( -/turf/open/floor/plasteel/escape/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"chi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"chj" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"chk" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"chl" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Emergency Shuttle Airlock" - }, -/obj/docking_port/mobile/emergency{ - dheight = 0; - dwidth = 15; - height = 20; - name = "Cere emergency shuttle"; - port_angle = 90; - preferred_direction = 1; - width = 42 - }, -/obj/docking_port/stationary{ - dir = 4; - dwidth = 15; - height = 20; - id = "emergency_home"; - name = "CereStation emergency evac bay"; - turf_type = /turf/open/space; - width = 42 - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"chm" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"chn" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cho" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chp" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Research Asteroid Hallway 1"; - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"chs" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cht" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 1; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chu" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plating, -/area/storage/tech) -"chv" = ( -/turf/open/floor/plating, -/area/storage/tech) -"chw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/storage/tech) -"chx" = ( -/obj/structure/table, -/obj/item/electronics/apc, -/obj/item/electronics/airlock, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"chy" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/quarantine, -/obj/machinery/camera/motion{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"chz" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"chA" = ( -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"chB" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/freeform, -/obj/structure/sign/kiddieplaque{ - pixel_x = 32 - }, -/obj/machinery/camera/motion{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"chC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall, -/area/maintenance/asteroid/aft/arrivals) -"chD" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"chE" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"chF" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"chG" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"chH" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"chI" = ( -/turf/closed/wall, -/area/security/vacantoffice) -"chJ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"chK" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"chL" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/shuttle/escape) -"chM" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chN" = ( -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"chP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Mix Input"; - on = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chR" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"chS" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/turf/open/floor/plating, -/area/storage/tech) -"chT" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/machinery/requests_console{ - department = "Tech storage"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/storage/tech) -"chU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/storage/tech) -"chV" = ( -/obj/structure/table, -/obj/item/device/aicard, -/obj/item/aiModule/reset, -/turf/open/floor/plating, -/area/storage/tech) -"chW" = ( -/obj/structure/table, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/turf/open/floor/plating, -/area/storage/tech) -"chX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"chY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"chZ" = ( -/obj/structure/table, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cia" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cib" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"cic" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cid" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cie" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/closed/wall, -/area/maintenance/asteroid/aft/arrivals) -"cif" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall, -/area/maintenance/asteroid/aft/arrivals) -"cig" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/arrivals) -"cih" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/arrivals) -"cii" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Docking Asteroid SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cij" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cik" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cil" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cim" = ( -/turf/open/floor/wood, -/area/security/vacantoffice) -"cin" = ( -/obj/structure/table/wood, -/obj/item/device/flashlight/lamp, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cio" = ( -/obj/structure/closet, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cip" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"ciq" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cir" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cis" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/hallway/primary/aft) -"cit" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"ciu" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"civ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"ciw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "Research Atmospherics Checkpoint"; - dir = 5 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cix" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"ciy" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"ciz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/ore_box, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ciA" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ciB" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"ciC" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/device/t_scanner, -/obj/item/device/multitool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/storage/tech) -"ciD" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/device/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/storage/tech) -"ciE" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"ciF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"ciG" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"ciH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"ciI" = ( -/turf/closed/wall, -/area/teleporter/quantum/research) -"ciJ" = ( -/turf/closed/wall, -/area/teleporter/quantum/docking) -"ciK" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/teleporter/quantum/docking) -"ciL" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ciM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ciN" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ciO" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 15"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"ciP" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"ciQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ciR" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ciS" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ciT" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ciU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ciV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ciW" = ( -/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/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ciX" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Departures APC"; - areastring = "/area/hallway/secondary/exit"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ciY" = ( -/obj/structure/grille/broken, -/obj/item/clothing/head/cone, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"ciZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cja" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cjb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cjc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cjd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cje" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjf" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjg" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cjh" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 1; - name = "Construction Zone"; - req_access = null; - req_access_txt = "0"; - req_one_access_txt = "0" - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"cji" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/pandemic{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/circuitboard/computer/rdconsole, -/obj/item/circuitboard/machine/rdserver{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/circuitboard/machine/destructive_analyzer, -/obj/item/circuitboard/machine/protolathe, -/obj/item/circuitboard/computer/aifixer, -/obj/item/circuitboard/computer/teleporter, -/obj/item/circuitboard/machine/circuit_imprinter, -/obj/item/circuitboard/machine/mechfab, -/turf/open/floor/plating, -/area/storage/tech) -"cjj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/storage/tech) -"cjk" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/cloning, -/obj/item/circuitboard/computer/med_data{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/circuitboard/machine/clonescanner, -/obj/item/circuitboard/machine/clonepod, -/obj/item/circuitboard/computer/scan_consolenew, -/turf/open/floor/plating, -/area/storage/tech) -"cjl" = ( -/obj/structure/table, -/obj/item/aiModule/core/full/asimov, -/obj/item/aiModule/core/freeformcore, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/item/aiModule/core/full/corp, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/core/full/custom, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cjm" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/oxygen, -/obj/item/aiModule/zeroth/oneHuman, -/obj/machinery/door/window{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/item/aiModule/reset/purge, -/obj/structure/window/reinforced, -/obj/item/aiModule/core/full/antimov, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/supplied/protectStation, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cjn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"cjo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; - name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_y = 32 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"cjp" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Research Quantum Pad APC"; - areastring = "/area/teleporter/quantum/research"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"cjq" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/teleporter/quantum/research) -"cjr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"cjs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Docking Quantum Pad APC"; - areastring = "/area/teleporter/quantum/docking"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"cjt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; - name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"cju" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"cjv" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cjw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cjx" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cjy" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cjz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cjA" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cjB" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cjC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cjD" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/fourcolor, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cjE" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cjF" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/security/vacantoffice) -"cjG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cjH" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cjI" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 6"; - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cjJ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/external{ - name = "External Airlock Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cjN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cjO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/atmos{ - name = "Research Atmospherics Checkpoint"; - req_access_txt = "24" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix Output"; - on = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjR" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cjS" = ( -/obj/structure/closet/toolcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjU" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Aux Base Construction"; - dir = 6 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/computer/camera_advanced/base_construction, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjY" = ( -/obj/structure/rack{ - dir = 4 - }, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/device/assault_pod/mining, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Aux Construction APC"; - areastring = "/area/construction/mining/aux_base"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cjZ" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/mining, -/obj/item/circuitboard/machine/autolathe{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/circuitboard/computer/arcade/battle, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/storage/tech) -"cka" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/storage/tech) -"ckb" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/secure_data{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/circuitboard/computer/security{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"ckc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"ckd" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"cke" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/power/apc{ - dir = 4; - name = "AI Upload APC"; - areastring = "/area/ai_monitored/turret_protected/ai_upload"; - pixel_x = 26 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"ckf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Research Quantum Pad"; - dir = 4; - network = list("SS13") - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"ckg" = ( -/obj/machinery/quantumpad, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"ckh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"cki" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"ckj" = ( -/obj/machinery/quantumpad, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"ckk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Quantum Pad"; - dir = 8; - network = list("SS13","QM") - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"ckl" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"ckm" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ckn" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cko" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Teleporter APC"; - areastring = "/area/teleporter"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"ckp" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckq" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cks" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cku" = ( -/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/aft/arrivals) -"ckv" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/security/vacantoffice) -"ckw" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"ckx" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/camera{ - c_tag = "Escape Wing East"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cky" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"ckz" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/construction/mining/aux_base) -"ckA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ckG" = ( -/turf/open/floor/plasteel/brown/corner, -/area/construction/mining/aux_base) -"ckH" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/telecomms/processor, -/obj/item/circuitboard/machine/telecomms/receiver, -/obj/item/circuitboard/machine/telecomms/server, -/obj/item/circuitboard/machine/telecomms/bus, -/obj/item/circuitboard/machine/telecomms/broadcaster, -/obj/item/circuitboard/computer/message_monitor{ - pixel_y = -5 - }, -/obj/machinery/power/apc{ - areastring = "/area/storage/tech"; - dir = 8; - name = "Tech Storage APC"; - pixel_x = -25; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"ckI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/storage/tech) -"ckJ" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/circuitboard/computer/powermonitor{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/circuitboard/computer/stationalert{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/circuitboard/computer/atmos_alert{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plating, -/area/storage/tech) -"ckK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"ckL" = ( -/obj/machinery/door/airlock/highsecurity{ - locked = 0; - name = "AI Upload Access"; - req_access_txt = "16" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"ckM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"ckN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/noticeboard{ - dir = 4; - pixel_x = -32 - }, -/obj/item/paper/guides/quantumpad, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"ckP" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"ckQ" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"ckS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 32 - }, -/obj/item/paper/guides/quantumpad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"ckT" = ( -/turf/closed/wall/r_wall, -/area/teleporter) -"ckU" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckW" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"ckX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"ckY" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"ckZ" = ( -/turf/open/floor/plating, -/area/security/vacantoffice) -"cla" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Emergency Shuttle Airlock" - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"clb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"clc" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/construction/mining/aux_base) -"cld" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/brown, -/area/construction/mining/aux_base) -"cle" = ( -/obj/structure/mining_shuttle_beacon, -/turf/open/floor/plasteel/brown, -/area/construction/mining/aux_base) -"clf" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/brown/corner{ - dir = 8 - }, -/area/construction/mining/aux_base) -"clg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"clh" = ( -/obj/structure/closet/crate/rcd, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown/corner, -/area/construction/mining/aux_base) -"cli" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods{ - amount = 50 - }, -/turf/open/floor/plasteel/brown, -/area/construction/mining/aux_base) -"clj" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/brown, -/area/construction/mining/aux_base) -"clk" = ( -/obj/structure/table, -/obj/item/device/assault_pod/mining, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plasteel/brown{ - dir = 6 - }, -/area/construction/mining/aux_base) -"cll" = ( -/obj/machinery/vending/assist, -/obj/machinery/camera{ - c_tag = "Tech Storage South"; - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"clm" = ( -/obj/structure/table, -/obj/item/device/plant_analyzer, -/obj/item/stock_parts/cell/high/plus, -/obj/item/device/healthanalyzer, -/obj/item/device/analyzer, -/turf/open/floor/plating, -/area/storage/tech) -"cln" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/ai_upload"; - name = "AI Upload turret control"; - pixel_y = 25 - }, -/obj/machinery/camera/motion{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"clo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"clp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/ai_upload) -"clq" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/table, -/obj/item/device/multitool, -/obj/item/screwdriver, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/research) -"clr" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/research) -"cls" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/research) -"clt" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/research) -"clu" = ( -/obj/machinery/light/small, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/teleporter/quantum/research) -"clv" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/research) -"clw" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"clx" = ( -/obj/machinery/light/small, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"cly" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"clz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/docking) -"clA" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/docking) -"clB" = ( -/obj/structure/table, -/obj/item/device/multitool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/screwdriver, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/docking) -"clC" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"clD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"clE" = ( -/obj/machinery/light/small, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"clF" = ( -/obj/machinery/computer/teleporter, -/turf/open/floor/plating, -/area/teleporter) -"clG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"clH" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"clI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/camera{ - c_tag = "Teleporter"; - dir = 6 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"clJ" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/shieldwallgen, -/turf/open/floor/plasteel, -/area/teleporter) -"clK" = ( -/turf/closed/wall, -/area/security/checkpoint/checkpoint2) -"clL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"clM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"clN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/security/vacantoffice) -"clO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"clP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"clQ" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/pod_2) -"clR" = ( -/obj/structure/shuttle/engine/propulsion/burst{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"clS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"clT" = ( -/obj/machinery/door/airlock/engineering{ - cyclelinkeddir = 1; - name = "Auxillary Base Construction"; - req_access_txt = "0"; - req_one_access_txt = "32;47;48" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"clU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/construction/mining/aux_base) -"clV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/storage/tech) -"clW" = ( -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage"; - req_access_txt = "23" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"clX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/storage/tech) -"clY" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"clZ" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cma" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cmb" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/aft) -"cmc" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cmd" = ( -/obj/machinery/door/airlock/glass{ - name = "Research Quantum Pad" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/research) -"cme" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/sci_dock) -"cmf" = ( -/turf/closed/wall, -/area/hallway/secondary/entry) -"cmg" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"cmh" = ( -/obj/machinery/door/airlock/glass{ - name = "Docking Quantum Pad" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/teleporter/quantum/docking) -"cmi" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/teleporter/quantum/docking) -"cmj" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cmk" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plating, -/area/teleporter) -"cml" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"cmm" = ( -/turf/open/floor/plasteel, -/area/teleporter) -"cmn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/teleporter) -"cmo" = ( -/obj/structure/closet/secure_closet/security, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/checkpoint2) -"cmp" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/checkpoint2) -"cmq" = ( -/obj/machinery/computer/security, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/checkpoint2) -"cmr" = ( -/obj/machinery/computer/card, -/obj/machinery/camera{ - c_tag = "Docking Security Checkpoint"; - dir = 6 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/checkpoint2) -"cms" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/checkpoint2) -"cmt" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/checkpoint2) -"cmu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/checkpoint2) -"cmv" = ( -/obj/machinery/door/airlock/security{ - name = "Security Checkpoint"; - req_access = null; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red, -/area/security/checkpoint/checkpoint2) -"cmw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cmx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"cmy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cmz" = ( -/obj/structure/table_frame/wood, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cmA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table_frame/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/security/vacantoffice) -"cmB" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_lavaland2"; - name = "lavaland" - }, -/turf/open/space, -/area/space) -"cmC" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/pod_2) -"cmD" = ( -/obj/machinery/computer/shuttle/pod{ - pixel_y = -32; - possible_destinations = "pod_lavaland2"; - shuttleId = "pod2" - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cmE" = ( -/obj/item/storage/pod{ - pixel_x = 6; - pixel_y = -28 - }, -/obj/item/device/radio/intercom{ - pixel_y = 25 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Research Escape Pod" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cmF" = ( -/obj/machinery/door/airlock/titanium{ - name = "Escape Pod Airlock" - }, -/obj/docking_port/mobile/pod{ - dir = 8; - id = "pod2"; - name = "escape pod 2"; - port_angle = 180 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/pod_2) -"cmG" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4; - name = "Research Escape Pod" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cmH" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8; - name = "Research Escape Pod" - }, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cmI" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24 - }, -/obj/structure/sign/directions/security{ - dir = 1; - icon_state = "direction_sec"; - pixel_x = 32; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cmJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Research Asteroid Hallway 2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Research Asteroid Hallway 3" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cmZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Asteroid Hallway 4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnc" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cne" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Asteroid Hallway 5" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cng" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnh" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cni" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/hallway/primary/aft) -"cnj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/hallway/primary/aft) -"cnk" = ( -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24 - }, -/obj/structure/sign/directions/engineering{ - dir = 1; - icon_state = "direction_eng"; - pixel_x = 32; - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1; - heat_capacity = 1e+006 - }, -/area/hallway/primary/aft) -"cnl" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnm" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnn" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cno" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnp" = ( -/obj/structure/sign/directions/science{ - dir = 8; - icon_state = "direction_sci"; - pixel_x = -32; - pixel_y = 24 - }, -/obj/structure/sign/directions/engineering{ - dir = 1; - icon_state = "direction_eng"; - pixel_x = -32; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cnq" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cnr" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cns" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnt" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnv" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 1"; - dir = 6 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cny" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cnz" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plating, -/area/teleporter) -"cnA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/teleporter) -"cnB" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/checkpoint2) -"cnC" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/checkpoint2) -"cnD" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/checkpoint2) -"cnE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cnF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cnG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cnH" = ( -/obj/structure/table/wood, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cnI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/chair, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/security/vacantoffice) -"cnJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"cnK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cnL" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cnM" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/primary/aft) -"cnN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/pods{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cnO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnT" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cnV" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cnW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cnX" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cnY" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cnZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"coa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cob" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"coc" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cod" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"coe" = ( -/obj/structure/table, -/obj/item/hand_tele, -/obj/item/device/radio/beacon, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"cof" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/teleporter) -"cog" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/checkpoint2) -"coh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/closet/wardrobe/red, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/checkpoint2) -"coi" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/checkpoint2) -"coj" = ( -/obj/structure/chair/office/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/checkpoint2) -"cok" = ( -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/checkpoint2) -"col" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/device/radio, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/checkpoint2) -"com" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/checkpoint2) -"con" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/vacantoffice) -"coo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cop" = ( -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Arrivals APC"; - areastring = "/area/hallway/secondary/entry"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"coq" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cor" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cos" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cot" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"cou" = ( -/turf/closed/wall, -/area/science/robotics/lab) -"cov" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"cow" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/science{ - pixel_y = -32 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/purple/corner, -/area/hallway/primary/aft) -"coF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/purple/side, -/area/hallway/primary/aft) -"coG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/science{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"coI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coN" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coP" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coR" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coS" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coT" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"coU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 1"; - dir = 1; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"coV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Science-Docking Bridge APC"; - areastring = "/area/hallway/secondary/bridges/sci_dock"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"coW" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"coX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"coY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"coZ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"cpa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"cpb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"cpc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpe" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/teleporter) -"cpf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/teleporter) -"cpg" = ( -/obj/machinery/door/airlock/command{ - name = "Teleport Access"; - req_access_txt = "17" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"cph" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/checkpoint2) -"cpi" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/window/brigdoor/northright{ - name = "Arrival Security Checkpoint"; - req_access_txt = "1" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/red, -/area/security/checkpoint/checkpoint2) -"cpj" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cpk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock{ - name = "Vacant Office"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/security/vacantoffice) -"cpl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"cpm" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 5"; - dir = 6 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/escape/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"cpn" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/shuttle/engine/heater, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"cpo" = ( -/turf/closed/wall/r_wall, -/area/science/mixing) -"cpp" = ( -/turf/closed/wall/r_wall, -/area/science/robotics/lab) -"cpq" = ( -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cpr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/firedoor, -/turf/closed/wall, -/area/science/robotics/lab) -"cpt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/northleft{ - name = "Robotics Desk" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/southleft{ - name = "Robotics Desk"; - req_access_txt = "29" - }, -/turf/open/floor/plating, -/area/science/robotics/lab) -"cpu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/science/research) -"cpv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/airlock/research{ - cyclelinkeddir = 2; - name = "Research Division Access"; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/research) -"cpw" = ( -/turf/closed/wall, -/area/science/research) -"cpx" = ( -/turf/closed/wall, -/area/science/lab) -"cpy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RnDShutters" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/lab) -"cpz" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RnDShutters" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/window/northleft{ - name = "Research Desk"; - req_access_txt = "47" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/purple, -/area/science/lab) -"cpA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RnDShutters" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "researchlockdown"; - layer = 2.6; - name = "Research Emergency Lockdown" - }, -/obj/machinery/door/window/northright{ - name = "Research Desk"; - req_access_txt = "47" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/purple, -/area/science/lab) -"cpB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Science SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"cpC" = ( -/obj/structure/girder, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/sci_dock) -"cpD" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/secondary/entry) -"cpE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cpH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 2"; - dir = 6 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpM" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpN" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 3"; - dir = 6 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/arrival/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/obj/structure/sign/directions/science{ - dir = 8; - icon_state = "direction_sci"; - pixel_x = -32; - pixel_y = 24 - }, -/obj/structure/sign/directions/medical{ - dir = 1; - icon_state = "direction_med"; - pixel_x = -32; - pixel_y = 32 - }, -/obj/structure/sign/directions/supply{ - dir = 1; - icon_state = "direction_supply"; - pixel_x = -32; - pixel_y = 40 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"cpS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cpT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - icon_state = "direction_evac"; - pixel_x = 32; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpY" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cpZ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cqa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 4"; - dir = 6 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cqb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cqc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cqd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cqe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cqf" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqg" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/escape) -"cqh" = ( -/obj/machinery/door/poddoor{ - id = "mixvent"; - name = "Mixer Room Vent" - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"cqi" = ( -/obj/structure/sign/vacuum{ - pixel_y = 32 - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"cqj" = ( -/obj/machinery/sparker{ - dir = 2; - id = "mixingsparker"; - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"cqk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"cql" = ( -/obj/machinery/airlock_sensor{ - id_tag = "tox_airlock_sensor"; - master_tag = "tox_airlock_control"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - on = 1 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/science/mixing) -"cqm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller{ - airpump_tag = "tox_airlock_pump"; - exterior_door_tag = "tox_airlock_exterior"; - id_tag = "tox_airlock_control"; - interior_door_tag = "tox_airlock_interior"; - pixel_x = -24; - sanitize_external = 1; - sensor_tag = "tox_airlock_sensor" - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"cqn" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "mix to port" - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cqo" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cqp" = ( -/obj/machinery/computer/rdconsole/robotics, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqq" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/lab"; - dir = 1; - name = "Robotics Lab APC"; - pixel_y = 25 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqr" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqs" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqt" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cqv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/turf/open/floor/plating, -/area/science/robotics/lab) -"cqw" = ( -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"cqx" = ( -/obj/machinery/button/door{ - id = "MechbayShutters"; - name = "Mechbay Shutters"; - pixel_x = 25; - pixel_y = 24; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"cqy" = ( -/obj/machinery/mech_bay_recharge_port, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cqz" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mech_bay_recharge_floor, -/area/science/robotics/mechbay) -"cqA" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"cqB" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Research Airlock" - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/science/research) -"cqC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cqD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/white, -/area/science/research) -"cqE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research and Development"; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqF" = ( -/obj/machinery/button/door{ - id = "RnDShutters"; - name = "Research Privacy Shutters"; - pixel_y = 24; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqI" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqJ" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqK" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/clothing/glasses/welding, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/lab) -"cqL" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Aft Asteroid Hallway APC"; - areastring = "/area/hallway/primary/aft"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cqM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/camera{ - c_tag = "Science SMES"; - dir = 8; - network = list("SS13","QM") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"cqN" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Aft Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/aft/science"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cqO" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cqP" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/pickaxe/emergency, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cqQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqR" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Medbay"; - location = "ArrivalsMiddle"; - name = "navigation beacon (Arrivals-Middle)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cqZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cra" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cre" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crg" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"crh" = ( -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"cri" = ( -/obj/machinery/door/airlock/glass_research{ - autoclose = 0; - frequency = 1449; - glass = 1; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "tox_airlock_exterior"; - locked = 1; - name = "Mixing Room Exterior Airlock"; - req_access_txt = "8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/science/mixing) -"crj" = ( -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/science/mixing) -"crk" = ( -/obj/machinery/door/airlock/glass_research{ - autoclose = 0; - frequency = 1449; - glass = 1; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "tox_airlock_interior"; - locked = 1; - name = "Mixing Room Interior Airlock"; - req_access_txt = "8" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/science/mixing) -"crl" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"crm" = ( -/turf/open/floor/plasteel/white, -/area/science/mixing) -"crn" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cro" = ( -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"crp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"crq" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"crs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"crt" = ( -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"crv" = ( -/obj/machinery/newscaster{ - pixel_x = 28; - pixel_y = 4 - }, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"crw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"crx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"cry" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"crz" = ( -/obj/machinery/r_n_d/destructive_analyzer, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"crA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"crB" = ( -/obj/machinery/r_n_d/protolathe, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"crC" = ( -/obj/item/folder/white, -/obj/item/disk/tech_disk, -/obj/item/disk/tech_disk, -/obj/item/disk/design_disk, -/obj/item/disk/design_disk, -/obj/structure/table/glass, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"crD" = ( -/turf/open/floor/plasteel/white, -/area/science/lab) -"crE" = ( -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/dropper, -/obj/structure/table, -/obj/machinery/newscaster{ - pixel_x = 28; - pixel_y = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"crF" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"crG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"crH" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"crI" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Science SMES Access"; - req_access_txt = "10;11;12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"crJ" = ( -/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/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"crK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crM" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crS" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"crZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"csa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"csb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/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/plasteel, -/area/hallway/secondary/entry) -"csc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cse" = ( -/obj/machinery/sparker{ - dir = 2; - id = "mixingsparker"; - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "air_in" - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"csf" = ( -/obj/structure/sign/fire{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - on = 1 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/science/mixing) -"csg" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/button/door{ - id = "mixvent"; - name = "Mixing Room Vent Control"; - pixel_x = -25; - pixel_y = 5; - req_access_txt = "7" - }, -/obj/machinery/button/ignition{ - id = "mixingsparker"; - pixel_x = -25; - pixel_y = -5 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"csh" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "port to mix" - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"csi" = ( -/obj/structure/table, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/item/device/assembly/flash/handheld, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/camera{ - c_tag = "Service Asteroid Hallway 6"; - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"csj" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"csk" = ( -/obj/structure/rack, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/plasteel/twenty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"csl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"csn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cso" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility/full, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/head/welding, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"css" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/machinery/camera{ - c_tag = "Robotics 2"; - dir = 1; - network = list("SS13","RD") - }, -/obj/machinery/camera{ - c_tag = "Toxins Storage"; - dir = 9; - network = list("SS13","RD") - }, -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 - }, -/turf/open/floor/circuit/green, -/area/science/robotics/mechbay) -"cst" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/white, -/area/science/research) -"csu" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"csv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/white, -/area/science/research) -"csw" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"csx" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel, -/area/science/lab) -"csy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"csz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"csA" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/science/lab) -"csB" = ( -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/micro_laser, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"csC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"csD" = ( -/turf/closed/wall/r_wall, -/area/science/xenobiology) -"csE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csG" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"csH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"csJ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"csK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"csL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"csN" = ( -/obj/machinery/computer/aifixer, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"csP" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"csQ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/circuit/green, -/area/science/robotics/mechbay) -"csR" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/circuit/green, -/area/science/robotics/mechbay) -"csS" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/mechbay"; - dir = 4; - name = "Mech Bay APC"; - pixel_x = 26 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/circuit/green, -/area/science/robotics/mechbay) -"csT" = ( -/obj/machinery/door/airlock/research{ - cyclelinkeddir = 1; - name = "Research Division Access"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple, -/area/science/research) -"csU" = ( -/obj/machinery/computer/rdconsole/core, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/lab) -"csV" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/lab) -"csW" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/obj/item/reagent_containers/glass/beaker/sulphuric, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"csX" = ( -/obj/structure/table/glass, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"csY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"csZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"cta" = ( -/obj/item/stock_parts/console_screen, -/obj/item/stock_parts/console_screen, -/obj/item/stock_parts/console_screen, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/scanning_module{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/stock_parts/scanning_module, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/table, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"ctb" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"ctc" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"ctd" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cte" = ( -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 - }, -/area/science/xenobiology) -"ctf" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 - }, -/area/science/xenobiology) -"ctg" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 - }, -/area/science/xenobiology) -"cth" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cti" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ctm" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 9 - }, -/area/science/mixing) -"ctn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/mixing) -"cto" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/mixing) -"ctp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/science/mixing) -"ctq" = ( -/obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"ctr" = ( -/obj/machinery/camera{ - c_tag = "Toxins Mixing"; - dir = 9; - network = list("SS13","RD") - }, -/obj/structure/closet/bombcloset, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cts" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/clothing/gloves/color/latex, -/obj/item/storage/box/bodybags, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"ctt" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/device/multitool, -/obj/item/device/multitool, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"ctu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/purple/corner, -/area/science/robotics/lab) -"ctv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/purple/side, -/area/science/robotics/lab) -"ctw" = ( -/obj/structure/closet/wardrobe/robotics_black, -/obj/item/device/radio/headset/headset_sci{ - pixel_x = -3 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/science/robotics/lab) -"ctx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/filingcabinet, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"ctz" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whitepurple/corner, -/area/science/robotics/mechbay) -"ctA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/robotics/mechbay) -"ctB" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/science/robotics/mechbay) -"ctC" = ( -/obj/machinery/recharge_station, -/obj/machinery/light, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"ctD" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"ctE" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/science/robotics/mechbay) -"ctF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/science/research) -"ctG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"ctH" = ( -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/science/research) -"ctI" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/science/lab) -"ctJ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctO" = ( -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctP" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/lab) -"ctQ" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Research and Development APC"; - areastring = "/area/science/lab"; - pixel_x = -25 - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"ctR" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"ctS" = ( -/turf/open/floor/plasteel/black, -/area/science/xenobiology) -"ctT" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/black, -/area/science/xenobiology) -"ctU" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/black, -/area/science/xenobiology) -"ctV" = ( -/mob/living/simple_animal/slime, -/turf/open/floor/plasteel/black, -/area/science/xenobiology) -"ctW" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/black, -/area/science/xenobiology) -"ctX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"ctY" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"ctZ" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/arrival) -"cua" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"cub" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cud" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 - }, -/obj/structure/closet/bombcloset, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cue" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Robotics Lab"; - req_access_txt = "29" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/robotics/lab) -"cuf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/turf/open/floor/plating, -/area/science/robotics/lab) -"cug" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Mech Bay"; - req_access_txt = "29" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple, -/area/science/robotics/mechbay) -"cuh" = ( -/turf/open/floor/plasteel/white, -/area/science/research) -"cui" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 1 - }, -/area/science/lab) -"cuk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/science/lab) -"cul" = ( -/turf/open/floor/plasteel/darkpurple/side, -/area/science/xenobiology) -"cum" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkpurple/side, -/area/science/xenobiology) -"cun" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cuo" = ( -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cup" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cuq" = ( -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cur" = ( -/obj/structure/table, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cus" = ( -/obj/structure/frame/computer, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cut" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/space, -/area/hallway/secondary/entry) -"cuu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/mixing) -"cuv" = ( -/turf/open/floor/plasteel/whitepurple/side, -/area/science/mixing) -"cuw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/science/mixing) -"cux" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/mixing) -"cuy" = ( -/obj/structure/closet/wardrobe/science_white, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 5 - }, -/area/science/mixing) -"cuz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/mixing) -"cuA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 9 - }, -/area/science/research) -"cuB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"cuD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"cuE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"cuF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"cuG" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"cuI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuN" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"cuP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/whitepurple/corner, -/area/science/research) -"cuQ" = ( -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/science/research) -"cuR" = ( -/obj/machinery/shower{ - pixel_y = 24 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/science/research) -"cuS" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/black, -/area/science/research) -"cuT" = ( -/turf/closed/wall/r_wall, -/area/science/research) -"cuU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod1"; - name = "containment door 1" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cuV" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod1"; - layer = 2.6; - name = "containment door 1" - }, -/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/door/window/northleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"cuW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod1"; - layer = 2.6; - name = "containment door 1" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cuX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod2"; - name = "containment door 2" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cuY" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod2"; - layer = 2.6; - name = "containment door 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/door/window/northleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"cuZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod2"; - layer = 2.6; - name = "containment door 2" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cva" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod3"; - layer = 2.6; - name = "containment door 3" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cvb" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod3"; - layer = 2.6; - name = "containment door 3" - }, -/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/door/window/northleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"cvc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod3"; - layer = 2.6; - name = "containment door 3" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cvd" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod4"; - name = "containment door 4" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cve" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod4"; - layer = 2.6; - name = "containment door 4" - }, -/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/door/window/northleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"cvf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod4"; - layer = 2.6; - name = "containment door 4" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cvg" = ( -/turf/closed/wall, -/area/science/xenobiology) -"cvh" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "47" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cvi" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cvj" = ( -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cvk" = ( -/obj/structure/chair/comfy{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cvl" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cvm" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cvn" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cvo" = ( -/obj/item/device/assembly/prox_sensor{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/device/assembly/prox_sensor{ - pixel_y = 2 - }, -/obj/structure/table/reinforced, -/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 = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"cvp" = ( -/obj/structure/chair/stool, -/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 = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cvq" = ( -/obj/structure/table/reinforced, -/obj/item/wrench, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/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 = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cvr" = ( -/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 = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cvs" = ( -/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 = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cvt" = ( -/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 = 4 - }, -/obj/machinery/door/airlock/glass_research{ - name = "Toxins Lab"; - req_access_txt = "8" - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/mixing) -"cvu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/research) -"cvv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvw" = ( -/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 = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvx" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvA" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvE" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvF" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvI" = ( -/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 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvJ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/research) -"cvL" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Decontamination Center"; - req_access_txt = "55" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/research) -"cvM" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/sign/xenobio{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cvP" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod1"; - name = "Containment Control 1" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cvQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/window/southleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/xenobiology) -"cvR" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cvS" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod2"; - name = "Containment Control 2" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cvT" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod3"; - name = "Containment Control 3" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cvU" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod4"; - name = "Containment Control 4" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cvV" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/science/xenobiology) -"cvW" = ( -/obj/structure/table, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cvX" = ( -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cvY" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cvZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 13"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwa" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Cockpit" - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cwb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 11"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 9"; - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 7"; - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwh" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cwi" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cwj" = ( -/obj/item/device/assembly/signaler{ - pixel_y = 8 - }, -/obj/item/device/assembly/signaler{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/device/assembly/signaler{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/device/assembly/signaler{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 10 - }, -/area/science/mixing) -"cwk" = ( -/obj/item/device/transfer_valve{ - pixel_x = -5 - }, -/obj/item/device/transfer_valve{ - pixel_x = -5 - }, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve, -/obj/item/device/transfer_valve{ - pixel_x = 5 - }, -/obj/item/device/transfer_valve{ - pixel_x = 5 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/mixing) -"cwl" = ( -/obj/item/device/assembly/timer{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/device/assembly/timer{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/device/assembly/timer{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/device/assembly/timer, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/mixing) -"cwm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cwn" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cwo" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/mixing) -"cwp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/mixing) -"cwq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/research) -"cwr" = ( -/obj/structure/sign/bluecross_2{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cws" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 2; - name = "Science APC"; - areastring = "/area/science/research"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Western Wing"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/corner, -/area/science/research) -"cwv" = ( -/turf/open/floor/plasteel/whitepurple/side, -/area/science/research) -"cww" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/science/research) -"cwx" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwA" = ( -/obj/machinery/camera{ - c_tag = "Research Eastern Wing"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 4 - }, -/area/science/research) -"cwE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/research) -"cwF" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cwH" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Xenobiology"; - req_access_txt = "55" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cwI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwJ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwL" = ( -/obj/structure/sign/electricshock{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology 1"; - dir = 6; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwM" = ( -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwN" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwO" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwP" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sign/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cwR" = ( -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/xenobiology) -"cwS" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cwT" = ( -/obj/machinery/computer/camera_advanced/xenobio, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cwU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cwV" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cwW" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cwX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cwY" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cwZ" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cxa" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cxb" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cxc" = ( -/obj/machinery/door/airlock/command{ - name = "Server Room"; - req_access = null; - req_access_txt = "30" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/science/server) -"cxd" = ( -/turf/closed/wall/r_wall, -/area/science/server) -"cxe" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/science/research) -"cxf" = ( -/turf/open/floor/plasteel/whitepurple/corner, -/area/science/research) -"cxg" = ( -/turf/closed/wall/r_wall, -/area/science/storage) -"cxh" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rdoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"cxi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rdoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"cxj" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Research Director's Office"; - req_access_txt = "30" - }, -/turf/open/floor/plasteel/whitepurple, -/area/crew_quarters/heads/hor) -"cxk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rdoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"cxl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"cxm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"cxn" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/science) -"cxo" = ( -/turf/closed/wall, -/area/science/misc_lab) -"cxp" = ( -/obj/machinery/light{ - dir = 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" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"cxq" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"cxr" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Xenobiology-Testing Airlock"; - dir = 9; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cxs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/research) -"cxt" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxu" = ( -/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/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxv" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxx" = ( -/obj/machinery/monkey_recycler, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxy" = ( -/obj/machinery/smartfridge/extract/preloaded, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxz" = ( -/obj/machinery/processor{ - desc = "A machine used to process slimes and retrieve their extract."; - name = "Slime Processor" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cxC" = ( -/obj/structure/table, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cxD" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Xenobiology APC"; - areastring = "/area/science/xenobiology"; - pixel_x = -25 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cxE" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cxF" = ( -/obj/machinery/door/airlock/shuttle, -/obj/structure/fans/tiny, -/turf/open/floor/mineral/titanium, -/area/shuttle/arrival) -"cxG" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cxH" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cxI" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/transport) -"cxJ" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/transport) -"cxK" = ( -/obj/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxL" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/transport) -"cxM" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cxN" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cxO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cxP" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Toxins Lab APC"; - areastring = "/area/science/mixing"; - pixel_y = 25 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cxQ" = ( -/obj/machinery/r_n_d/server/core, -/turf/open/floor/circuit, -/area/science/server) -"cxR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - external_pressure_bound = 120; - name = "server vent" - }, -/turf/open/floor/circuit, -/area/science/server) -"cxS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 10 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/science/server) -"cxT" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"cxU" = ( -/turf/open/floor/plasteel/black, -/area/science/server) -"cxV" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/research) -"cxW" = ( -/obj/machinery/iv_drip, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 4 - }, -/area/science/research) -"cxX" = ( -/obj/structure/table, -/obj/item/cartridge/signal/toxins, -/obj/item/cartridge/signal/toxins{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/cartridge/signal/toxins{ - pixel_x = 4; - pixel_y = 6 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cxY" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cxZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cya" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cyb" = ( -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/storage) -"cyc" = ( -/obj/structure/table, -/obj/item/paper_bin, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/checkpoint/science) -"cyd" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the RD's goons from a (questionably) safe distance."; - name = "Research Monitor"; - network = list("RD") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"cye" = ( -/obj/structure/table, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"cyf" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/checkpoint/science) -"cyg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/checkpoint/science) -"cyh" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/research) -"cyl" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cym" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cyn" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Xenobiology"; - req_access_txt = "55" - }, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"cyo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cyp" = ( -/obj/machinery/light, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cyq" = ( -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cyr" = ( -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology 2"; - dir = 1; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cys" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cyv" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cyw" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cyx" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/shuttle, -/area/shuttle/arrival) -"cyy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cyA" = ( -/turf/open/floor/mineral/titanium/blue, -/turf/closed/wall/mineral/titanium/interior, -/area/shuttle/transport) -"cyB" = ( -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"cyC" = ( -/obj/machinery/computer/shuttle/ferry/request, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"cyD" = ( -/obj/structure/chair, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"cyE" = ( -/obj/structure/chair, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"cyF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cyG" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"cyH" = ( -/obj/machinery/door/airlock/glass_command{ - name = "Server Room"; - req_access_txt = "30" - }, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"cyI" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"cyJ" = ( -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/black, -/area/science/server) -"cyK" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"cyL" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/obj/machinery/camera{ - c_tag = "Research Treatment Center"; - dir = 1; - network = list("SS13") - }, -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 10 - }, -/area/science/research) -"cyM" = ( -/obj/machinery/light, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/structure/closet/crate/freezer, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/research) -"cyN" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 6 - }, -/area/science/research) -"cyO" = ( -/turf/open/floor/plasteel, -/area/science/storage) -"cyP" = ( -/obj/machinery/suit_storage_unit/rd, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cyQ" = ( -/obj/structure/table, -/obj/machinery/newscaster/security_unit{ - pixel_x = -28 - }, -/obj/machinery/recharger, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/checkpoint/science) -"cyR" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/depsec/science, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"cyS" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"cyT" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/science) -"cyU" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyV" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyW" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cyY" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Testing Lab"; - req_access_txt = "55" - }, -/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 = 4 - }, -/turf/open/floor/plasteel, -/area/science/research) -"cyZ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cza" = ( -/obj/structure/sign/xenobio{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"czb" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod5"; - name = "Containment Control 5" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"czc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/whitepurple/side, -/area/science/xenobiology) -"czd" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cze" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod6"; - name = "Containment Control 6" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"czf" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod7"; - name = "Containment Control 7" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"czg" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/button/door{ - id = "XenoPod8"; - name = "Containment Control 8" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"czh" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"czi" = ( -/obj/structure/table, -/obj/item/storage/box/beakers, -/obj/item/storage/box/syringes, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/turf/open/floor/plasteel/whitepurple, -/area/science/xenobiology) -"czj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/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/plasteel, -/area/hallway/secondary/entry) -"czm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/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/plasteel, -/area/hallway/secondary/entry) -"czn" = ( -/obj/machinery/door/airlock/shuttle, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czo" = ( -/obj/machinery/door/airlock/shuttle, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 2; - height = 12; - id = "ferry"; - name = "ferry shuttle"; - port_angle = 0; - preferred_direction = 4; - roundstart_move = "ferry_away"; - width = 5 - }, -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 12; - id = "ferry_home"; - name = "port bay 2"; - turf_type = /turf/open/space; - width = 5 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czp" = ( -/obj/machinery/r_n_d/server/robotics, -/turf/open/floor/circuit, -/area/science/server) -"czq" = ( -/obj/machinery/camera{ - c_tag = "Research Server Room"; - dir = 1; - network = list("SS13","RD") - }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - on = 1; - target_temperature = 80 - }, -/turf/open/floor/plasteel/black, -/area/science/server) -"czr" = ( -/obj/machinery/computer/rdservercontrol, -/turf/open/floor/plasteel/black, -/area/science/server) -"czs" = ( -/obj/structure/table, -/turf/open/floor/plasteel/black, -/area/science/server) -"czt" = ( -/obj/machinery/modular_computer/console/preset/research, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"czu" = ( -/obj/structure/rack, -/obj/item/circuitboard/aicore{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"czv" = ( -/obj/machinery/computer/secure_data, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/checkpoint/science) -"czw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Research Security Checkpoint"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"czx" = ( -/obj/machinery/light, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"czy" = ( -/obj/machinery/power/apc{ - cell_type = 5000; - dir = 2; - name = "Science Security Checkpoint APC"; - areastring = "/area/security/checkpoint/science"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/closet/secure_closet/security/science, -/turf/open/floor/plasteel/red/side, -/area/security/checkpoint/science) -"czz" = ( -/obj/structure/filingcabinet, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/checkpoint/science) -"czA" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"czB" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"czC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"czD" = ( -/turf/open/floor/plasteel, -/area/science/misc_lab) -"czE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/map/left/ceres{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"czF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod5"; - name = "containment door 5" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czG" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod5"; - name = "containment door 5" - }, -/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/machinery/door/window/southleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"czH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod5"; - name = "containment door 5" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod6"; - name = "containment door 6" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czJ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod6"; - layer = 2.6; - name = "containment door 6" - }, -/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/machinery/door/window/southleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"czK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod6"; - layer = 2.6; - name = "containment door 6" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod7"; - layer = 2.6; - name = "containment door 7" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czM" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod7"; - layer = 2.6; - name = "containment door 7" - }, -/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/machinery/door/window/southleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"czN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod7"; - layer = 2.6; - name = "containment door 7" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czP" = ( -/obj/machinery/door/poddoor/preopen{ - id = "XenoPod8"; - layer = 2.6; - name = "containment door 8" - }, -/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/machinery/door/window/southleft{ - req_access_txt = "55" - }, -/turf/open/floor/plasteel/purple, -/area/science/xenobiology) -"czQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czR" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/xenobiology) -"czS" = ( -/obj/machinery/door/airlock/research{ - name = "Kill Chamber"; - req_access_txt = "55" - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"czU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"czV" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czW" = ( -/obj/structure/closet/crate, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czX" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czY" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/transport) -"czZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAa" = ( -/obj/structure/closet/crate, -/obj/item/storage/bag/ore, -/obj/item/pickaxe/emergency, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cAb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cAc" = ( -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"cAd" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"cAe" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -32 - }, -/obj/structure/closet/crate/bin, -/obj/item/book/manual/wiki/telescience, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAg" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAh" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 - }, -/area/science/xenobiology) -"cAi" = ( -/turf/open/floor/circuit/killroom, -/area/science/xenobiology) -"cAj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cAk" = ( -/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, -/area/maintenance/asteroid/aft/science) -"cAl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAm" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAn" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAo" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "RnD Server APC"; - areastring = "/area/science/server"; - pixel_y = 25 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAp" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAq" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/machinery/computer/robotics, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cAr" = ( -/obj/machinery/computer/card/minor/rd, -/obj/machinery/camera{ - c_tag = "Research Director's Office"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cAs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light, -/obj/effect/landmark/xmastree/rdrod, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cAt" = ( -/turf/open/floor/plating, -/area/science/misc_lab) -"cAu" = ( -/obj/machinery/shieldwallgen{ - req_access = list(55) - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAx" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Killroom"; - dir = 1; - network = list("SS13","RD") - }, -/turf/open/floor/circuit/killroom, -/area/science/xenobiology) -"cAz" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/circuit/killroom, -/area/science/xenobiology) -"cAA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/circuit/killroom, -/area/science/xenobiology) -"cAB" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cAC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAD" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAF" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAG" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAH" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/device/destTagger, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAI" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/darkpurple/side, -/area/science/xenobiology) -"cAJ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plasteel/darkpurple/side, -/area/science/xenobiology) -"cAK" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall, -/area/science/xenobiology) -"cAL" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cAM" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cAN" = ( -/obj/machinery/light/small, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cAO" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAP" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Research Director's Office APC"; - areastring = "/area/crew_quarters/heads/hor"; - pixel_y = 25 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cAQ" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAS" = ( -/obj/structure/window/reinforced, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cAT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/window{ - dir = 8; - icon_state = "right"; - name = "Research Delivery Chute"; - opacity = 1; - req_access_txt = "55" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAU" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cAV" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 80; - dir = 2; - on = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cAW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cAX" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 14"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cAY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cAZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cBa" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 12"; - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cBb" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 10"; - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cBc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/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/plasteel, -/area/hallway/secondary/entry) -"cBd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Docking Asteroid Hall 8"; - dir = 9 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cBe" = ( -/turf/closed/mineral, -/area/hallway/secondary/entry) -"cBf" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/item/device/radio/beacon, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBg" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/r_n_d/experimentor, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBh" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/window/westleft{ - name = "Containment Pen"; - req_access_txt = "55" - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBi" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/window/eastleft{ - name = "Containment Pen"; - req_access_txt = "55" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBj" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBk" = ( -/obj/machinery/autolathe, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/camera{ - c_tag = "Testing Lab"; - dir = 9; - network = list("SS13","RD") - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBl" = ( -/obj/structure/plasticflaps, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/science/misc_lab) -"cBm" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cBn" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cBo" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cBp" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cBq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cBr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cBs" = ( -/obj/structure/closet/wardrobe/mixed, -/turf/open/floor/plasteel/neutral, -/area/shuttle/arrival) -"cBt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cBu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cBv" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cBw" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Disposals Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cBx" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cBy" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cBz" = ( -/turf/closed/wall/rust, -/area/hallway/secondary/entry) -"cBA" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cBB" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cBC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBD" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/computer/rdconsole/experiment, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBF" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBG" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Engines" - }, -/turf/open/floor/plating, -/area/shuttle/arrival) -"cBH" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cBI" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cBJ" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/hallway/secondary/entry) -"cBK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBL" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Testing Containment"; - dir = 9; - network = list("SS13","RD") - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"cBN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/misc_lab) -"cBO" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Injector Toggle"; - on = 0 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBQ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBR" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBS" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cBT" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/shuttle/arrival) -"cBU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cBV" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/area/hallway/secondary/entry) -"cBW" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/southwest) -"cBX" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/southwest) -"cBY" = ( -/turf/closed/wall, -/area/mine/unexplored{ - name = "Research Asteroid" - }) -"cBZ" = ( -/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, -/turf/open/floor/plating, -/area/science/misc_lab) -"cCa" = ( -/obj/machinery/shieldwallgen{ - req_access = list(55) - }, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/science/misc_lab) -"cCb" = ( -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cCc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cCd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cCe" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/science/misc_lab) -"cCf" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCg" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCh" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/airless, -/area/shuttle/arrival) -"cCi" = ( -/obj/docking_port/stationary{ - dir = 1; - dwidth = 4; - height = 17; - id = "arrivals_stationary"; - name = "arrivals"; - width = 9 - }, -/obj/docking_port/mobile/arrivals{ - dir = 1; - dwidth = 4; - height = 17; - width = 9 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"cCj" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/southeast) -"cCk" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/southeast) -"cCl" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/southwest) -"cCm" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "47" - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cCo" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCp" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCr" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cCs" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/southeast) -"cCt" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cCu" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/southwest) -"cCv" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCx" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Testing Lab APC"; - areastring = "/area/science/misc_lab"; - pixel_y = 25 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCA" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCB" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/poppy, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCC" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cCD" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/hallway/secondary/entry) -"cCE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cCF" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cCG" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/external/southeast) -"cCH" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "South-Eastern External Waste Belt APC"; - areastring = "/area/maintenance/asteroid/disposal/external/southeast"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cCI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/wirecutters, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cCJ" = ( -/obj/machinery/disposal/deliveryChute, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cCK" = ( -/obj/machinery/conveyor/auto, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cCL" = ( -/obj/structure/rack, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southwest) -"cCM" = ( -/obj/effect/turf_decal/stripes/end, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "South-Western External Waste Belt APC"; - areastring = "/area/maintenance/asteroid/disposal/external/southwest"; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cCN" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cCP" = ( -/obj/structure/closet, -/obj/item/seeds/random, -/obj/item/seeds/chili, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCQ" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cCR" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cCS" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cCT" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cCU" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cCV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cCW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cCX" = ( -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cCY" = ( -/obj/machinery/conveyor/auto, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cCZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southwest) -"cDa" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southwest) -"cDb" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southwest) -"cDe" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cDf" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/item/seeds/banana, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cDg" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cDh" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cDi" = ( -/obj/structure/grille/broken, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/item/wrench, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cDk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cDl" = ( -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDm" = ( -/obj/machinery/conveyor/auto{ - dir = 9; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDn" = ( -/obj/machinery/conveyor/auto{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southwest) -"cDp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDq" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDr" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDz" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cDA" = ( -/obj/structure/table, -/obj/item/weldingtool/mini, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cDB" = ( -/obj/item/chair, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cDC" = ( -/obj/machinery/conveyor/auto{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDD" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDE" = ( -/obj/machinery/conveyor/auto{ - dir = 10; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDF" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDG" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"cDL" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cDM" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/external/southeast) -"cDN" = ( -/obj/machinery/light/small, -/obj/machinery/conveyor/auto{ - dir = 9; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDO" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southwest) -"cDP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/southwest) -"cDQ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/southwest) -"cEb" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/external/southeast) -"cEc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/external/southeast) -"cEd" = ( -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cEe" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/external/southeast) -"cEj" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cEl" = ( -/obj/docking_port/stationary{ - dheight = 9; - dir = 2; - dwidth = 5; - height = 24; - id = "syndicate_s"; - name = "south of station"; - turf_type = /turf/open/space; - width = 18 - }, -/turf/open/space, -/area/space) -"cEm" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cEn" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"cEo" = ( -/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{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"cEr" = ( -/obj/machinery/door/window/brigdoor/security/cell/westleft{ - id = "Cell 3"; - name = "Cell Door 3" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"cEt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/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, -/area/security/brig) -"cEu" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"cEv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/security/armory) -"cEw" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"cEx" = ( -/turf/open/floor/plasteel/black, -/area/security/armory) -"cEy" = ( -/turf/open/floor/plasteel/darkred/side{ - dir = 8 - }, -/area/security/armory) -"cEz" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun, -/obj/item/gun/energy/e_gun{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"cEA" = ( -/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/plasteel/black, -/area/security/armory) -"cEB" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/security/armory) -"cEC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cED" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"cEE" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/dorms/female) -"cEG" = ( -/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, -/area/maintenance/asteroid/fore/com_north) -"cEH" = ( -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cEI" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/bridge) -"cEK" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"cEL" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"cEN" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hop) -"cEO" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hop) -"cEP" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"cEQ" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/locker) -"cER" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/brig) -"cES" = ( -/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{ - dir = 1 - }, -/area/hallway/primary/fore) -"cEU" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Service"; - location = "CommandWest"; - name = "navigation beacon (Command-West)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"cEV" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/hallway/primary/starboard/fore) -"cEW" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/teleporter/quantum/security) -"cEX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"cEY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"cEZ" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/rehab_dome) -"cFa" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/crew_quarters/rehab_dome) -"cFb" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_x = 32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cFc" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cFd" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/bar) -"cFe" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"cFf" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/hallway/primary/starboard) -"cFg" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringWest2"; - location = "EngineeringWest"; - name = "navigation beacon (Engineering-West)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cFh" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/sign/poster/random{ - name = "random official poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/official - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cFi" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/machinery/newscaster{ - pixel_x = 28 - }, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cFj" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EngineeringMiddle2"; - location = "EngineeringWest3"; - name = "navigation beacon (Engineering-West 3)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cFk" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cFl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Medbay2"; - location = "Medbay"; - name = "navigation beacon (Medbay)" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cFm" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Cargo"; - location = "Medbay2"; - name = "navigation beacon (Medbay-2)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cFp" = ( -/turf/open/space/basic, -/area/space) -"cFq" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/medical/medbay/central) -"cFr" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Research"; - location = "Service"; - name = "navigation beacon (Service)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"cFs" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/hallway/primary/central) -"cFt" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/storage/primary) -"cFu" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/medical/chemistry) -"cFv" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/medical/genetics) -"cFw" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cFx" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/closet/secure_closet/medical3, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/medical/medbay/zone2) -"cFy" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/window/southleft{ - name = "Medbay Mail Chute"; - req_access_txt = "45" - }, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"cFz" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "Medbay" - }, -/obj/machinery/door/window/eastleft{ - req_access_txt = "45" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/zone2) -"cFA" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/medical/genetics) -"cFB" = ( -/turf/closed/wall/r_wall, -/area/maintenance/asteroid/central) -"cFC" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"cFD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Engineering" - }, -/turf/open/floor/plating, -/area/engine/engine_smes) -"cFE" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/engine/engine_smes) -"cFF" = ( -/obj/machinery/ai_status_display, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/chapel/main) -"cFG" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/crew_quarters/fitness) -"cFH" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Chapel Office APC"; - areastring = "/area/chapel/office"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/chapel/office) -"cFI" = ( -/obj/machinery/door/window/westleft{ - req_access_txt = "22" - }, -/turf/open/floor/plating, -/area/chapel/office) -"cFJ" = ( -/obj/structure/plasticflaps{ - name = "Officer Pipsqueak's Home" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cFK" = ( -/obj/structure/bed/dogbed, -/mob/living/simple_animal/bot/secbot/beepsky/jr, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cFL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'WARNING: FUN-SIZED JUSTICE'."; - name = "WARNING: FUN-SIZED JUSTICE"; - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"cFM" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/hallway/secondary/exit) -"cFN" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/hallway/primary/aft) -"cFO" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cFP" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=ArrivalsWest"; - location = "Research"; - name = "navigation beacon (Research)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cFQ" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Departures"; - location = "ArrivalsWest"; - name = "navigation beacon (Arrivals-West)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cFR" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cFS" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/science/robotics/mechbay) -"cFT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cFU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=ArrivalsMiddle"; - location = "Departures"; - name = "navigation beacon (Departures)" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cFV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/arrival, -/area/hallway/secondary/entry) -"cFW" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall, -/area/hallway/secondary/entry) -"cFX" = ( -/obj/structure/table, -/obj/item/retractor, -/obj/item/hemostat, -/obj/item/circular_saw, -/obj/item/scalpel, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cFY" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"cFZ" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/mineral/titanium, -/area/shuttle/arrival) -"cGa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cGb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cGc" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Science" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/area/science/misc_lab) -"cGd" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/science/misc_lab) -"cGg" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"cGh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cGi" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cGj" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"cGk" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/toilet) -"cGn" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"cGp" = ( -/obj/effect/landmark/start/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"cGq" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cGr" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/assistant, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"cGs" = ( -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel, -/area/medical/surgery) -"cGt" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"cGu" = ( -/obj/item/pen, -/obj/item/storage/firstaid/regular, -/obj/structure/table/glass, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"cGv" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"cGw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"cGx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"cGy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"cGz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cGA" = ( -/obj/structure/stacklifter, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"cGB" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/library/lounge) -"cGC" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cGD" = ( -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/zone2) -"cGE" = ( -/obj/structure/weightlifter, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/fitness) -"cGF" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/engine/atmos) -"cGG" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/library) -"cGH" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/central) -"cGI" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/black, -/area/chapel/main) -"cGJ" = ( -/obj/machinery/droneDispenser/preloaded, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cGK" = ( -/obj/structure/rack, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cGL" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cGM" = ( -/obj/structure/rack, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cGN" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance Drone Dispensary"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cGO" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/escape{ - dir = 8 - }, -/area/hallway/secondary/exit) -"cGP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"cGQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cGR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cGS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"cGT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cGU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cGV" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cGW" = ( -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cHa" = ( -/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, -/area/security/brig) -"cHb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange, -/obj/machinery/door/poddoor/preopen{ - id = "brigfront"; - name = "emergency blast door" - }, -/turf/open/floor/plating, -/area/security/brig) -"cHc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cHe" = ( -/obj/machinery/door/airlock/glass_security{ - cyclelinkeddir = 2; - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "0"; - req_one_access_txt = "38;63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red, -/area/security/brig) -"cHf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"cHg" = ( -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"cHh" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/brig) -"cHk" = ( -/obj/structure/table/reinforced, -/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/door/window/brigdoor/westright{ - name = "Brig Entry Desk"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/red, -/area/security/brig) -"cHl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cHm" = ( -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"cHn" = ( -/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, -/area/security/brig) -"cHp" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"cHq" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for big and small criminals alike!"; - dir = 1; - name = "Criminal Delivery Chute" - }, -/obj/machinery/door/window/brigdoor/northleft{ - name = "Criminal Deposit"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"cHr" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/security/brig) -"cHs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 4 - }, -/area/security/brig) -"cHt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"cHu" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"cHv" = ( -/obj/machinery/camera{ - c_tag = "Brig Lobby East"; - dir = 9; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"cHw" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/checkpoint/supply) -"cHz" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cHA" = ( -/obj/structure/grille/broken, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cHB" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"cHD" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"cHG" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/brig) -"cHJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/brig) -"cHM" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cHO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"cHQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Command Asteroid Hall 3"; - dir = 6 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/area/hallway/primary/fore) -"cHR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"cHS" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"cHT" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"cHV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cHW" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cHX" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/fore) -"cHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/fore) -"cHZ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/fore) -"cIa" = ( -/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" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"cIb" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"cIc" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/janitor) -"cId" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/janitor) -"cIe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"cIf" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"cIg" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/janitor) -"cIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/janitor) -"cIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/janitor) -"cIj" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"cIk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cIl" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"cIm" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cIn" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cIo" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cIp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"cIq" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cIr" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"cIs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cIt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"cIu" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cIv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hallway/primary/central) -"cIw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"cIx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/rehab_dome) -"cIy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/rehab_dome) -"cIz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cIA" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cIB" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cIC" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/central) -"cID" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"cIE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"cIF" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"cIG" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/rehab_dome) -"cIH" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"cII" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cIJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cIK" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"cIL" = ( -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/central) -"cIM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/checkpoint/medical) -"cIN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cIO" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"cIP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cIQ" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cIR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/arrival/corner, -/area/hallway/primary/starboard) -"cIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/checkpoint/medical) -"cIT" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"cIU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"cIV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/checkpoint/medical) -"cIW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/green/corner{ - dir = 8 - }, -/area/hydroponics) -"cIX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics) -"cIY" = ( -/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" - }, -/turf/open/floor/plasteel/green/corner, -/area/hydroponics) -"cIZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hydroponics) -"cJa" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"cJb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"cJc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/orange, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"cJd" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cJe" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cJf" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/engine/break_room) -"cJg" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"cJh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"cJi" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"cJj" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for big and small criminals alike!"; - dir = 8; - name = "Criminal Delivery Chute" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor/westleft{ - name = "Criminal Deposit"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"cJk" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"cJl" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hydroponics) -"cJm" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/library) -"cJn" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hallway/primary/port) -"cJo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/chapel/main) -"cJp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"cJq" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/port) -"cJr" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/port) -"cJs" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"cJt" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJu" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJv" = ( -/obj/machinery/ai_status_display, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJw" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Arrival Security Checkpoint APC"; - areastring = "/area/security/checkpoint/checkpoint2"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cJx" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cJy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/teleporter) -"cJz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/checkpoint/checkpoint2) -"cJA" = ( -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for big and small criminals alike!"; - name = "Criminal Delivery Chute" - }, -/obj/machinery/door/window/brigdoor{ - name = "Criminal Deposit"; - req_access_txt = "2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/checkpoint/checkpoint2) -"cJB" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJD" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJE" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/teleporter) -"cJF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"cJG" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"cJH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cJI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cJJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"cJK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cJL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"cJM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/teleporter) -"cJN" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/teleporter) -"cJO" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/closed/wall, -/area/science/robotics/mechbay) -"cJP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/science/research) -"cJQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/science/research) -"cJR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/science/lab) -"cJS" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cJT" = ( -/obj/machinery/ai_status_display, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/hallway/primary/aft) -"cJV" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/science/robotics/mechbay) -"cJW" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"cJX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hor) -"cJY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"cJZ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/crew_quarters/heads/hor) -"cKa" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/crew_quarters/heads/hor) -"cKb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"cKc" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for big and small criminals alike!"; - dir = 1; - name = "Criminal Delivery Chute" - }, -/obj/machinery/door/window/brigdoor/northleft{ - name = "Criminal Deposit"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/science/misc_lab) -"cKd" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"cKe" = ( -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"cKf" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/medical/virology) -"cKg" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall, -/area/medical/medbay/central) -"cKh" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall, -/area/medical/genetics/cloning) -"cKi" = ( -/mob/living/carbon/monkey, -/turf/open/floor/grass, -/area/medical/genetics) -"cKj" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/grass, -/area/medical/genetics) -"cKk" = ( -/obj/structure/sign/bluecross_2, -/turf/closed/wall, -/area/medical/medbay/zone2) -"cKl" = ( -/obj/structure/flora/tree/palm, -/obj/machinery/camera{ - c_tag = "Genetics Monkey Dome"; - dir = 9 - }, -/turf/open/floor/grass, -/area/medical/genetics) -"cKm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/grass, -/area/medical/genetics) -"cKn" = ( -/obj/structure/urinal{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"cKo" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/hallway/secondary/entry) -"cKp" = ( -/obj/structure/sign/poster/official/pda_ad{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"cKq" = ( -/obj/machinery/pdapainter, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"cKr" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"cKs" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"cKt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"cKu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cKv" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 10 - }, -/area/science/mixing) -"cKw" = ( -/turf/open/floor/plasteel/whitepurple/corner{ - dir = 8 - }, -/area/science/mixing) -"cKx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cKy" = ( -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/neutral, -/area/science/mixing) -"cKz" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "47" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cKA" = ( -/obj/item/clothing/head/sombrero/shamebrero, -/turf/open/floor/plating/asteroid/airless, -/area/space) -"cKB" = ( -/obj/structure/sign/poster/contraband/borg_fancy_1{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/ai_monitored/turret_protected/aisat/hallway) -"cKD" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cKF" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKG" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"cKH" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cKI" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKJ" = ( -/turf/closed/wall/r_wall, -/area/security/armory) -"cKL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKM" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKO" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"cKQ" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"cKR" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cKS" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKT" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"cKW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cKY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"cKZ" = ( -/turf/closed/wall/rust, -/area/security/prison) -"cLa" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"cLb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cLc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cLf" = ( -/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, -/area/security/brig) -"cLg" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"cLh" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/closet, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"cLi" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"cLj" = ( -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cLk" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cLl" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cLm" = ( -/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 = "19"; - req_one_access = null; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"cLn" = ( -/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 = "19"; - req_one_access = null; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"cLo" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cLp" = ( -/obj/structure/closet/firecloset/full, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"cLq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/camera{ - c_tag = "Cargo Hall West"; - dir = 1; - network = list("SS13","QM") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cLr" = ( -/turf/closed/wall, -/area/quartermaster/qm) -"cLs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "qmoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/qm) -"cLt" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Quartermaster's Office"; - req_access_txt = "41"; - req_one_access_txt = "0" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "qmoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/quartermaster/qm) -"cLv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/qm) -"cLw" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/spawner/lootdrop/costume, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/locker) -"cLx" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/brown{ - dir = 9; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"cLz" = ( -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"cLA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/brown{ - dir = 5; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLB" = ( -/turf/closed/wall, -/area/security/detectives_office) -"cLC" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Quartermaster's Office APC"; - areastring = "/area/quartermaster/qm"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"cLD" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/brown{ - dir = 8; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLE" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/folder, -/obj/item/clipboard, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLF" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/fourcolor, -/obj/item/stamp/qm, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLG" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/brown{ - dir = 4; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLI" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cLJ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"cLK" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/button/door{ - id = "qmoffice"; - name = "Office Emergency Lockdown"; - pixel_x = -24 - }, -/turf/open/floor/plasteel/brown{ - dir = 8; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLL" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/quartermaster, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLM" = ( -/obj/machinery/computer/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLN" = ( -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"cLO" = ( -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - name = "Quartermaster RC"; - pixel_x = 30 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/brown{ - dir = 4; - icon_state = "brown" - }, -/area/quartermaster/qm) -"cLP" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cLQ" = ( -/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/plating, -/area/maintenance/asteroid/fore/com_east) -"cLR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"cLS" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/quartermaster/qm) -"cLT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Quartermaster's Office"; - dir = 1; - network = list("SS13","QM") - }, -/turf/open/floor/plasteel/brown, -/area/quartermaster/qm) -"cLU" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/brown, -/area/quartermaster/qm) -"cLV" = ( -/turf/open/floor/plasteel/brown, -/area/quartermaster/qm) -"cLW" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/brown{ - dir = 6 - }, -/area/quartermaster/qm) -"cLX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cLZ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cMa" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"cMb" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Fore Asteroid Hallway APC"; - areastring = "/area/hallway/primary/fore"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"cMc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"cMd" = ( -/obj/structure/sign/biohazard{ - desc = "A sign stating that there are better, more efficient methods of suicide that don't cause extra work for security and the janitor. Volunteer to be miner bait, be voluntary specimen for Research, or just find your nearest external airlock! "; - name = "SUICIDE HOPLINE ISN'T THE WAY!"; - pixel_y = 32 - }, -/turf/open/floor/plasteel/blue/side{ - dir = 1 - }, -/area/crew_quarters/heads/hop) -"cMe" = ( -/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/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"cMf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"cMg" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"cMh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMj" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMl" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/fore) -"cMn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"cMo" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"cMp" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMq" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMr" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMs" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMt" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMu" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cMv" = ( -/obj/machinery/camera{ - c_tag = "Service SMES"; - dir = 6; - network = list("SS13","QM") - }, -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMw" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Port Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/port/west"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMx" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMz" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cMA" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMB" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cME" = ( -/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/structure/chair/stool, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/computer/station_alert, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMG" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cMH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMI" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cML" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMM" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"cMN" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMO" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cMP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMS" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/port/west) -"cMT" = ( -/turf/closed/wall, -/area/crew_quarters/theatre) -"cMU" = ( -/obj/structure/table, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/starboard) -"cMV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMX" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cMY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cMZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cNa" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/baguette, -/obj/structure/sign/poster/official/the_owl{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Theatre Backstage"; - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNb" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNc" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNd" = ( -/obj/structure/table/wood, -/obj/item/device/instrument/guitar, -/obj/item/device/instrument/violin, -/obj/machinery/camera{ - c_tag = "Theatre Stage"; - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNe" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNf" = ( -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNg" = ( -/obj/machinery/door/window/eastright{ - name = "Theatre Stage" - }, -/turf/open/floor/plasteel/stage_left, -/area/crew_quarters/theatre) -"cNh" = ( -/turf/open/floor/plasteel/stairs{ - dir = 8 - }, -/area/crew_quarters/theatre) -"cNi" = ( -/obj/structure/chair/wood, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNk" = ( -/obj/structure/chair/wood, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/port) -"cNm" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/rack, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cNn" = ( -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cNo" = ( -/obj/structure/table, -/obj/item/lipstick/random, -/obj/item/lipstick/random, -/obj/item/lipstick/random, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNp" = ( -/obj/effect/landmark/start/mime, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/theatre) -"cNs" = ( -/obj/structure/table/wood, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/obj/item/clothing/head/sombrero, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNu" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNv" = ( -/obj/structure/table/wood, -/obj/item/candle, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNw" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNx" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNy" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/theatre) -"cNz" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNA" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNB" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cND" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "46" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cNE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/theatre) -"cNF" = ( -/obj/effect/landmark/start/clown, -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNG" = ( -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNH" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNJ" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNL" = ( -/obj/machinery/door/airlock/glass{ - name = "The Chuckle Den" - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNM" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNN" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cNO" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNP" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cNQ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cNR" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cNS" = ( -/obj/structure/closet/secure_closet/freezer/cream_pie, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/item/reagent_containers/food/snacks/pie/cream, -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/crate/wooden/toy, -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNU" = ( -/obj/structure/table, -/obj/item/clothing/mask/pig, -/obj/item/clothing/mask/cowmask, -/obj/item/clothing/mask/cigarette/cigar/cohiba, -/obj/structure/sign/poster/contraband/the_griffin{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/clothing/mask/facehugger/toy, -/obj/item/clothing/mask/fakemoustache, -/turf/open/floor/plasteel/redyellow, -/area/crew_quarters/theatre) -"cNV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/theatre) -"cNW" = ( -/obj/structure/piano, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNX" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"cNY" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cNZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cOa" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Theatre"; - dir = 1; - network = list("SS13") - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cOb" = ( -/obj/structure/table/wood, -/obj/item/candle, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cOc" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cOd" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/theatre) -"cOe" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"cOg" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cOh" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/cmo) -"cOi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"cOj" = ( -/turf/closed/wall/r_wall, -/area/medical/patients_rooms) -"cOk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cOl" = ( -/obj/structure/closet/crate, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cOm" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cOo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Theatre APC"; - areastring = "/area/crew_quarters/theatre"; - pixel_y = 24 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/asteroid/end, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cOp" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cOr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"cOs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cOt" = ( -/obj/machinery/suit_storage_unit/cmo, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/heads/cmo) -"cOu" = ( -/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/cmo, -/area/crew_quarters/heads/cmo) -"cOv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/sign/map/left/ceres{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/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/cmo, -/area/crew_quarters/heads/cmo) -"cOx" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cOy" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cOz" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOB" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOC" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cOD" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/keycard_auth{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/heads/cmo) -"cOE" = ( -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOF" = ( -/obj/structure/table/glass, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOG" = ( -/obj/structure/table/glass, -/obj/item/clothing/neck/stethoscope, -/obj/item/folder, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/holopad, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOI" = ( -/turf/closed/wall/r_wall, -/area/medical/surgery) -"cOJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOK" = ( -/obj/machinery/computer/card/minor/cmo, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_x = -30 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/heads/cmo) -"cOL" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chief_medical_officer, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOM" = ( -/obj/machinery/computer/med_data/laptop, -/obj/structure/table/glass, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cON" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cOO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/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/cmo, -/area/crew_quarters/heads/cmo) -"cOP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"cOQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"cOR" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"cOS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/virology) -"cOT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"cOU" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/device/radio/headset/headset_med, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 1 - }, -/area/medical/virology) -"cOV" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/obj/structure/sign/deathsposal{ - pixel_x = 32 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"cOW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cOX" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/hallway/primary/central) -"cOY" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/crew_quarters/heads/cmo) -"cOZ" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/stamp/cmo, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cPa" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"cPb" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"cPc" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cPd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/rust, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"cPe" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"cPf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"cPg" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"cPh" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/virology) -"cPi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/crate/freezer/blood, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"cPj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/starboard) -"cPk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/medical/medbay/central) -"cPl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"cPm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"cPn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cPo" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPp" = ( -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "0"; - req_one_access_txt = "5;9" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPr" = ( -/obj/structure/table, -/obj/item/folder, -/obj/machinery/camera{ - c_tag = "Morgue North"; - dir = 6 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPs" = ( -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Morgue APC"; - areastring = "/area/medical/morgue"; - pixel_y = 24 - }, -/obj/structure/table, -/obj/item/storage/box/bodybags, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPt" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/genetics/cloning) -"cPw" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPx" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPy" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPz" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPB" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cPD" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cPE" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"cPF" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPG" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/genetics/cloning) -"cPI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/morgue) -"cPJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPL" = ( -/obj/item/stack/rods, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cPM" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cPN" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/camera{ - c_tag = "Morgue South"; - dir = 1; - network = list("SS13") - }, -/obj/effect/landmark/revenantspawn, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/morgue) -"cPO" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"cPP" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cPQ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Morgue"; - req_access_txt = "5" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cPR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cPS" = ( -/obj/structure/rack, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"cPT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cPU" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cPW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cPX" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cPZ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cQa" = ( -/obj/effect/landmark/start/station_engineer, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cQb" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"cQc" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cQd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQe" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cQf" = ( -/obj/structure/sign/enginesafety{ - pixel_y = -32 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cQg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/engineering) -"cQh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cQk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cQl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"cQm" = ( -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"cQn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "Chief Engineer's Office"; - req_access_txt = "56" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQo" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/engineering) -"cQp" = ( -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"cQq" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cQr" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cQs" = ( -/obj/structure/closet/wardrobe/mixed, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cQt" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/west) -"cQu" = ( -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQv" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/paper/monitorkey, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQw" = ( -/obj/item/cartridge/engineering{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/cartridge/engineering{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/cartridge/engineering{ - pixel_x = 3 - }, -/obj/structure/table/reinforced, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/item/cartridge/atmos, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQx" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQy" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cQA" = ( -/obj/item/stack/rods, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQC" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chief_engineer, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQD" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/twohanded/rcl/pre_loaded, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQE" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQG" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQI" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQK" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/stamp/ce, -/obj/item/pen, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cQM" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"cQN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQO" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"cQQ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cQR" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQS" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cQT" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQU" = ( -/obj/structure/closet/emcloset, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQV" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQW" = ( -/obj/structure/girder, -/obj/item/stack/rods, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cQX" = ( -/obj/structure/rack, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"cQY" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cQZ" = ( -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRa" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cRb" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"cRc" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRd" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRe" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cRf" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRg" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRh" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cRi" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cRj" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cRk" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRl" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRm" = ( -/obj/structure/table, -/obj/item/reagent_containers/syringe/charcoal, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRn" = ( -/obj/structure/table, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cRp" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"cRq" = ( -/turf/closed/wall/rust, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"cRr" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRs" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRt" = ( -/obj/machinery/camera{ - c_tag = "Aux Base Construction North"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cRu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRv" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRw" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/arrivals) -"cRy" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRz" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRA" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRB" = ( -/obj/machinery/camera{ - c_tag = "Aux Base Construction South"; - dir = 6 - }, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"cRC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRE" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRF" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRG" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRH" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cRI" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRJ" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRK" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRL" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRP" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/stack/rods, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRR" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/arrivals) -"cRS" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRT" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRU" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/arrivals) -"cRV" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"cRW" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cRX" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cRY" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cRZ" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSa" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"cSc" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cSd" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"cSe" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/plasteel, -/area/science/storage) -"cSf" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plasteel, -/area/science/storage) -"cSg" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/power/apc{ - dir = 1; - name = "Toxins Storage APC"; - areastring = "/area/science/storage"; - pixel_y = 25 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSh" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/science/storage) -"cSi" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSj" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSk" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSm" = ( -/obj/machinery/camera{ - c_tag = "Toxins Storage"; - dir = 9; - network = list("SS13","RD") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"cSp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/storage) -"cSs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/glass_research{ - name = "Toxins Storage"; - req_access_txt = "8" - }, -/turf/open/floor/plasteel/neutral, -/area/science/storage) -"cSt" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plasteel, -/area/science/storage) -"cSu" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hor) -"cSv" = ( -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSw" = ( -/obj/structure/displaycase/labcage, -/obj/structure/sign/map/left/ceres{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSx" = ( -/obj/machinery/button/door{ - id = "researchlockdown"; - name = "Research Emergency Lockdown"; - pixel_x = -24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "rdoffice"; - name = "Office Emergency Lockdown"; - pixel_x = -24; - pixel_y = -8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSz" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cSB" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cSC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cSD" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hor) -"cSE" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/item/folder/white, -/obj/item/stamp/rd{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cSG" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Research Director's Desk"; - departmentType = 5; - name = "Research Director RC"; - pixel_x = -30 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSH" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/research_director, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSI" = ( -/obj/machinery/computer/mecha, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSJ" = ( -/obj/structure/rack, -/obj/item/device/paicard{ - pixel_x = 4 - }, -/obj/item/device/taperecorder{ - pixel_x = -3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cSK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSM" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSN" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSO" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/keycard_auth{ - pixel_y = -28 - }, -/obj/structure/closet/secure_closet/RD, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cSP" = ( -/obj/structure/rack, -/obj/item/device/aicard, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cSQ" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hor) -"cSR" = ( -/obj/structure/grille, -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/science) -"cSS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cST" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cSV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSX" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cSZ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTa" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/obj/item/stack/rods, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTc" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTd" = ( -/obj/machinery/light/small, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTe" = ( -/obj/structure/table, -/obj/item/wrench, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTf" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTg" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille/broken, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTh" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTi" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTj" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"cTk" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"cTl" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cTm" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cTn" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 8 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cTo" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cTp" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/airless/astplate, -/area/mine/unexplored{ - name = "Cargo Asteroid" - }) -"cTq" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"cTr" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/door/window/eastright{ - name = "Mail Chute"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"cTs" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cTt" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"cTu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/twohanded/required/kirbyplants/dead, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"cTv" = ( -/turf/closed/mineral, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTw" = ( -/turf/closed/wall/rust, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTx" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTy" = ( -/turf/closed/wall, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTz" = ( -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTA" = ( -/obj/structure/closet, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTB" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTC" = ( -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTD" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-20"; - light_color = "#E1E17D"; - light_range = 5; - luminosity = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTE" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTF" = ( -/obj/structure/sign/map/left/ceres{ - pixel_x = 32 - }, -/obj/structure/closet/crate/bin, -/obj/item/paper/crumpled/stations/cere/rocks1, -/obj/item/paper/crumpled/stations/cere/rocks2, -/obj/item/paper/crumpled/stations/cere/rocks3, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTG" = ( -/turf/closed/mineral/random/low_chance, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTH" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/paper/crumpled/stations/cere/empty_station, -/obj/item/paper/fluff/stations/cere/journal/journal, -/obj/item/paper/fluff/stations/cere/journal/journal_2, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTI" = ( -/obj/item/paper/crumpled/bloody/hop, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTJ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTK" = ( -/obj/structure/table, -/obj/item/pen, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTL" = ( -/obj/structure/sign/map/left{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTM" = ( -/obj/structure/table, -/obj/structure/sign/map/right{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTN" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTO" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"cTP" = ( -/obj/machinery/smartfridge/food, -/turf/open/floor/plating, -/area/crew_quarters/kitchen) -"cTQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - name = "Kitchen Pick-Up"; - req_access_txt = "28" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cTR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"cTS" = ( -/obj/machinery/plantgenes, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"cTT" = ( -/obj/machinery/r_n_d/circuit_imprinter, -/obj/machinery/requests_console{ - department = "Robotics"; - departmentType = 2; - name = "Robotics RC"; - pixel_y = 30 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cTV" = ( -/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{ - dir = 1 - }, -/area/security/prison) -"cTW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/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, -/area/security/prison) -"cTY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/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, -/area/security/prison) -"cTZ" = ( -/obj/structure/closet/secure_closet/CMO, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/crew_quarters/heads/cmo) -"cUa" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix To Incinerator"; - on = 0 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUb" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUc" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUd" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUe" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUf" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUg" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Central Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUi" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUj" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUl" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUm" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUn" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUo" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUr" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUt" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUw" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUy" = ( -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cUz" = ( -/turf/closed/wall/rust, -/area/maintenance/disposal/incinerator) -"cUA" = ( -/obj/machinery/door/airlock/atmos{ - name = "Turbine Access"; - req_access_txt = "32" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cUB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Central Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cUD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/sign/mining{ - pixel_y = -32 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cUE" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4; - name = "input gas connector port" - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUF" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "plasma tank pump" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUH" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/extinguisher, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUI" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cUJ" = ( -/obj/machinery/power/smes{ - capacity = 9e+006; - charge = 10000 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cUK" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general{ - level = 2 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUM" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUN" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUO" = ( -/obj/machinery/airalarm/all_access{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - name = "output gas connector port" - }, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUP" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Incinerator APC"; - areastring = "/area/maintenance/disposal/incinerator"; - pixel_x = -23; - pixel_y = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUQ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUR" = ( -/obj/machinery/atmospherics/components/binary/valve{ - name = "Mix to Space" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUT" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUU" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Incinerator to Output"; - on = 0 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUV" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUW" = ( -/obj/machinery/computer/turbine_computer{ - id = "incineratorturbine" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUX" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUY" = ( -/obj/machinery/button/door{ - id = "auxincineratorvent"; - name = "Auxiliary Vent Control"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "32" - }, -/obj/machinery/button/door{ - id = "turbinevent"; - name = "Turbine Vent Control"; - pixel_x = -6; - pixel_y = -24; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cUZ" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Incinerator to Space" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cVa" = ( -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "incinerator_airlock_exterior"; - idSelf = "incinerator_access_control"; - idInterior = "incinerator_airlock_interior"; - name = "Incinerator Access Console"; - pixel_x = 6; - pixel_y = -26; - req_access_txt = "12" - }, -/obj/machinery/button/ignition{ - id = "Incinerator"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"cVb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cVc" = ( -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cVd" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 2 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cVe" = ( -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "incinerator_airlock_interior"; - locked = 1; - name = "Turbine Interior Airlock"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cVf" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cVg" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Incinerator Output Pump"; - on = 1 - }, -/turf/open/space, -/area/maintenance/disposal/incinerator) -"cVh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - on = 1 - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "incinerator_airlock_exterior"; - idSelf = "incinerator_access_control"; - layer = 3.1; - name = "Incinerator airlock control"; - pixel_x = 8; - pixel_y = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/sign/fire{ - pixel_x = -32 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cVi" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cVj" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - on = 1 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/obj/machinery/doorButtons/access_button{ - idSelf = "incinerator_access_control"; - idDoor = "incinerator_airlock_interior"; - name = "Incinerator airlock control"; - pixel_x = -8; - pixel_y = 24 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cVk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/space, -/area/maintenance/disposal/incinerator) -"cVl" = ( -/obj/machinery/door/airlock/glass{ - autoclose = 0; - frequency = 1449; - heat_proof = 1; - icon_state = "door_locked"; - id_tag = "incinerator_airlock_exterior"; - locked = 1; - name = "Turbine Exterior Airlock"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cVm" = ( -/obj/machinery/door/poddoor{ - id = "auxincineratorvent"; - name = "Auxiliary Incinerator Vent" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVn" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1; - frequency = 1441; - id = "inc_in" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVo" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/igniter{ - icon_state = "igniter0"; - id = "Incinerator"; - luminosity = 2; - on = 0 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVr" = ( -/obj/machinery/power/compressor{ - comp_id = "incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVs" = ( -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVt" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/disposal/incinerator) -"cVu" = ( -/obj/structure/sign/fire, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cVv" = ( -/obj/machinery/door/poddoor{ - id = "turbinevent"; - name = "Turbine Vent" - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cVw" = ( -/obj/item/ore/glass, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plating/asteroid, -/area/security/execution/transfer) -"cVz" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Perma Storage" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"cVA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"cVB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"cVC" = ( -/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{ - dir = 4 - }, -/area/security/prison) -"cVD" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/prison) -"cVE" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 1"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"cVF" = ( -/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{ - dir = 8 - }, -/area/security/prison) -"cVH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"cVI" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/closed/wall, -/area/security/prison) -"cVL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"cVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/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{ - dir = 4 - }, -/area/security/prison) -"cVO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"cVP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/prison) -"cVR" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/floor/plating/astplate, -/area/security/prison) -"cVX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/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{ - dir = 4 - }, -/area/security/prison) -"cVY" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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/plasteel/floorgrime, -/area/security/prison) -"cWa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cWb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/glass_engineering{ - name = "Chief Engineer's Office"; - req_access_txt = "56" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"cWc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ceoffice" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cWd" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWe" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cWf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/com_serv) -"cWg" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWh" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/com_serv) -"cWi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/com_engi) -"cWj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/com_engi) -"cWk" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cWl" = ( -/obj/machinery/camera{ - c_tag = "Command-Service Bridge"; - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWm" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWn" = ( -/obj/machinery/camera{ - c_tag = "Command-Engineering Bridge"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cWo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/med_cargo) -"cWp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 8; - name = "Medical-Cargo Bridge APC"; - areastring = "/area/hallway/secondary/bridges/med_cargo"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cWq" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cWr" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/med_cargo) -"cWs" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Command-Service Bridge APC"; - areastring = "/area/hallway/secondary/bridges/com_serv"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4"; - d2 = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWu" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cWx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Medbay-Cargo Bridge"; - dir = 4 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cWz" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"cWA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/serv_engi) -"cWB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/engi_med) -"cWC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWG" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWH" = ( -/obj/machinery/camera{ - c_tag = "Service-Engineering Bridge 1"; - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWI" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Service-Engineering Bridge APC"; - areastring = "/area/hallway/secondary/bridges/serv_engi"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWK" = ( -/obj/machinery/camera{ - c_tag = "Service-Engineering Bridge 2"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/serv_engi) -"cWL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/central) -"cWM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/central) -"cWN" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWO" = ( -/obj/machinery/camera{ - c_tag = "Medbay-Engineering Bridge"; - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWP" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Engineering-Medical Bridge APC"; - areastring = "/area/hallway/secondary/bridges/engi_med"; - pixel_y = -24 - }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWQ" = ( -/obj/machinery/camera{ - c_tag = "Medbay-Engineering Bridge 2"; - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/engi_med) -"cWR" = ( -/turf/closed/wall, -/area/hallway/secondary/bridges/serv_engi) -"cWS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/serv_engi) -"cWT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/engi_med) -"cWU" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cWV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/dock_med) -"cWW" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cWX" = ( -/obj/machinery/camera{ - c_tag = "Docking-Medbay Bridge"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cWY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/dock_med) -"cWZ" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cXa" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Docking-Medical Bridge APC"; - areastring = "/area/hallway/secondary/bridges/dock_med"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cXb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cXc" = ( -/obj/machinery/camera{ - c_tag = "Docking-Medbay Bridge 2"; - dir = 8; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cXd" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cXe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cXf" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cXg" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 24 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"cXh" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/sci_dock) -"cXi" = ( -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXj" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"cXm" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"cXn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 5"; - dir = 1; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 2"; - dir = 1; - network = list("SS13") - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 3"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research-Docking Bridge 4"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cXs" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"cXt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"cXu" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/grille, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"cXv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"cXw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"cXx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"cXy" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"cXA" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXB" = ( -/obj/machinery/camera{ - c_tag = "Core-Command-Cargo Bridge 1"; - dir = 8; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"cXD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"cXF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/cargo_ai) -"cXG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"cXH" = ( -/obj/machinery/camera{ - c_tag = "Core-Command-Cargo Bridge 2"; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXI" = ( -/obj/machinery/camera{ - c_tag = "Core-Command-Cargo Bridge 3"; - network = list("SS13") - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXJ" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Cargo-AI-Command Bridge APC"; - areastring = "/area/hallway/secondary/bridges/cargo_ai"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXL" = ( -/obj/machinery/camera{ - c_tag = "Core-Command-Cargo Bridge 3"; - network = list("SS13") - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXM" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"cXN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/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/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"cXO" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXP" = ( -/obj/machinery/light, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXQ" = ( -/obj/machinery/light/small, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/cargo_ai) -"cXS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"cXT" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cXU" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cXV" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_serv) -"cXW" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Command-Engineering Bridge APC"; - areastring = "/area/hallway/secondary/bridges/com_engi"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-2"; - pixel_y = 1; - d2 = 2 - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cXX" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/com_engi) -"cXY" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/med_cargo) -"cXZ" = ( -/obj/machinery/door/airlock/glass, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"cYa" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"cYb" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/central) -"cYc" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/dock_med) -"cYd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/serv_sci) -"cYe" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 4; - name = "Service-Science Bridge APC"; - areastring = "/area/hallway/secondary/bridges/serv_sci"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"cYf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/serv_sci) -"cYg" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"cYh" = ( -/obj/effect/landmark/lightsout, -/turf/open/floor/engine, -/area/hallway/secondary/bridges/sci_dock) -"cYi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard/fore) -"cYj" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/closed/wall, -/area/maintenance/asteroid/fore/com_west) -"cYk" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Cargo Hallway APC"; - areastring = "/area/hallway/primary/starboard/fore"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cYl" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - dir = 8; - name = "Cargo Hallway APC"; - areastring = "/area/maintenance/asteroid/fore/cargo_south"; - pixel_x = -23; - pixel_y = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"cYm" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"cYn" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"cYo" = ( -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"cYp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/hallway/primary/port) -"cYq" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard) -"cYr" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/sign/poster/official/safety_report{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"cYs" = ( -/obj/structure/displaycase/trophy, -/turf/open/floor/wood, -/area/library) -"cYt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cYu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/central) -"cYv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"cYw" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/abandoned) -"cYx" = ( -/obj/machinery/door/airlock/titanium{ - name = "mech bay external airlock" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/docking_port/mobile{ - dheight = 0; - dir = 2; - dwidth = 8; - height = 16; - id = "whiteship"; - launch_status = 0; - name = "NT Recovery White-Ship"; - port_angle = -90; - preferred_direction = 1; - roundstart_move = "whiteship_away"; - width = 16 - }, -/obj/docking_port/stationary{ - dir = 2; - dwidth = 8; - height = 16; - id = "whiteship_home"; - name = "SS13: Auxiliary Dock, Station-Port"; - width = 16 - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cYy" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cYz" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYA" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYB" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYC" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cYD" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYE" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/shuttle/abandoned) -"cYF" = ( -/obj/structure/mecha_wreckage/ripley, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mech_bay_recharge_floor, -/area/shuttle/abandoned) -"cYG" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYH" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cYI" = ( -/obj/effect/spawner/lootdrop{ - loot = list(/obj/mecha/working/ripley/mining = 1, /obj/structure/mecha_wreckage/ripley = 5); - lootdoubles = 0; - name = "25% mech 75% wreckage ripley spawner" - }, -/turf/open/floor/mech_bay_recharge_floor, -/area/shuttle/abandoned) -"cYJ" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYK" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYL" = ( -/obj/machinery/door/airlock/titanium{ - name = "mech bay" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYM" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cYN" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/structure/closet/crate{ - name = "spare equipment crate" - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYO" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYP" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYQ" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - name = "spare equipment crate"; - opened = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYR" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYS" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - name = "spare equipment crate"; - opened = 1 - }, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/storage/toolbox/emergency/old, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYT" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/shuttle/abandoned) -"cYU" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "cerewhiteleft"; - name = "Cargo Blast Door Toggle"; - pixel_x = -24 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYV" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYW" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - name = "spare equipment crate"; - opened = 1 - }, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYX" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYY" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/structure/closet/crate{ - name = "spare equipment crate" - }, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cYZ" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "cerewhiteright"; - name = "Cargo Blast Door Toggle"; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZa" = ( -/obj/machinery/door/poddoor{ - id = "cerewhiteleft" - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cZb" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cZc" = ( -/obj/machinery/door/poddoor{ - id = "cerewhiteright" - }, -/turf/open/floor/plating, -/area/shuttle/abandoned) -"cZd" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/item/crowbar, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkpurple, -/area/shuttle/escape) -"cZe" = ( -/obj/machinery/computer/aifixer, -/turf/open/floor/plasteel/darkpurple, -/area/shuttle/escape) -"cZf" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/darkpurple, -/area/shuttle/escape) -"cZg" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZh" = ( -/obj/machinery/computer/card, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZi" = ( -/obj/machinery/computer/emergency_shuttle, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZj" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZk" = ( -/obj/structure/table, -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"cZl" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"cZm" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/firstaid/o2, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"cZn" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/power/apc{ - dir = 8; - name = "Starboard Quarter Primary Hallway APC"; - areastring = "/area/hallway/primary/starboard/aft"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"cZo" = ( -/obj/structure/table, -/turf/open/floor/plasteel/darkblue, -/area/shuttle/escape) -"cZp" = ( -/turf/open/floor/plasteel/darkblue, -/area/shuttle/escape) -"cZq" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/turf/open/floor/plasteel/darkpurple, -/area/shuttle/escape) -"cZr" = ( -/turf/open/floor/plasteel/darkpurple, -/area/shuttle/escape) -"cZs" = ( -/obj/machinery/computer/station_alert, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZt" = ( -/obj/structure/chair/office/light{ - icon_state = "officechair_white"; - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZu" = ( -/obj/machinery/computer/communications, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZv" = ( -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"cZw" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"cZx" = ( -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"cZy" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"cZz" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/structure/closet/crate{ - name = "spare equipment crate" - }, -/obj/item/storage/toolbox/mechanical/old, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZA" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/structure/closet/crate{ - icon_state = "crateopen"; - name = "spare equipment crate"; - opened = 1 - }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZB" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/abandoned) -"cZC" = ( -/obj/effect/turf_decal/delivery{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZD" = ( -/obj/machinery/computer/med_data, -/turf/open/floor/plasteel/darkblue, -/area/shuttle/escape) -"cZE" = ( -/turf/open/floor/plasteel/darkpurple/side{ - dir = 1 - }, -/area/shuttle/escape) -"cZF" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZG" = ( -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZH" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZI" = ( -/turf/open/floor/plasteel/darkyellow/side{ - dir = 1 - }, -/area/shuttle/escape) -"cZJ" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"cZK" = ( -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZL" = ( -/obj/machinery/door/airlock/titanium{ - name = "cockpit" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZM" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/structure/tank_dispenser/oxygen{ - layer = 2.7; - pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/mineral/titanium/yellow, -/area/shuttle/abandoned) -"cZN" = ( -/obj/machinery/computer/crew, -/turf/open/floor/plasteel/darkblue, -/area/shuttle/escape) -"cZO" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/darkblue, -/area/shuttle/escape) -"cZP" = ( -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"cZQ" = ( -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/shuttle/escape) -"cZR" = ( -/obj/structure/chair/comfy/beige{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"cZS" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"cZT" = ( -/obj/structure/table, -/obj/item/device/gps{ - gpstag = "NTCONST1"; - pixel_x = -1; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZU" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZV" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZW" = ( -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZX" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/storage/firstaid/regular, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"cZY" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"cZZ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"daa" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/shuttle/escape) -"dab" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/darkred, -/area/shuttle/escape) -"dac" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dad" = ( -/obj/machinery/door/airlock/glass{ - name = "Emergency Shuttle Cockpit"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/escape) -"dae" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"daf" = ( -/obj/structure/chair/comfy/black, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dag" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dah" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 5; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"dai" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 8 - }, -/area/shuttle/escape) -"daj" = ( -/turf/open/floor/plasteel/neutral/side{ - dir = 4 - }, -/area/shuttle/escape) -"dak" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"dal" = ( -/turf/open/floor/plasteel, -/area/shuttle/escape) -"dam" = ( -/obj/structure/table, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dan" = ( -/obj/machinery/computer/shuttle/white_ship, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dao" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -1; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/dirt{ - desc = "A thin layer of dust coating the floor."; - name = "dust" - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/abandoned) -"dap" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"daq" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/flasher{ - id = "shuttle_flasher"; - pixel_x = 24; - pixel_y = 6 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"dar" = ( -/obj/machinery/button/flasher{ - id = "shuttle_flasher"; - pixel_x = -24; - pixel_y = -6 - }, -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/mineral/plastitanium/brig{ - dir = 8; - floor_tile = /obj/item/stack/tile/plasteel; - icon_state = "darkred" - }, -/area/shuttle/escape) -"das" = ( -/turf/open/floor/mineral/plastitanium/brig{ - dir = 4; - floor_tile = /obj/item/stack/tile/plasteel; - icon_state = "darkred" - }, -/area/shuttle/escape) -"dat" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/shuttle/escape) -"dau" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/brig, -/area/shuttle/escape) -"dav" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Emergency Shuttle Brig"; - req_access_txt = "2" - }, -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkredfull" - }, -/area/shuttle/escape) -"daw" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"dax" = ( -/turf/open/floor/mineral/plastitanium/brig{ - icon_state = "darkred"; - dir = 2; - floor_tile = /obj/item/stack/tile/plasteel - }, -/area/shuttle/escape) -"day" = ( -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/shuttle/escape) -"daz" = ( -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daA" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - icon_state = "warningline"; - dir = 1 - }, -/obj/structure/closet, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/brown{ - dir = 4 - }, -/area/shuttle/escape) -"daB" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/brig{ - dir = 6; - floor_tile = /obj/item/stack/tile/plasteel; - icon_state = "darkred" - }, -/area/shuttle/escape) -"daC" = ( -/obj/machinery/door/airlock/shuttle{ - name = "Emergency Shuttle Cargo" - }, -/turf/open/floor/plasteel/darkyellow, -/area/shuttle/escape) -"daD" = ( -/turf/open/floor/plasteel/brown{ - dir = 8 - }, -/area/shuttle/escape) -"daE" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daF" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/brown{ - dir = 4 - }, -/area/shuttle/escape) -"daG" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daH" = ( -/obj/structure/table, -/obj/item/storage/box/cups, -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_y = 27 - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daI" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daJ" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daK" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daL" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daM" = ( -/turf/open/floor/plasteel/brown{ - dir = 10 - }, -/area/shuttle/escape) -"daN" = ( -/turf/open/floor/plasteel/brown, -/area/shuttle/escape) -"daO" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/brown, -/area/shuttle/escape) -"daP" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/closet, -/turf/open/floor/plasteel/brown{ - dir = 6 - }, -/area/shuttle/escape) -"daQ" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daR" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/shuttle/escape) -"daS" = ( -/turf/open/floor/plasteel/neutral/side, -/area/shuttle/escape) -"daT" = ( -/obj/item/device/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_y = 27 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daU" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daV" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daW" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"daX" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daY" = ( -/obj/structure/sign/bluecross_2{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"daZ" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/shuttle/escape) -"dba" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21"; - layer = 4.1 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"dbb" = ( -/obj/machinery/door/airlock/glass_medical{ - name = "Emergency Shuttle Medbay" - }, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbc" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/shuttle/escape) -"dbd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/shuttle/escape) -"dbe" = ( -/mob/living/simple_animal/bot/medbot{ - name = "Speedy* Recovery" - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 9 - }, -/area/shuttle/escape) -"dbf" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbg" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbh" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbi" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbj" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/wrench, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/shuttle/escape) -"dbk" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"dbl" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/shuttle/escape) -"dbm" = ( -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"dbn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"dbo" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"dbp" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/shuttle/escape) -"dbq" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/shuttle/escape) -"dbr" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/shuttle/escape) -"dbs" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 - }, -/area/shuttle/escape) -"dbt" = ( -/turf/open/floor/plasteel/whiteblue/side, -/area/shuttle/escape) -"dbu" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/shuttle/escape) -"dbv" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = 2; - pixel_y = 3 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/shuttle/escape) -"dbw" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plasteel/neutral, -/area/shuttle/escape) -"dbx" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dby" = ( -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbz" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbA" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/shuttle/escape) -"dbB" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/blood/empty, -/obj/item/reagent_containers/blood/empty, -/obj/item/reagent_containers/blood/AMinus, -/obj/item/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/APlus, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbC" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/hemostat, -/obj/item/surgicaldrill, -/obj/item/cautery{ - pixel_x = 4 - }, -/obj/item/retractor, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbD" = ( -/obj/structure/table, -/obj/item/storage/firstaid/fire, -/obj/item/crowbar, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/shuttle/escape) -"dbE" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbF" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbG" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/clothing/suit/apron/surgical, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/surgical_drapes, -/obj/item/razor, -/turf/open/floor/plasteel/whiteblue, -/area/shuttle/escape) -"dbH" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/toxin, -/obj/item/defibrillator/loaded, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 10 - }, -/area/shuttle/escape) -"dbI" = ( -/obj/machinery/sleeper{ - dir = 1 - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/shuttle/escape) -"dbJ" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/shuttle/escape) -"dbK" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/shuttle/escape) -"dbL" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/neutral/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbM" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Engine Room"; - req_one_access_txt = "10;24" - }, -/turf/open/floor/plasteel/yellow, -/area/shuttle/escape) -"dbN" = ( -/obj/machinery/door/airlock{ - name = "Bathroom" - }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dbO" = ( -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dbP" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dbQ" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 9 - }, -/area/shuttle/escape) -"dbR" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbS" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/monitor, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/escape) -"dbT" = ( -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/shuttle/escape) -"dbU" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dbV" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dbW" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/shuttle/escape) -"dbX" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/shuttle/escape) -"dbY" = ( -/turf/open/floor/plasteel/yellow/corner{ - dir = 4 - }, -/area/shuttle/escape) -"dbZ" = ( -/obj/structure/table, -/obj/item/storage/box/metalfoam, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/escape) -"dca" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/yellow/side{ - dir = 1 - }, -/area/shuttle/escape) -"dcb" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/plasteel/yellow/side{ - dir = 5 - }, -/area/shuttle/escape) -"dcc" = ( -/obj/structure/urinal{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dcd" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/recharge_station, -/turf/open/floor/plasteel/freezer, -/area/shuttle/escape) -"dce" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/shuttle/escape) -"dcf" = ( -/obj/structure/sign/electricshock{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/shuttle/escape) -"dcg" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/shuttle/escape) -"dch" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/escape) -"dci" = ( -/obj/structure/table, -/obj/structure/sign/enginesafety{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/escape) -"dcj" = ( -/obj/item/device/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/escape) -"dck" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/escape) -"dcl" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/side, -/area/shuttle/escape) -"dcm" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 6 - }, -/area/shuttle/escape) -"dcn" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/turf/open/floor/plating, -/area/shuttle/escape) -"dco" = ( -/turf/open/floor/plating, -/area/shuttle/escape) -"dcp" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"dcq" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/escape) -"dcr" = ( -/obj/machinery/power/smes/engineering, -/turf/open/floor/plating, -/area/shuttle/escape) -"dcs" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/shuttle/escape) -"dct" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/shuttle/escape) -"dcu" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/shuttle/escape) -"dcv" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space/basic, -/area/space) -"dcw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/hallway/secondary/bridges/serv_engi) -"dcx" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side, -/area/hydroponics) -"dcy" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/darkgreen/side, -/area/hydroponics) -"dcz" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space) -"dcB" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plating, -/area/hydroponics) -"dcC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"dcE" = ( -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/grass, -/area/hydroponics) -"dcF" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Hydroponics Bee Reserve North"; - dir = 9; - network = list("SS13") - }, -/turf/open/floor/grass, -/area/hydroponics) -"dcG" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcH" = ( -/obj/machinery/hydroponics/constructable, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkgreen/side, -/area/hydroponics) -"dcI" = ( -/obj/machinery/hydroponics/constructable, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcJ" = ( -/obj/structure/flora/ausbushes/ppflowers, -/turf/open/floor/grass, -/area/hydroponics) -"dcK" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/maintenance/asteroid/port/east) -"dcL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/hydroponics) -"dcM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/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/black, -/area/hydroponics) -"dcN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 8 - }, -/area/hydroponics) -"dcO" = ( -/obj/effect/landmark/lightsout, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/darkgreen/side{ - dir = 4 - }, -/area/hydroponics) -"dcQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcR" = ( -/obj/machinery/door/airlock/glass{ - name = "Bee Reserve"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/grass, -/area/hydroponics) -"dcT" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/grass, -/area/hydroponics) -"dcU" = ( -/turf/open/floor/grass, -/area/hydroponics) -"dcV" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j1s"; - name = "disposal pipe - Hydroponics"; - sortType = 21 - }, -/turf/closed/wall, -/area/maintenance/asteroid/port/east) -"dcW" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"dcX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"dcZ" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen/side, -/area/hydroponics) -"dda" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"ddb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"ddc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/maintenance/asteroid/port/east) -"ddd" = ( -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"dde" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/grass, -/area/hydroponics) -"ddf" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/open/floor/grass, -/area/hydroponics) -"ddg" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"ddh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/hydroponics) -"ddi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"ddj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"ddk" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"ddl" = ( -/obj/machinery/door/airlock/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/hydrofloor, -/area/hydroponics) -"ddm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"ddn" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/grass, -/area/hydroponics) -"ddo" = ( -/obj/machinery/vending/hydroseeds, -/obj/machinery/camera{ - c_tag = "Hydroponics South 1"; - dir = 1; - network = list("SS13"); - start_active = 1 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"ddp" = ( -/obj/machinery/vending/hydronutrients, -/obj/machinery/light, -/turf/open/floor/plasteel/black, -/area/hydroponics) -"ddq" = ( -/obj/structure/closet{ - name = "Bee-keeping suits" - }, -/obj/item/clothing/head/beekeeper_head, -/obj/item/clothing/head/beekeeper_head, -/obj/item/clothing/suit/beekeeper_suit, -/obj/item/clothing/suit/beekeeper_suit, -/obj/item/melee/flyswatter, -/obj/item/melee/flyswatter, -/obj/machinery/camera{ - c_tag = "Hydroponics South 2"; - dir = 1; - network = list("SS13"); - start_active = 1 - }, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"ddr" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Hydroponics APC"; - areastring = "/area/hydroponics"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/obj/structure/cable/orange, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/hydroponics) -"dds" = ( -/obj/item/device/assembly/mousetrap/armed, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"ddt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddu" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddv" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddw" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/pickaxe/mini, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4; - frequency = 1441; - id = "n2_in" - }, -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/maintenance/asteroid/central) -"ddy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral, -/area/maintenance/asteroid/central) -"ddz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/central) -"ddA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/central) -"ddB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"ddC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/central) -"ddD" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"ddE" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"ddF" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"ddG" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/engine/atmos) -"ddH" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 4; - name = "Waste Release" - }, -/turf/open/floor/plasteel/yellow/side, -/area/engine/atmos) -"ddI" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 10 - }, -/area/engine/atmos) -"ddJ" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "n2"; - name = "nitrogen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/red, -/area/engine/atmos) -"ddK" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddL" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ddM" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "n2_in"; - name = "Nitrogen Supply Control"; - output_tag = "n2_out"; - sensors = list("n2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/red, -/area/engine/atmos) -"ddN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddO" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure" - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced, -/obj/machinery/door/window/eastright{ - name = "Interior Pipe Access"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"ddP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/crew_quarters/heads/chief) -"ddQ" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 2; - filter_type = "o2"; - name = "oxygen filter"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/blue, -/area/engine/atmos) -"ddR" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddS" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ddV" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "o2_in"; - name = "Oxygen Supply Control"; - output_tag = "o2_out"; - sensors = list("o2_sensor" = "Tank") - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/blue, -/area/engine/atmos) -"ddW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"ddX" = ( -/obj/machinery/pipedispenser, -/obj/machinery/light, -/turf/open/floor/plasteel/yellow/corner{ - dir = 8 - }, -/area/engine/atmos) -"ddY" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"ddZ" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dea" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Airmix"; - on = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/blue, -/area/engine/atmos) -"deb" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/camera{ - c_tag = "Atmospherics Distro"; - dir = 9; - network = list("SS13","CE") - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"dec" = ( -/obj/structure/sign/poster/official/safety_internals, -/turf/closed/wall, -/area/engine/atmos) -"ded" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics South"; - dir = 4; - network = list("SS13","CE") - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"dee" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"def" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"deg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"deh" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "O2 to Pure" - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced, -/obj/machinery/door/window/eastright{ - name = "Interior Pipe Access"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"dei" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "South Canister To Waste"; - on = 0; - target_pressure = 101 - }, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"dej" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/yellow/corner{ - dir = 1 - }, -/area/engine/atmos) -"dek" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel/delivery, -/area/engine/atmos) -"del" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"dem" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"den" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/yellow/side{ - dir = 8 - }, -/area/engine/atmos) -"deo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dep" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"deq" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/barber, -/area/engine/atmos) -"der" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"des" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"det" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/atmos) -"deu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dev" = ( -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "air_in"; - name = "Mixed Air Supply Control"; - output_tag = "air_out"; - sensors = list("air_sensor" = "Tank") - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/barber, -/area/engine/atmos) -"dew" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"dex" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - dir = 1; - name = "Interior Pipe Access"; - req_access_txt = "24" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to South Canister"; - on = 0 - }, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"dey" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "tox_in"; - name = "Plasma Supply Control"; - output_tag = "tox_out"; - sensors = list("tox_sensor" = "Tank") - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/purple, -/area/engine/atmos) -"dez" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Plasma to Pure"; - on = 0 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/purple, -/area/engine/atmos) -"deA" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "n2o"; - name = "n2o filter"; - on = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/escape{ - dir = 10 - }, -/area/engine/atmos) -"deB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/computer/atmos_control/tank{ - frequency = 1441; - input_tag = "n2o_in"; - name = "Nitrous Oxide Supply Control"; - output_tag = "n2o_out"; - sensors = list("n2o_sensor" = "Tank") - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/escape, -/area/engine/atmos) -"deC" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "N2O to Pure"; - on = 0 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/escape{ - dir = 6 - }, -/area/engine/atmos) -"deD" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/engine/atmos) -"deE" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/plasteel/black, -/area/engine/atmos) -"deF" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/com_east) -"deH" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"deI" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/com_west) -"deJ" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/com_east) -"deK" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/com_west) -"deL" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"deN" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"deO" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/com_north) -"deP" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/com_east) -"deQ" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_north) -"deR" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"deS" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/cargo_west) -"deU" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"deV" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/com_east) -"deW" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/cargo_west) -"deX" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"deY" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armoryaccess"; - name = "Armory Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/security/armory) -"deZ" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dfa" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/cargo_west) -"dfb" = ( -/obj/vehicle/secway, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"dfc" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 9 - }, -/area/security/armory) -"dfd" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dfe" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"dff" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/cargo_west) -"dfg" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dfh" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"dfi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"dfk" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"dfl" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"dfn" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dfo" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"dfp" = ( -/obj/vehicle/secway, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "armoryaccess2"; - name = "Armory Shutter Access"; - pixel_y = -28; - req_access_txt = "3" - }, -/turf/open/floor/plasteel, -/area/security/armory) -"dfq" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_north) -"dfr" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dfs" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"dft" = ( -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/main) -"dfu" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dfv" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"dfw" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_west) -"dfx" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_west) -"dfy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dfz" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dfA" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dfB" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"dfC" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfD" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dfE" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dfF" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfG" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfI" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_east) -"dfK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfL" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfM" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/cargo_south) -"dfN" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/cargo_south) -"dfO" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/cargo_south) -"dfP" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dfQ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dfR" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dfS" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dfT" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dfV" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dfW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dfX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dfY" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dfZ" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dga" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"dgb" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dgc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dgd" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dge" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dgg" = ( -/obj/structure/girder, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dgh" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/com_west) -"dgi" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dgj" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dgk" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dgl" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dgm" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgn" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dgo" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"dgp" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dgq" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"dgr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgs" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dgt" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dgv" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/cargo_south) -"dgw" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgx" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dgy" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgA" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"dgB" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dgC" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dgD" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"dgE" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"dgF" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dgG" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dgK" = ( -/turf/closed/wall, -/area/hallway/primary/starboard/fore) -"dgL" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/starboard/fore) -"dgM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"dgN" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgO" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgP" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/cargo_south) -"dgT" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"dgU" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgV" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dgW" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dgX" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dhc" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"dhd" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"dhe" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"dhf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"dhg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"dhh" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dhi" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"dhj" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/fore) -"dhk" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhl" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhm" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhn" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dho" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhp" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_west) -"dhr" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/fore/com_south) -"dhs" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/fore/com_south) -"dht" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"dhu" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 1 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dhv" = ( -/turf/closed/wall, -/area/maintenance/asteroid/fore/com_south) -"dhw" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhx" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhy" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhz" = ( -/obj/structure/girder, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhA" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhB" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"dhC" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"dhD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"dhE" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"dhF" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"dhG" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_south) -"dhH" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/fore/com_south) -"dhI" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhJ" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dhK" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dhL" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/cargo_south) -"dhM" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/cargo_south) -"dhN" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhO" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"dhP" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhQ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhR" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhS" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"dhT" = ( -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"dhU" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"dhV" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhW" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/hallway/primary/starboard/fore) -"dhX" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhY" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dhZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"dia" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/starboard/fore) -"dib" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"dic" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"did" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/command) -"die" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/fore) -"dif" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/port/neast) -"dig" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/port/neast) -"dih" = ( -/turf/closed/wall, -/area/maintenance/asteroid/port/neast) -"dii" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/neast) -"dij" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/port/west) -"dik" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"dil" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"dim" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"din" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"dio" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"dip" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"diq" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"dir" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"dis" = ( -/turf/closed/wall, -/area/maintenance/asteroid/port/east) -"dit" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"diu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/port/east) -"div" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diw" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"dix" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/port/east) -"diy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diz" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diA" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diB" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/port/east) -"diC" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"diD" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diE" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diF" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diG" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diH" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diI" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/port/east) -"diJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"diK" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"diL" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"diM" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diO" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diS" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/east) -"diT" = ( -/turf/closed/wall, -/area/hallway/primary/starboard/aft) -"diU" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"diV" = ( -/obj/machinery/door/airlock/glass, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"diW" = ( -/obj/structure/sign/map/left/ceres{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"diX" = ( -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"diY" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"diZ" = ( -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"dja" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"djb" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"djd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"dje" = ( -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djf" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djg" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall, -/area/hallway/primary/starboard/aft) -"djh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"dji" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djj" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djk" = ( -/turf/open/space, -/area/solar/asteroid/aft) -"djl" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"djm" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"djo" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djp" = ( -/obj/structure/lattice, -/turf/open/space, -/area/solar/asteroid/aft) -"djq" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"djr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"djs" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"djt" = ( -/obj/item/stack/cable_coil{ - amount = 2 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"dju" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solar/asteroid/aft) -"djv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/primary/starboard/aft) -"djw" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"djx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/starboard/aft) -"djy" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djz" = ( -/turf/closed/wall, -/area/maintenance/asteroid/aft/science) -"djA" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djB" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djC" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djD" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djE" = ( -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djF" = ( -/obj/structure/girder, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djG" = ( -/turf/closed/mineral, -/area/maintenance/asteroid/aft/science) -"djH" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djI" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djJ" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djK" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djL" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djM" = ( -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djN" = ( -/obj/machinery/computer/station_alert, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djO" = ( -/obj/structure/grille, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djP" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"djQ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djR" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/aft/science) -"djS" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/aft/science) -"djT" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djU" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djV" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djW" = ( -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/aft/science) -"djX" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"djY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"djZ" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/item/device/assembly/mousetrap/armed, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dka" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkb" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"dkc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkd" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"dke" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/aft/science) -"dkf" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/aft/science) -"dkg" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkh" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dki" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkj" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkk" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/science) -"dkm" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "CargoWaste" - }, -/obj/machinery/status_display{ - density = 0; - layer = 4; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"dko" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/fore) -"dkp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/fore) -"dkq" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"dkr" = ( -/obj/structure/closet/crate, -/obj/item/pickaxe, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"dks" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/port) -"dkt" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"dku" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dkv" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/yellow/side{ - dir = 4 - }, -/area/engine/engineering) -"dkw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"dkx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"dkA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 8 - }, -/area/science/mixing) -"dkB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/science/mixing) -"dkC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/science/server) -"dkD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - external_pressure_bound = 140; - name = "server vent"; - pressure_checks = 0 - }, -/turf/open/floor/circuit, -/area/science/server) -"dkE" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/science/server) -"dkF" = ( -/turf/open/space/basic, -/area/mine/unexplored{ - name = "Command Asteroid" - }) -"dkG" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space) -"dkH" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/shovel, -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"dkI" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkK" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating/asteroid, -/area/security/execution/transfer) -"dkL" = ( -/obj/structure/sign/poster/contraband/fun_police{ - pixel_y = 32 - }, -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"dkM" = ( -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkP" = ( -/obj/item/ore/glass, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkQ" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Prisoner Transfer APC"; - areastring = "/area/security/execution/transfer"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkS" = ( -/obj/machinery/light/small, -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"dkT" = ( -/obj/structure/mineral_door/iron, -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"dkV" = ( -/obj/item/ore/glass, -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"dkX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"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, -/area/security/prison) -"dlc" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plasteel/red, -/area/security/prison) -"dld" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"dlg" = ( -/obj/machinery/computer/gulag_teleporter_computer, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlh" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlj" = ( -/obj/machinery/flasher{ - id = "Cell 5"; - pixel_y = 32 - }, -/obj/machinery/holopad, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dll" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/prison) -"dlm" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Perma Storage" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/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{ - dir = 1 - }, -/area/security/prison) -"dlo" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"dlp" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/hidden, -/obj/machinery/meter, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"dlq" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/item/wrench, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/prison) -"dlr" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space) -"dls" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlt" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlu" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlv" = ( -/obj/machinery/camera{ - c_tag = "Brig Labor Shuttle Dock North"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dlz" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"dlA" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dlB" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dlC" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Mix To Perma" - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"dlD" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/security/prison) -"dlG" = ( -/obj/structure/table, -/obj/item/folder/red, -/obj/item/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/labor) -"dlH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"dlI" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Labor Shuttle Dock APC"; - areastring = "/area/security/processing"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dlJ" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/floorgrime, -/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, -/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, -/area/security/prison) -"dlM" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Perma Storage" - }, -/obj/machinery/camera{ - c_tag = "Brig Perma Wing 4"; - dir = 10; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/prison) -"dlN" = ( -/obj/structure/table, -/obj/item/device/electropack, -/obj/item/device/assembly/signaler, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"dlO" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/area/security/prison) -"dlP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dlQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/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, -/area/security/prison) -"dlT" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/item/soap/nanotrasen, -/turf/open/floor/plasteel/showroomfloor, -/area/security/prison) -"dlU" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom"; - req_access_txt = "0" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/prison) -"dlV" = ( -/obj/machinery/computer/arcade, -/turf/open/floor/plating, -/area/security/prison) -"dlZ" = ( -/obj/machinery/button/flasher{ - id = "gulagshuttleflasher"; - name = "Flash Control"; - 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, -/area/security/processing) -"dmb" = ( -/turf/open/floor/plating, -/area/security/processing) -"dmd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/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{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dmf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/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, -/area/security/processing) -"dmh" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/prison) -"dmi" = ( -/obj/machinery/door/window/brigdoor/security/cell/northleft{ - id = "Cell 5"; - name = "Cell Door 5" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"dmj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/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{ - dir = 8 - }, -/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{ - dir = 4 - }, -/area/security/prison) -"dmo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/prison) -"dmp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"dmr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/prison) -"dmt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plating/astplate, -/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; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"dmy" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dmA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dmB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/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 - }, -/turf/open/floor/plasteel, -/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, -/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{ - dir = 9 - }, -/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, -/area/security/prison) -"dmG" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 7"; - dir = 9; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dmH" = ( -/obj/machinery/camera{ - c_tag = "Brig Perma Wing 3"; - dir = 4; - 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{ - dir = 8 - }, -/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{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dmK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dmL" = ( -/obj/machinery/flasher{ - id = "PCell 1"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"dmO" = ( -/obj/structure/holohoop, -/turf/open/floor/plating/astplate, -/area/security/prison) -"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, -/area/security/processing) -"dmY" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dmZ" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CellBlockUpRight"; - location = "CellBlockUpLeft"; - name = "navigation beacon (CellBlockUpLeft)" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dna" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dnb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dnc" = ( -/obj/machinery/door/window/brigdoor/security/cell/eastleft{ - id = "Cell 7"; - name = "Cell Door 7" - }, -/turf/open/floor/plasteel/red, -/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, -/area/security/prison) -"dne" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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, -/area/security/prison) -"dnu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "Brig Labor Shuttle Dock main"; - dir = 4; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dnz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/prison) -"dnA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dnB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dnC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/prison) -"dnO" = ( -/obj/machinery/door/airlock/external{ - cyclelinkeddir = 4; - name = "Labor Camp Shuttle Airlock"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/security/processing) -"dnS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dnT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/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{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dnW" = ( -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"dnY" = ( -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/plating/astplate, -/area/security/prison) -"doa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dob" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"doc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/processing) -"dod" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/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, -/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{ - dir = 4 - }, -/area/security/prison) -"dog" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 8"; - dir = 9; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"doh" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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, -/area/security/prison) -"dol" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light, -/turf/open/floor/plating, -/area/security/processing) -"dom" = ( -/obj/machinery/disposal/deliveryChute{ - desc = "A chute for the reformed crewmember to re-enter the station population."; - dir = 1; - name = "Gulag Exit Chute" - }, -/obj/machinery/door/window/northright, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating, -/area/security/processing) -"don" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/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, -/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, -/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; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel, -/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, -/area/security/prison) -"dou" = ( -/obj/structure/sign/poster/official/obey{ - pixel_x = -32 - }, -/obj/machinery/camera{ - c_tag = "Brig Perma Middle 1"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"dox" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/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, -/area/maintenance/asteroid/fore/com_north) -"doB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Brig Labor Shuttle Dock South"; - dir = 4; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel, -/area/security/processing) -"doD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/prison) -"doE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/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, -/area/security/prison) -"doG" = ( -/obj/machinery/flasher{ - id = "PCell 3"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"doK" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"doL" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/processing) -"doM" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plating, -/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, -/area/security/processing) -"doP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/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, -/area/security/prison) -"doT" = ( -/obj/machinery/door_timer{ - id = "Cell 8"; - name = "Cell 8"; - pixel_x = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"doU" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Brig Perma Wing 2"; - dir = 4; - network = list("SS13","Security") - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/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{ - dir = 4 - }, -/area/security/prison) -"doW" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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, -/area/security/prison) -"doX" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 6 - }, -/turf/closed/wall, -/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, -/area/security/prison) -"dpa" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/processing) -"dpb" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plating, -/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, -/area/security/processing) -"dpe" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dpf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"dpg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/prison) -"dph" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/prison) -"dpi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used to watch the various criminals inside their cells."; - name = "Cell Monitor"; - network = list("PrisonCell"); - pixel_x = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"dpj" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/security/prison) -"dpk" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/security/prison) -"dpl" = ( -/obj/machinery/washing_machine, -/turf/open/floor/plating, -/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, -/area/security/armory) -"dpo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/armory) -"dpu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"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, -/area/security/prison) -"dpy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/prison) -"dpB" = ( -/obj/machinery/newscaster{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/security/prison) -"dpC" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/plating/astplate, -/area/security/prison) -"dpD" = ( -/obj/machinery/hydroponics/soil, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"dpE" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/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, -/area/security/armory) -"dpL" = ( -/obj/machinery/flasher{ - id = "PCell 4"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"dpN" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plating/astplate, -/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, -/area/maintenance/asteroid/fore/com_north) -"dpT" = ( -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/plasteel, -/area/security/armory) -"dpU" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/armory) -"dpV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/security/armory) -"dpW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera/motion{ - c_tag = "Armory North"; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/security/armory) -"dpX" = ( -/obj/machinery/button/door{ - id = "armoryaccess"; - name = "Armory Shutter Access"; - pixel_y = 28; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/area/security/armory) -"dpY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 1 - }, -/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{ - dir = 5 - }, -/area/security/armory) -"dqa" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 2"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/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, -/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{ - dir = 4 - }, -/area/security/prison) -"dqh" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 4"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dqi" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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, -/area/security/prison) -"dqj" = ( -/obj/machinery/camera{ - c_tag = "Brig Perma Middle 2"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plating, -/area/security/prison) -"dqk" = ( -/obj/machinery/vending/sovietsoda, -/turf/open/floor/plating/asteroid, -/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, -/area/maintenance/asteroid/fore/com_north) -"dqp" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dqs" = ( -/turf/open/floor/plasteel, -/area/security/armory) -"dqu" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"dqv" = ( -/obj/structure/rack, -/obj/item/storage/lockbox/loyalty, -/obj/item/storage/box/trackimp, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - dir = 4 - }, -/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, -/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, -/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, -/area/security/prison) -"dqz" = ( -/obj/machinery/vending/sustenance, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/security/prison) -"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, -/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"; - areastring = "/area/security/armory"; - pixel_x = 24 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dqI" = ( -/obj/structure/closet/secure_closet{ - name = "contraband locker"; - req_access_txt = "3" - }, -/obj/effect/spawner/lootdrop/armory_contraband{ - loot = list(/obj/item/gun/ballistic/automatic/pistol = 5, /obj/item/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/gun/ballistic/revolver/mateba, /obj/item/gun/ballistic/automatic/pistol/deagle, /obj/item/storage/box/syndie_kit/throwing_weapons = 3) - }, -/turf/open/floor/plasteel, -/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/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/shield/riot, -/obj/item/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"dqL" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/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{ - dir = 4 - }, -/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{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dqN" = ( -/obj/machinery/flasher{ - id = "PCell 5"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"dqU" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"dqV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/main) -"dqX" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/main) -"dra" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/turf/open/floor/plasteel/black, -/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, -/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 - }, -/turf/open/floor/plasteel/black, -/area/security/armory) -"drc" = ( -/obj/structure/closet/secure_closet/lethalshots, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - dir = 4 - }, -/area/security/armory) -"drf" = ( -/obj/structure/stacklifter, -/turf/open/floor/plating/astplate, -/area/security/prison) -"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, -/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, -/area/maintenance/asteroid/fore/com_west) -"drq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/main) -"drr" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/main) -"drt" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/security/armory) -"dru" = ( -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - dir = 4 - }, -/area/security/armory) -"drv" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 1"; - dir = 4; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"drz" = ( -/obj/machinery/camera{ - c_tag = "Brig Cell 10"; - dir = 9; - network = list("SS13","Security","PrisonCell") - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"drA" = ( -/obj/machinery/camera{ - c_tag = "Brig Perma Wing 1"; - dir = 4; - network = list("SS13","Security") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/prison) -"drB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"drG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"drL" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/asteroid, -/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, -/area/maintenance/asteroid/fore/com_west) -"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, -/area/security/main) -"drR" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armoryaccess2"; - name = "Armory Shutters" - }, -/turf/open/floor/plating, -/area/security/main) -"drS" = ( -/obj/structure/rack, -/obj/item/storage/box/chemimp{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/bottle/morphine, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/darkred/side{ - dir = 4 - }, -/area/security/armory) -"drT" = ( -/obj/machinery/door/window/brigdoor/security/cell/westleft{ - id = "Cell 1"; - name = "Cell Door 1" - }, -/turf/open/floor/plasteel/red, -/area/security/prison) -"drU" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CellBlockMidLeft"; - location = "CellBlockLowRight"; - name = "navigation beacon (CellBlockLowRight)" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"drV" = ( -/obj/machinery/door/window/brigdoor/security/cell/eastleft{ - id = "Cell 10"; - name = "Cell Door 10" - }, -/turf/open/floor/plasteel/red, -/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, -/area/security/prison) -"drY" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/prison) -"drZ" = ( -/obj/machinery/flasher{ - id = "PCell 6"; - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/prison) -"dsb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"dsc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"dsd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plating/astplate, -/area/security/prison) -"dsi" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"dsm" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/item/device/radio, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/main) -"dsn" = ( -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/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{ - dir = 1 - }, -/area/security/main) -"dsp" = ( -/turf/open/floor/plasteel/darkred/side{ - dir = 10 - }, -/area/security/armory) -"dsq" = ( -/turf/open/floor/plasteel/darkred/side, -/area/security/armory) -"dsr" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/side, -/area/security/armory) -"dss" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/darkred/side, -/area/security/armory) -"dst" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/darkred/side{ - dir = 6 - }, -/area/security/armory) -"dsu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/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, -/area/security/prison) -"dsw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/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/red/side, -/area/security/prison) -"dsx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/prison) -"dsy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/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{ - dir = 6 - }, -/area/security/prison) -"dsB" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/camera{ - c_tag = "Brig Perma Cell 6"; - dir = 10; - network = list("SS13","Security","PrisonCell") - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/prison) -"dsC" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/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, -/area/security/prison) -"dsD" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid, -/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, -/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, -/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, -/area/maintenance/asteroid/fore/com_west) -"dsM" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/main) -"dsN" = ( -/obj/machinery/vending/security, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/red, -/area/security/main) -"dsO" = ( -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"dsP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/main) -"dsQ" = ( -/obj/machinery/door/airlock/glass_security{ - name = "Armory"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/armory) -"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, -/area/security/warden) -"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, -/area/security/brig) -"dsW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"dsX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"dtf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"dtg" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/obj/machinery/camera{ - c_tag = "Brig Evidence Room"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 5 - }, -/area/security/brig) -"dth" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"dti" = ( -/obj/structure/filingcabinet/chestdrawer/wheeled, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"dtj" = ( -/obj/machinery/computer/crew, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"dtk" = ( -/obj/machinery/computer/prisoner, -/obj/machinery/camera{ - c_tag = "Brig Control Room"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/showroomfloor, -/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, -/area/security/warden) -"dtn" = ( -/obj/structure/table, -/obj/item/clothing/neck/stethoscope, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/security/brig) -"dto" = ( -/obj/structure/table, -/obj/item/storage/firstaid/toxin, -/obj/machinery/camera{ - c_tag = "Brig Medbay"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 1 - }, -/area/security/brig) -"dtp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/camera{ - c_tag = "Brig Interrogation"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) -"dts" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtt" = ( -/obj/structure/table/wood, -/obj/item/clipboard, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtv" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/machinery/camera{ - c_tag = "Brig Interrogation 2"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"dtz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"dtA" = ( -/obj/structure/closet, -/turf/open/floor/plating/asteroid, -/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, -/area/crew_quarters/heads/hos) -"dtD" = ( -/obj/structure/table/wood, -/obj/item/storage/box/deputy, -/obj/item/storage/box/seccarts{ - pixel_x = 3; - pixel_y = 2 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"dtE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"dtF" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"dtG" = ( -/obj/machinery/suit_storage_unit/hos, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"dtH" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"dtK" = ( -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/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{ - dir = 8 - }, -/area/security/brig) -"dtM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"dtN" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/security/brig) -"dtO" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtP" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtR" = ( -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtT" = ( -/obj/structure/table/wood, -/obj/item/storage/box/cups, -/turf/open/floor/plasteel/black, -/area/security/brig) -"dtU" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/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, -/area/maintenance/asteroid/fore/com_north) -"dtW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/black, -/area/bridge) -"dtX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/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, -/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 - }, -/turf/open/floor/plasteel/black, -/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, -/area/crew_quarters/heads/hos) -"dub" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"duc" = ( -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"duf" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/crew_quarters/heads/hos) -"dug" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"duh" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/restraints/handcuffs, -/obj/item/device/assembly/flash, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"duj" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/item/storage/toolbox/mechanical, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"duk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"dul" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/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{ - dir = 8 - }, -/area/security/brig) -"dun" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/area/security/brig) -"duo" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/security/brig) -"dup" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/bed/roller, -/obj/item/clothing/suit/straight_jacket, -/turf/open/floor/plasteel/white, -/area/security/brig) -"dur" = ( -/obj/structure/table/wood, -/obj/item/device/taperecorder, -/turf/open/floor/plasteel/black, -/area/security/brig) -"duu" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/folder/red, -/turf/open/floor/plasteel/black, -/area/security/brig) -"duv" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"duz" = ( -/obj/structure/sign/poster/official/enlist{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"duB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"duC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"duF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/area/security/main) -"duG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"duJ" = ( -/obj/structure/closet{ - name = "evidence closet" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/brig) -"duK" = ( -/obj/structure/table, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/ears/earmuffs, -/obj/item/book/manual/wiki/security_space_law, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/obj/machinery/power/apc{ - dir = 2; - name = "Warden's Office APC"; - areastring = "/area/security/warden"; - pixel_y = -24 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"duL" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/warden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"duM" = ( -/obj/machinery/computer/camera_advanced{ - z_lock = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"duO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"duP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/security/brig) -"duQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) -"duR" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Courtroom APC"; - areastring = "/area/security/courtroom"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_north) -"duT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/black, -/area/bridge) -"duW" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - dir = 4; - name = "Head of Security's Office APC"; - areastring = "/area/crew_quarters/heads/hos"; - pixel_x = 24 - }, -/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, -/area/maintenance/asteroid/fore/com_west) -"duX" = ( -/obj/machinery/keycard_auth{ - pixel_x = -24 - }, -/obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 4; - 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/storage/fancy/cigarettes/cigars/cohiba, -/obj/item/lighter, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"dva" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/carpet, -/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{ - dir = 8 - }, -/area/security/main) -"dvf" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel, -/area/security/main) -"dvg" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/coffee, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"dvh" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/turf/closed/wall, -/area/security/brig) -"dvi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/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, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/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, -/area/security/warden) -"dvn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"dvo" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/warden) -"dvq" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/security/brig) -"dvs" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/white, -/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, -/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, -/area/security/brig) -"dvv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/darkblue/side, -/area/bridge) -"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; - req_access_txt = "1" - }, -/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/folder/red, -/obj/item/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, -/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{ - dir = 8 - }, -/area/security/main) -"dvE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/main) -"dvF" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/main) -"dvG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Brig APC"; - areastring = "/area/security/brig"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 9 - }, -/area/security/brig) -"dvH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"dvI" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"dvK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"dvL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Brig Main East"; - dir = 6; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/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, -/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) -"dvR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"dvS" = ( -/obj/structure/table/wood, -/obj/item/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, -/area/crew_quarters/heads/hos) -"dvX" = ( -/obj/structure/table/wood, -/obj/item/device/radio/intercom{ - broadcasting = 0; - dir = 8; - listening = 1; - name = "Station Intercom (Court)" - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"dvY" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel, -/area/security/courtroom) -"dvZ" = ( -/obj/machinery/door/window/southleft{ - name = "Court Cell"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"dwa" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/turf/open/floor/plating/asteroid, -/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) -"dwe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 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) -"dwi" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/red/side{ - dir = 8 - }, -/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, -/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, -/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, -/area/security/brig) -"dwn" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"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) -"dwr" = ( -/obj/structure/closet/bombcloset, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/main) -"dws" = ( -/turf/open/floor/plasteel/red/corner{ - dir = 8 - }, -/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, -/area/security/detectives_office) -"dwu" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/detectives_office) -"dww" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/lawoffice) -"dwx" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/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, -/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, -/area/security/brig) -"dwA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/security/brig) -"dwB" = ( -/obj/item/device/radio/beacon, -/turf/open/floor/plasteel/neutral, -/area/security/courtroom) -"dwC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/blue/side{ - dir = 4 - }, -/area/security/courtroom) -"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, -/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, -/area/maintenance/asteroid/fore/com_west) -"dwO" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/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, -/area/security/detectives_office) -"dwP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/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, -/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, -/area/security/detectives_office) -"dwS" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/carpet, -/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, -/area/lawoffice) -"dwV" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"dwW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"dwX" = ( -/obj/structure/table/wood, -/obj/item/folder/red, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/area/security/courtroom) -"dwY" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/blue/side{ - dir = 10 - }, -/area/security/courtroom) -"dwZ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/blue/side, -/area/security/courtroom) -"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, -/area/maintenance/asteroid/fore/com_west) -"dxe" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/main) -"dxf" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/main) -"dxg" = ( -/obj/effect/landmark/secequipment, -/turf/open/floor/plasteel/red/side{ - dir = 10 - }, -/area/security/main) -"dxi" = ( -/obj/effect/landmark/secequipment, -/obj/machinery/camera{ - c_tag = "Brig Equipment South"; - dir = 10; - network = list("SS13","Security") - }, -/turf/open/floor/plasteel/red/side, -/area/security/main) -"dxk" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"dxl" = ( -/obj/structure/table/wood, -/obj/machinery/computer/secure_data/laptop, -/turf/open/floor/carpet, -/area/security/detectives_office) -"dxm" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "Detective's Office APC"; - areastring = "/area/security/detectives_office"; - pixel_x = 24 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/carpet, -/area/security/detectives_office) -"dxn" = ( -/obj/structure/rack, -/obj/item/storage/briefcase, -/obj/item/storage/briefcase, -/turf/open/floor/wood, -/area/lawoffice) -"dxo" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/brig) -"dxr" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/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{ - dir = 10 - }, -/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{ - dir = 1 - }, -/area/security/brig) -"dxu" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/red/side{ - dir = 6 - }, -/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, -/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) -"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, -/area/maintenance/asteroid/fore/com_west) -"dxB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/main) -"dxC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/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, -/area/security/detectives_office) -"dxE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"dxF" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes, -/obj/item/clothing/glasses/sunglasses, -/obj/item/device/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/security/detectives_office) -"dxG" = ( -/obj/machinery/button/door{ - id = "detective"; - name = "Privacy Shutters"; - pixel_x = 24 - }, -/turf/open/floor/carpet, -/area/security/detectives_office) -"dxH" = ( -/obj/structure/filingcabinet, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/wood, -/area/lawoffice) -"dxI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"dxK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/brig) -"dxL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"dxM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/red/side{ - dir = 4 - }, -/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 - }, -/area/security/courtroom) -"dxO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - listening = 1; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"dxP" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/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, -/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, -/area/bridge) -"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, -/area/maintenance/asteroid/fore/com_west) -"dxZ" = ( -/obj/structure/rack, -/obj/item/storage/briefcase, -/obj/item/storage/briefcase, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"dya" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"dyb" = ( -/obj/machinery/camera{ - c_tag = "Lawyer's Office"; - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"dyc" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"dye" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/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{ - dir = 1 - }, -/area/security/brig) -"dyg" = ( -/obj/structure/sign/poster/official/safety_report{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/red/side{ - dir = 1 - }, -/area/security/brig) -"dym" = ( -/obj/effect/landmark/start/lawyer, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/lawoffice) -"dyn" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/security/brig) -"dyo" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/floorgrime, -/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, -/area/security/brig) -"dys" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"dyu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"dyv" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/detectives_office) -"dyx" = ( -/obj/structure/closet/lawcloset, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"dyy" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall, -/area/security/brig) -"dyA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/security/courtroom) -"dyB" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/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) -"dyH" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_west) -"dyI" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/security/detectives_office) -"dyJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "lawyer" - }, -/turf/open/floor/plating, -/area/lawoffice) -"dyL" = ( -/obj/effect/spawner/structure/window/reinforced, -/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, -/area/security/brig) -"dyM" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/courtroom) -"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, -/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 - }, -/turf/open/floor/plasteel/red/corner{ - dir = 1 - }, -/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{ - dir = 1 - }, -/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{ - dir = 4 - }, -/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, -/area/hallway/primary/fore) -"dyV" = ( -/obj/structure/plasticflaps{ - name = "Officer Beepsky's Home" - }, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"dyW" = ( -/obj/structure/bed/dogbed, -/mob/living/simple_animal/bot/secbot/beepsky, -/turf/open/floor/plating, -/area/hallway/primary/fore) -"dyX" = ( -/obj/structure/sign/poster/contraband/rip_badger{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/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 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"dyZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"dza" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"dzc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/trinary/filter/critical{ - dir = 4; - filter_type = "freon"; - name = "gas filter (freon)" - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"dzd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"dze" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/black, -/area/engine/engineering) -"dzf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"dzg" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle/vertical, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/hallway/secondary/bridges/cargo_ai) -"dzh" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"dzi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"dzj" = ( -/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/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/red/side, -/area/security/brig) -"dzk" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"dzl" = ( -/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 = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"dzm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"dzn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard) -"dzo" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Starboard Asteroid Maintenance APC"; - areastring = "/area/maintenance/asteroid/starboard"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/end{ - icon_state = "warn_end"; - dir = 1 - }, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"dzp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner, -/area/hallway/primary/starboard/aft) -"dzq" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"dzr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 4 - }, -/area/hallway/primary/aft) -"dzs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/hallway/primary/aft) -"dzt" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"dzu" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/supply) -"dzv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"dzw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"dzx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"dzy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "cmooffice" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"dzA" = ( -/turf/open/floor/plasteel, -/area/medical/surgery) -"dzB" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/surgery) -"dzC" = ( -/obj/structure/table, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 4 - }, -/area/medical/surgery) -"dzD" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/surgery) -"dzE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/structure/table/glass, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 1 - }, -/area/medical/virology) -"dzF" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/pen/red, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"dzG" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/filingcabinet, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 4 - }, -/area/medical/virology) -"dzH" = ( -/obj/structure/table/glass, -/obj/item/clipboard, -/obj/item/toy/figure/virologist, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"dzI" = ( -/obj/item/bedsheet/medical, -/obj/structure/bed, -/obj/item/device/radio/intercom{ - broadcasting = 0; - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"dzJ" = ( -/obj/item/storage/secure/safe{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault, -/area/medical/virology) -"dzK" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/neutral/side{ - dir = 8; - heat_capacity = 1e+006 - }, -/area/crew_quarters/heads/cmo) -"dzL" = ( -/turf/open/floor/plasteel/green, -/area/medical/virology) -"dzM" = ( -/turf/open/floor/plasteel/whitegreen/side{ - dir = 4 - }, -/area/medical/virology) -"dzN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"dzO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"dzP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/office/light{ - icon_state = "officechair_white"; - dir = 1 - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"dzR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"dzS" = ( -/obj/structure/closet, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"dzT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/medical/medbay/central) -"dzU" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"dzV" = ( -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"dzW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"dzX" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 4 - }, -/area/medical/medbay/central) -"dzY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/vending/wallmed{ - pixel_y = 26 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"dzZ" = ( -/obj/machinery/status_display{ - density = 0; - layer = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"dAc" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"dAd" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dAe" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dAf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"dAg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"dAh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dAi" = ( -/obj/structure/sign/securearea, -/turf/closed/wall/r_wall, -/area/medical/virology) -"dAj" = ( -/obj/structure/table/glass, -/obj/item/book/manual/wiki/infections{ - pixel_y = 7 - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 9 - }, -/area/medical/virology) -"dAn" = ( -/obj/structure/sign/poster/official/nanotrasen_logo, -/turf/closed/wall, -/area/medical/medbay/central) -"dAq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dAs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dAt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"dAv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - icon_state = "door_locked"; - id_tag = "virology_airlock_interior"; - locked = 1; - name = "Virology Interior Airlock"; - req_access_txt = "39" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"dAw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dAz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"dAA" = ( -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"dAD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"dAE" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/spray/cleaner, -/turf/open/floor/plasteel/whitegreen/corner, -/area/medical/virology) -"dAF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/central) -"dAJ" = ( -/obj/machinery/requests_console{ - announcementConsole = 0; - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 30 - }, -/obj/structure/table/glass, -/obj/item/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 2 - }, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dAP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dAS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"dAU" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/central) -"dAV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/neutral, -/area/medical/medbay/central) -"dAX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"dAY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 5 - }, -/area/medical/medbay/central) -"dBc" = ( -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dBd" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell{ - dir = 8; - icon_state = "cell-off" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dBe" = ( -/obj/machinery/light, -/obj/structure/sign/chemistry{ - pixel_y = -32 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"dBf" = ( -/obj/machinery/camera{ - c_tag = "Medbay Lobby"; - dir = 1; - network = list("SS13") - }, -/turf/open/floor/plasteel/whiteblue/side, -/area/medical/medbay/central) -"dBh" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/bed/roller, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"dBi" = ( -/obj/machinery/light, -/obj/structure/bed/roller, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 8 - }, -/area/medical/medbay/central) -"dBj" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/medbay/central) -"dBk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dBn" = ( -/obj/structure/sign/nosmoking_2, -/turf/closed/wall, -/area/medical/medbay/central) -"dBp" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemisttop"; - name = "Chemistry Lobby Shutters" - }, -/obj/machinery/door/window/southleft{ - name = "Chemistry Desk"; - req_access_txt = "5; 33" - }, -/obj/item/folder/yellow, -/obj/machinery/door/window/northleft{ - name = "Chemistry Desk" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/chemistry) -"dBq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemisttop"; - name = "Chemistry Lobby Shutters" - }, -/turf/open/floor/plating, -/area/medical/chemistry) -"dBs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "chemisttop"; - name = "Chemistry Lobby Shutters" - }, -/obj/machinery/door/window/southleft{ - name = "Chemistry Desk"; - req_access_txt = "5; 33" - }, -/obj/machinery/door/window/northleft{ - name = "Chemistry Desk" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/chemistry) -"dBu" = ( -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"dBv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/whiteblue/corner{ - dir = 1 - }, -/area/medical/medbay/central) -"dBw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/blue, -/area/medical/medbay/central) -"dBx" = ( -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dBy" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/landmark/start/chemist, -/obj/machinery/button/door{ - id = "chemisttop"; - name = "Chemistry Shutter Control"; - pixel_x = 24; - pixel_y = 22; - req_access_txt = "33" - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/chemistry) -"dBz" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/chemistry) -"dBA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/southleft{ - dir = 8; - name = "Chemistry Desk"; - req_access_txt = "5; 33" - }, -/turf/open/floor/plating, -/area/medical/chemistry) -"dBH" = ( -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/whiteblue/corner, -/area/medical/medbay/central) -"dBI" = ( -/obj/machinery/chem_dispenser, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side, -/area/medical/chemistry) -"dBJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 8 - }, -/area/medical/chemistry) -"dBL" = ( -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 4 - }, -/area/medical/chemistry) -"dBM" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"dBN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/whiteyellow/side{ - dir = 1 - }, -/area/medical/chemistry) -"dBO" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 8 - }, -/area/medical/medbay/zone2) -"dBP" = ( -/turf/open/floor/plasteel/whiteblue/side{ - dir = 6 - }, -/area/medical/medbay/zone2) -"dBQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/neutral/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"dBR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - id = "MechbayShutters"; - name = "Mechbay Shutters"; - pixel_x = 25; - pixel_y = -24; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/purple/corner{ - dir = 8 - }, -/area/hallway/primary/aft) -"dBS" = ( -/obj/machinery/door/poddoor/shutters{ - id = "MechbayShutters" - }, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"dBU" = ( -/turf/closed/wall, -/area/science/robotics/mechbay) -"dBW" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/roboticist, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "RoboticsShutters"; - name = "Robotics Privacy Shutters"; - pixel_x = -25; - pixel_y = 8; - req_access_txt = "29" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dBX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dBY" = ( -/obj/effect/landmark/start/roboticist, -/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, -/area/science/robotics/lab) -"dBZ" = ( -/obj/effect/landmark/event_spawn, -/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, -/area/science/robotics/lab) -"dCa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dCb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dCc" = ( -/obj/machinery/door/airlock/glass_research{ - name = "Mech Bay"; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"dCd" = ( -/obj/structure/rack, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dCe" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/science/robotics/mechbay) -"dCf" = ( -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"dCg" = ( -/obj/structure/table, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/item/device/mmi, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"dCh" = ( -/obj/structure/table, -/obj/item/storage/firstaid{ - name = "first-aid kit (empty)" - }, -/obj/item/storage/firstaid{ - name = "first-aid kit (empty)" - }, -/obj/item/storage/firstaid{ - name = "first-aid kit (empty)" - }, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/device/healthanalyzer, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/glass/bucket, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/item/device/assembly/prox_sensor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dCi" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"dCj" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"dCl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/science/robotics/lab) -"dCm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "RoboticsShutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/science/robotics/lab) -"dCn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"dCo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"dCr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/whitepurple/side{ - dir = 1 - }, -/area/science/research) -"dCs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"dCt" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"dCu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"dCv" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"dCw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/starboard) -"dCx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral, -/area/maintenance/asteroid/starboard) -"dCy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral/random/labormineral, -/area/maintenance/asteroid/starboard) -"dCz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"dCA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/mineral, -/area/mine/unexplored{ - name = "Medical Asteroid" - }) -"dCC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8; - frequency = 1441; - id = "n2_in" - }, -/obj/structure/lattice/catwalk, -/turf/open/space/basic, -/area/space) -"dCD" = ( -/obj/machinery/iv_drip, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"dCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"dCF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"dCG" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/medical/virology) -"dCH" = ( -/obj/structure/sign/biohazard, -/turf/closed/wall/r_wall, -/area/medical/virology) -"dCL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/neutral, -/area/medical/virology) -"dCM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/green, -/area/medical/virology) -"dCN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/side{ - dir = 8 - }, -/area/medical/virology) -"dCO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"dCR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/medical/virology) -"dCS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/medical/virology) -"dCT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/medical/virology) -"dCU" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"dCV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"dCX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/computer/shuttle/mining, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"dEm" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"dPQ" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"dTM" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"dZe" = ( -/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, -/area/maintenance/asteroid/disposal/north) -"ecv" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line, -/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/floorgrime, -/area/maintenance/asteroid/disposal/north) -"eec" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"ehn" = ( -/obj/machinery/conveyor/auto{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"ejj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north/east) -"enD" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/teleporter) -"ewd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/storage/primary) -"eBB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"eHJ" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"eYG" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/engine/gravity_generator) -"fbR" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/fragile, -/obj/item/clothing/head/helmet/space/fragile, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"fdP" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_south) -"ffH" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"fkB" = ( -/obj/machinery/computer/med_data/syndie, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"fsD" = ( -/obj/structure/table/reinforced, -/obj/machinery/status_display{ - pixel_x = -32 - }, -/obj/item/clipboard, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/folder/red, -/obj/item/toy/figure/syndie, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"fxP" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"fQQ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/south) -"fTb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/crew_quarters/heads/hos) -"fTn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"fVk" = ( -/obj/machinery/computer/secure_data/syndie, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"fXq" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"ghw" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j2s"; - name = "disposal pipe - Robotics"; - sortType = 14 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"gqd" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"gAE" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"gIL" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"gOr" = ( -/obj/machinery/nuclearbomb/syndicate, -/obj/machinery/door/window{ - dir = 1; - name = "Theatre Stage"; - req_access_txt = "0" - }, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"gTe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/white, -/area/science/lab) -"gXD" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos/private) -"hco" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"hiU" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/aft) -"hkI" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"hAB" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/grass, -/area/crew_quarters/rehab_dome) -"hKt" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/darkblue/side{ - dir = 1 - }, -/area/bridge) -"hOb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/cmo/private) -"hXC" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"ieV" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/docking) -"inu" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/west/secondary) -"iuy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"ixb" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - HoS Office"; - sortType = 8 - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"jfl" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"jfM" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_west) -"jnf" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Chief Engineer's Private Quarters APC"; - areastring = "/area/crew_quarters/heads/chief/private"; - pixel_x = -23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/turf_decal/stripes/asteroid/end{ - icon_state = "ast_warn_end"; - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"jsL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/south/west) -"jXv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"jYi" = ( -/obj/machinery/holopad, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"kds" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/fore) -"kdF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"kfe" = ( -/obj/item/chair, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"kfu" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - QM Office"; - sortType = 3 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"khr" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"klh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/girder, -/obj/structure/grille, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"knG" = ( -/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" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"knQ" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"kxH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north) -"kzz" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/security/vacantoffice) -"kEb" = ( -/obj/machinery/quantumpad, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/security) -"kLf" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"kNu" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"kQd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"kSZ" = ( -/obj/structure/closet/emcloset, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_x = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"kUG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/item/wrench, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"lme" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/neast) -"lnN" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/medical/surgery) -"loB" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/solars/asteroid/fore) -"lqQ" = ( -/obj/machinery/conveyor/auto, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"lqU" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_north) -"lzY" = ( -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"lFc" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"lGP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"lOB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/east) -"lPU" = ( -/obj/structure/shuttle/engine/propulsion/right, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"lRC" = ( -/obj/item/grenade/syndieminibomb{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/grenade/syndieminibomb{ - pixel_x = -1 - }, -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/grenade/plastic/c4, -/obj/item/grenade/plastic/c4, -/obj/item/grenade/plastic/c4, -/obj/item/grenade/plastic/c4, -/obj/item/grenade/plastic/c4, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"lZv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/conveyor/auto{ - dir = 5; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"mfY" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north) -"mhj" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"mqe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west/secondary) -"mro" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"mKW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/circuit, -/area/tcommsat/server) -"mUO" = ( -/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, -/area/maintenance/asteroid/disposal/north) -"ndV" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"nhB" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"nqz" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west/secondary) -"nuB" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north/east) -"nCp" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/dropper, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"nES" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"nFd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/south) -"nJQ" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/north) -"nJU" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - dir = 6 - }, -/area/shuttle/syndicate) -"nKt" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"nSJ" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"nYL" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"okW" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"onJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"owe" = ( -/obj/machinery/light/small, -/obj/structure/closet/toolcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"oAh" = ( -/obj/machinery/conveyor/auto{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"oAZ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north/west) -"oCT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"oGf" = ( -/obj/machinery/telecomms/allinone{ - intercept = 1 - }, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"oHZ" = ( -/obj/structure/table/reinforced, -/obj/machinery/ai_status_display{ - pixel_x = 32 - }, -/obj/item/storage/fancy/donut_box, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"oIk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"oKd" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"oNh" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north/east) -"oRA" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"oVZ" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"paW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"peP" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"ppM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"pxP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"pAt" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Hydroponics"; - sortType = 21 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"pAv" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/engine/break_room) -"pFg" = ( -/obj/machinery/door/airlock/external{ - name = "Ready Room"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"pGA" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/male) -"pQY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"pTy" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/south/west) -"pZu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"qah" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/closed/wall/mineral/plastitanium{ - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"qbN" = ( -/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, -/area/maintenance/asteroid/disposal/north/east) -"qel" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/port) -"qia" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = -32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"qwU" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"qza" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard) -"qFX" = ( -/obj/effect/baseturf_helper/asteroid/airless, -/turf/open/floor/plasteel/floorgrime, -/area/ruin/space/derelict/secret{ - valid_territory = 0 - }) -"qOD" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/miningdock/abandoned) -"qRT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"qTC" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Technological Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"qVE" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/fitness) -"rcy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/disposal/incinerator) -"rnv" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "South Western Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/south/west"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"rsx" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north) -"rtA" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"rzu" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/grimy, -/area/chapel/main) -"rzC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"rBq" = ( -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"rDs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"rHM" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"rKN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north/west) -"rLZ" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/science/server) -"rPx" = ( -/obj/structure/chair{ - dir = 4; - name = "tactical chair" - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"rRb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"rWL" = ( -/obj/machinery/light/small, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"sck" = ( -/obj/structure/shuttle/engine/propulsion, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"ssn" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"stD" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/west) -"swy" = ( -/obj/item/weldingtool/largetank{ - pixel_y = 3 - }, -/obj/item/device/multitool, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"szL" = ( -/obj/machinery/conveyor/auto{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"sDp" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"sKT" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/fore/com_west) -"sLz" = ( -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"sMX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"sUE" = ( -/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/shuttle/syndicate) -"sWw" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"sYV" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/device/aicard, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"sZf" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/command) -"tga" = ( -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"ttS" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/north/west) -"tCI" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"tOG" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"tPc" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/ai_monitored/turret_protected/aisat/hallway) -"tTl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF PAD WHEN IN USE'."; - name = "KEEP CLEAR OF PAD WHEN IN USE"; - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/cargo) -"tUD" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - CMO Office"; - sortType = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"ufn" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"ufo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/red/side, -/area/security/prison) -"ujk" = ( -/obj/machinery/computer/shuttle/syndicate, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"ujN" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Chapel"; - sortType = 17 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"ula" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/medical/morgue) -"uBe" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"uER" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hor/private) -"uNO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"uRf" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"uSr" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"uTg" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"uUL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/theatre) -"uXC" = ( -/obj/machinery/conveyor/auto{ - dir = 5; - verted = -1 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"uYr" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"uZq" = ( -/obj/item/wrench, -/obj/item/device/assembly/infra, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"vls" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - Custodials"; - sortType = 22 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"vlV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/rack, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"vnW" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/secondary/entry) -"vol" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille/broken, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"vtB" = ( -/obj/structure/disposalpipe/junction, -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"vCD" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/aft) -"vFB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"vUn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"vZt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"wgh" = ( -/obj/machinery/status_display, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"wil" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north) -"wpW" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/asteroid/aft/arrivals) -"wvJ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "North Eastern Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/north/east"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"wGW" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/medical/patients_rooms) -"wRW" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 4; - icon_state = "pipe-j2s"; - name = "disposal pipe - Research"; - sortType = 12 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"wVc" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Kitchen"; - sortType = 20 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"xbV" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"xgx" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 10 - }, -/area/shuttle/syndicate) -"xis" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/handcuffs{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/zipties, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"xov" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - name = "disposal pipe - Medbay"; - sortType = 9 - }, -/obj/item/wrench, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"xqZ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"xtR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"xvx" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"xBc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"xGd" = ( -/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/shuttle/syndicate) -"xQI" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"ybv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west/secondary) -"yfn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"yyr" = ( -/obj/machinery/conveyor/auto{ - dir = 10 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"yEH" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/port/west) -"yFq" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"yGe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"yIe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"yIq" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/south) -"yOy" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/science/storage) -"yQL" = ( -/obj/machinery/conveyor/auto, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"yRS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"yWG" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"yWK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"yXg" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"zdv" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"zfh" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/conveyor/auto{ - dir = 6; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"ziw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/freezer, -/area/medical/genetics/cloning) -"zjN" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/com_east) -"zlm" = ( -/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, -/area/maintenance/asteroid/disposal/north) -"zns" = ( -/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, -/area/maintenance/asteroid/fore/com_west) -"zon" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/obj/structure/grille, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"zpw" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/starboard/fore) -"zrU" = ( -/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/plating/astplate, -/area/maintenance/asteroid/port/west) -"zsP" = ( -/obj/structure/shuttle/engine/propulsion/left, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"zuT" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"zwR" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 6 - }, -/area/shuttle/syndicate) -"zyk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"zzP" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"zBg" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"zFO" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/closed/mineral, -/area/crew_quarters/theatre{ - name = "Top Secret Clown HQ" - }) -"zHG" = ( -/obj/machinery/door/airlock/external{ - name = "E.V.A. Gear Storage"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"zRh" = ( -/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/disposal/north) -"zXV" = ( -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/east) -"zZN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/south/west) -"Aaw" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"AbZ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north/west) -"AgT" = ( -/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" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/processing) -"Ajf" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"Arn" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/brown{ - dir = 1 - }, -/area/quartermaster/qm) -"AGf" = ( -/obj/machinery/disposal/deliveryChute, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/east) -"ANA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"AOn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"Bhs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"Bju" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"BoD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"Brt" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"Bsu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Aft Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"BGO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/item/wrench, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"BMP" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/heads/chief) -"BMW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille/broken, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"BNE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"BPU" = ( -/obj/item/chair, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"BQj" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"BXG" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"CdN" = ( -/obj/structure/table/optable, -/obj/item/surgical_drapes, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"Cjh" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"CuI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"CxW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille/broken, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"CFx" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/armory) -"CHb" = ( -/obj/structure/chair{ - dir = 8; - name = "tactical chair" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"CJx" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"CZk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"Dhd" = ( -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 6 - }, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = -3 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = 4; - pixel_y = 1 - }, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/reagent_containers/syringe/epinephrine{ - pixel_x = 2; - pixel_y = 8 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"DrB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"DEO" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"DHr" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"DHs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"DKn" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor/auto, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"DNv" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/east) -"DXx" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west) -"Ebh" = ( -/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/shuttle/syndicate) -"Eht" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/airless, -/area/shuttle/syndicate) -"Ekn" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 2 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"Esb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"Esk" = ( -/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/disposal/north) -"ExD" = ( -/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/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"EzG" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"EDx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/item/weldingtool, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"EGd" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/east) -"EIe" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"EKN" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - HoP Office"; - sortType = 15 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/rack, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"ERf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fore Asteroid Maintenance Access"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"EWs" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west) -"Fbo" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/west) -"Foo" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/wood, -/area/library/lounge) -"Fov" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"Fsg" = ( -/obj/structure/chair{ - name = "tactical chair" - }, -/turf/open/floor/plasteel/podhatch{ - dir = 6 - }, -/area/shuttle/syndicate) -"FFY" = ( -/obj/machinery/computer/camera_advanced/syndie, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"FQm" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/bar, -/area/crew_quarters/bar) -"FRD" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/solars/asteroid/aft) -"FUy" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"FWK" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/east) -"FZD" = ( -/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, -/area/maintenance/asteroid/disposal/north) -"Gae" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"GiS" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 1 - }, -/area/shuttle/syndicate) -"Goz" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/black, -/area/teleporter/quantum/research) -"GBu" = ( -/obj/structure/table, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"GOY" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"GPe" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/closed/wall, -/area/maintenance/asteroid/aft/science) -"GRh" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north/east) -"GUQ" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"GWH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Eastern Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/east"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"HdC" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/east) -"Hlj" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/wood, -/area/lawoffice) -"Hmg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"HmY" = ( -/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"Hpl" = ( -/obj/structure/closet/syndicate/nuclear, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"HsZ" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "150" - }, -/turf/open/floor/mineral/plastitanium, -/area/shuttle/syndicate) -"HKu" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"HLI" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/cmo, -/area/crew_quarters/heads/cmo) -"HMd" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - name = "disposal pipe - Atmospherics"; - sortType = 6 - }, -/obj/structure/grille/broken, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"HOp" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"HUf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"HWp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/darkgreen, -/area/hydroponics) -"Iad" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/south/west) -"IbX" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - dir = 5 - }, -/area/shuttle/syndicate) -"Idz" = ( -/obj/item/cautery, -/obj/item/scalpel, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"IeB" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west/secondary) -"IHW" = ( -/obj/machinery/ai_status_display, -/turf/closed/wall/mineral/plastitanium, -/area/shuttle/syndicate) -"IIn" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/west) -"ILy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/supermatter) -"IMP" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"IOE" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"Jov" = ( -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/white, -/area/science/research) -"JtY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/rack, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"Jul" = ( -/obj/structure/chair/office/dark{ - dir = 8; - name = "tactical swivel chair" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"JvU" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "North Western Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/north/west"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/west) -"JDQ" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"JZR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"Kae" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"KcZ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"Kel" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"KkQ" = ( -/obj/machinery/conveyor/auto{ - dir = 6; - verted = -1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"KEd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/weldingtool/hugetank, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"KPR" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"KQP" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Northern Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/north"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 8; - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"KSc" = ( -/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/shuttle/syndicate) -"LeL" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/plasteel/podhatch{ - dir = 4 - }, -/area/shuttle/syndicate) -"Llr" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"Lmy" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 5 - }, -/area/shuttle/syndicate) -"LnK" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/south/west) -"LoO" = ( -/obj/item/storage/toolbox/mechanical/old, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"Ltv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"Lxz" = ( -/obj/structure/disposalpipe/junction, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"LDY" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/holodeck/rec_center) -"LGS" = ( -/obj/machinery/light/small, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"LJP" = ( -/obj/structure/closet/syndicate/personal, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"LTe" = ( -/turf/open/floor/plasteel/podhatch{ - dir = 9 - }, -/area/shuttle/syndicate) -"MaD" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/west/secondary) -"MfG" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"MxO" = ( -/obj/structure/table, -/obj/item/storage/fancy/cigarettes, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"MzE" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/west/secondary) -"MNm" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west/secondary) -"MTb" = ( -/obj/machinery/door/airlock/glass_external{ - cyclelinkeddir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"MWx" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - name = "disposal pipe - Genetics"; - sortType = 23 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"MXP" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/janitor) -"MZA" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"Nas" = ( -/obj/item/wrench, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/west) -"Nbq" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"Nci" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"Ner" = ( -/obj/machinery/computer/crew/syndie, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"NkJ" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Security"; - sortType = 7 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"Not" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/south/west) -"NxB" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"NHH" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/west) -"NOe" = ( -/obj/structure/chair{ - dir = 1; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"NTY" = ( -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"NUL" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 8 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"NYl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"OgL" = ( -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"Oih" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"OmI" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/south) -"Oss" = ( -/obj/structure/closet/firecloset/full, -/obj/item/coin/silver, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"OPf" = ( -/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/shuttle/syndicate) -"OPP" = ( -/obj/machinery/holopad, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/central) -"OQj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"OUe" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/crew_quarters/heads/chief/private) -"Pap" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Bar"; - sortType = 19 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"PfX" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"PhV" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/engine/atmos) -"Pnn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"PsJ" = ( -/obj/structure/chair/stool, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/wood, -/area/crew_quarters/abandoned_gambling_den) -"Pti" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/power/apc{ - dir = 4; - name = "Western Secondary Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/west/secondary"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west/secondary) -"PFk" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 2; - icon_state = "pipe-j2s"; - name = "disposal pipe - Library"; - sortType = 16 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"PLn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Port Asteroid Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"PTb" = ( -/obj/item/stock_parts/cell/high{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stock_parts/cell/high, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"PUG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"PXs" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/west) -"PXL" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"Qbt" = ( -/obj/structure/chair/office/dark{ - dir = 4; - name = "tactical swivel chair" - }, -/turf/open/floor/plasteel/black, -/area/shuttle/syndicate) -"QbG" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - RD Office"; - sortType = 13 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"QeW" = ( -/obj/structure/cable/orange{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"Qmh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"Qqu" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 2 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north) -"QFX" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"QIK" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/south) -"QTJ" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/asteroid, -/area/maintenance/asteroid/central) -"Rhg" = ( -/turf/closed/wall/rust, -/area/maintenance/asteroid/disposal/north/east) -"Rsm" = ( -/obj/machinery/gateway, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/awaymission/research/interior/gateway) -"RAQ" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"RKn" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/west) -"RKE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"RQE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"RQH" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/hallway/primary/central) -"RTO" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/south/west) -"RUN" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/maintenance/asteroid/fore/cargo_south) -"SaA" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_east) -"SfQ" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"Slf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"SrE" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/grille/broken, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"Svz" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"SvE" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/crew_quarters/dorms/female) -"Sxw" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"SHC" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "SM South"; - dir = 1; - network = list("SS13","CE") - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/engine/engineering) -"SKM" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"SMF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/quartermaster/qm/private) -"SQL" = ( -/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/shuttle/syndicate) -"SUs" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/storage/toolbox/mechanical, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south) -"Tav" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/sign/poster/random{ - name = "random contraband poster"; - pixel_y = 32; - random_basetype = /obj/structure/sign/poster/contraband - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"TaH" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"TaL" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/east) -"Tef" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - icon_state = "ast_warn"; - dir = 8 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"TfU" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"TiR" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/neutral, -/area/security/courtroom) -"TiY" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/grass, -/area/medical/genetics) -"Tzw" = ( -/obj/structure/grille/broken, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"TFw" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 1; - icon_state = "pipe-j2s"; - name = "disposal pipe - Engineering"; - sortType = 4 - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"THy" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/fore/com_east) -"TJh" = ( -/obj/machinery/door/airlock/hatch{ - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"TRu" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"TTr" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"UdM" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"Uhy" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 1 - }, -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/east) -"UnC" = ( -/obj/machinery/door/window{ - dir = 1; - name = "Surgery"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault, -/area/shuttle/syndicate) -"UrW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/quartermaster/storage) -"UtE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"Uwx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"UwA" = ( -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"UCK" = ( -/obj/structure/chair{ - dir = 8; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"UCR" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/closed/mineral/random/labormineral, -/area/mine/unexplored{ - name = "Civilian Asteroid" - }) -"UFv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north) -"UJo" = ( -/obj/item/screwdriver{ - pixel_y = 9 - }, -/obj/item/device/assembly/voice{ - pixel_y = 3 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"ULk" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) -"UOh" = ( -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"UQc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/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/plating/astplate, -/area/maintenance/asteroid/port/west) -"URO" = ( -/obj/structure/disposalpipe/sortjunction{ - dir = 8; - icon_state = "pipe-j2s"; - name = "disposal pipe - CE Office"; - sortType = 5 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north) -"Van" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/west) -"VbR" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Western Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/west"; - pixel_y = 24 - }, -/obj/structure/cable/orange{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"VdI" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"Vud" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/whiteyellow/corner{ - dir = 1 - }, -/area/medical/chemistry) -"VwE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/white, -/area/science/robotics/mechbay) -"VxC" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/checkpoint/checkpoint2) -"VFF" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/shuttle/auxillary_base) -"VHp" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"VIG" = ( -/obj/item/surgicaldrill, -/obj/item/circular_saw, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"VMD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/carpet, -/area/library) -"VSX" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - 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, -/area/maintenance/asteroid/disposal/north) -"Wbp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/asteroid/disposal/south) -"WbG" = ( -/turf/open/floor/plasteel/podhatch, -/area/shuttle/syndicate) -"Wcl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"Wgl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"Wid" = ( -/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{ - dir = 1 - }, -/area/shuttle/syndicate) -"WjU" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j2"; - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"Wub" = ( -/obj/item/retractor, -/obj/item/hemostat, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"Wue" = ( -/obj/structure/table, -/obj/item/storage/fancy/cigarettes, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"WAy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"WVc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/clothing/head/cone, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/port/west) -"WYB" = ( -/obj/structure/rack, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/west) -"Xhf" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/orange{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"XmD" = ( -/obj/machinery/conveyor/auto{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"XtS" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/cmo, -/area/medical/medbay/zone2) -"XFS" = ( -/obj/machinery/recharge_station, -/turf/open/floor/circuit/red, -/area/shuttle/syndicate) -"XLa" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"XRA" = ( -/obj/machinery/power/apc{ - dir = 2; - name = "Southern Disposals APC"; - areastring = "/area/maintenance/asteroid/disposal/south"; - pixel_y = -24 - }, -/obj/structure/cable/orange, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"XSM" = ( -/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, -/obj/structure/cable/orange{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/fore/com_west) -"XXu" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south) -"XZA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"Yck" = ( -/obj/structure/chair{ - dir = 4; - name = "tactical chair" - }, -/turf/open/floor/plasteel/vault{ - dir = 5 - }, -/area/shuttle/syndicate) -"YcZ" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/deliveryChute{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/maintenance/asteroid/disposal/north/west) -"Yhz" = ( -/obj/machinery/door/airlock/hatch{ - name = "Cockpit"; - req_access_txt = "150" - }, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"Yug" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/astplate, -/area/maintenance/asteroid/starboard) -"YyX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel/whitegreen/corner{ - dir = 8 - }, -/area/medical/virology) -"YBW" = ( -/obj/structure/cable/orange{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/brig) -"YCP" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/engine{ - name = "reinforced floor" - }, -/area/hallway/secondary/bridges/serv_sci) -"YHv" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/north/west) -"YLw" = ( -/obj/machinery/conveyor/auto{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west/secondary) -"YNP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/conveyor_switch{ - id = "CargoWaste" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"YTk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/orange{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/asteroid/starboard) -"YTF" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plasteel, -/area/security/main) -"YUT" = ( -/obj/item/storage/toolbox/syndicate, -/obj/item/crowbar/red, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/podhatch{ - dir = 10 - }, -/area/shuttle/syndicate) -"YWC" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating, -/area/storage/tech) -"YZx" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/east) -"Zed" = ( -/obj/effect/baseturf_helper/asteroid, -/turf/open/floor/plating/astplate, -/area/security/execution/transfer) -"ZeA" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/south/west) -"ZfX" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 5 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"Zsk" = ( -/obj/structure/disposalpipe/junction{ - icon_state = "pipe-j1"; - dir = 4 - }, -/obj/structure/grille/broken, -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/south/west) -"ZHk" = ( -/turf/closed/wall, -/area/maintenance/asteroid/disposal/north/west) -"ZLG" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/asteroid/disposal/west) -"ZWz" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/plasteel/vault{ - dir = 8 - }, -/area/shuttle/syndicate) -"ZYy" = ( -/turf/open/space, -/obj/machinery/porta_turret/syndicate{ - dir = 6 - }, -/turf/closed/wall/mineral/plastitanium{ - dir = 4; - icon_state = "diagonalWall3" - }, -/area/shuttle/syndicate) -"ZZE" = ( -/turf/open/floor/plasteel/floorgrime, -/area/maintenance/asteroid/disposal/north/east) - -(1,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(2,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(3,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(4,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(5,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(6,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aab -aaa -aaa -aac -aac -aac -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(7,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aac -aac -aab -aaa -aaa -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aad -aad -aaa -aaa -aaa -aad -aab -aab -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(8,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aac -aac -aac -aad -aaa -aaa -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aac -aac -aac -aac -aad -aad -aac -aac -aac -aac -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 -aaa -aaa -aaa -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 -aad -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(9,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aab -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(10,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aab -aab -aab -aac -aac -aad -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aab -aac -aac -aac -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(11,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aab -aab -aab -aab -aab -aab -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aad -aad -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(12,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(13,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aab -aad -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(14,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aac -aac -aac -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(15,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -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 -aad -aad -aad -aac -aac -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(16,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -cFp -aaa -aaa -aaa -aab -aab -aab -aab -aad -aad -aad -aad -aab -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aad -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(17,1,1) = {" -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 -fXq -aai -aai -aai -aai -aai -aai -aai -aai -aaM -aaa -aaa -aaa -aaa -cFp -cFp -cFp -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 -cFp -aaa -aaa -aaa -aab -aab -aab -aab -aad -aad -aad -aad -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(18,1,1) = {" -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 -fXq -aai -aai -aai -aai -aai -aai -NxB -JDQ -NxB -nCp -OPf -VIG -Idz -Eht -zsP -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 -cTy -cTB -cTw -cTy -cTG -cTw -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(19,1,1) = {" -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 -aai -IbX -LeL -LeL -LeL -nJU -aai -sLz -NTY -acU -acU -UnC -acU -CdN -Eht -sck -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaP -aba -abr -abr -abV -acj -cFp -cFp -cFp -cFp -cXs -cFp -cFp -cFp -cFp -cFp -avx -abV -abr -abr -dyC -aaP -cFp -aaa -aaa -aab -aad -cTv -cTy -cTC -cTx -cTC -cTH -cTw -cTw -aac -aac -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(20,1,1) = {" -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 -aai -acU -acU -acU -acU -acU -IHW -yWG -NTY -LTe -xgx -ufn -aeF -Wub -Eht -lPU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaP -abb -abs -abs -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -RTO -RTO -Ltv -Ltv -Ltv -RTO -RTO -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(21,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -fXq -aai -aai -aai -aaM -cFp -cFp -aai -acU -acU -acU -acU -acU -aai -Dhd -NTY -GiS -WbG -QFX -aai -aai -aai -ZYy -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaP -abb -abs -aaP -aaP -cXs -cFp -cFp -cFp -cFp -cXs -cFp -cFp -cFp -cFp -cFp -cXs -aaP -aaP -abs -abb -aaP -cFp -aac -aac -aad -aad -cTv -cTz -cTx -cTD -qFX -cTI -cTM -cTy -aac -aad -aad -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -RTO -uSr -fxP -kLf -yXg -XLa -RTO -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(22,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aai -fkB -fsD -NTY -aai -qah -cFp -aai -hkI -ZWz -hco -sLz -SfQ -aai -Ebh -NTY -GiS -WbG -rBq -aai -cFp -cFp -cFp -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 -aaP -aaP -abc -aaP -cFp -aac -aac -aad -aad -cTx -cTz -cTz -cTx -cTC -cTJ -cTN -cTx -aac -aad -aab -aad -aad -aad -aab -aad -aaa -aaa -aaa -aaa -aaP -aaP -aaP -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -RTO -RTO -RTO -pQY -RAQ -EzG -BPU -rnv -RTO -RTO -RTO -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBW -cBW -cBW -cBW -cBW -cBW -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(23,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaj -Ner -Jul -NTY -aai -aai -aai -aai -aai -aai -aai -zHG -acr -aai -aai -aai -TJh -acr -aai -aai -aai -aaM -cFp -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 -aaP -dyD -aaP -cFp -aaa -aad -aac -aac -cTw -cTA -cTz -dyX -cTF -cTK -cTO -cTw -aac -aad -aab -aac -aad -aad -aad -aab -aaa -aaa -aaa -aaa -aaP -aba -abr -abr -abV -aYR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -LnK -Iad -sDp -Pap -wVc -pAt -PFk -ujN -XZA -Iad -pTy -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBX -cCl -cCt -cCK -cCY -cDm -cCu -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(24,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaj -HmY -aan -NTY -wgh -caV -Yck -rPx -Yck -Yck -acr -acU -acU -acU -acU -IOE -GiS -WbG -NTY -acr -Eht -zsP -cFp -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -abC -cFp -cFp -cXs -cFp -cFp -abW -abW -adm -abE -cFp -cFp -cFp -cFp -abC -aaa -aaa -aaa -aaa -abC -cFp -aaa -aad -aac -aac -cTw -cTw -cTv -cTy -cTy -cTv -cTw -cTy -aad -aad -aab -aac -aac -aac -aad -aad -aad -aad -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -RTO -Not -jsL -Tav -Lxz -oRA -Zsk -SrE -RTO -RTO -RTO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cBW -cBW -cCu -cCL -cCZ -cDn -cDm -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(25,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaj -ujk -xGd -NTY -Yhz -acU -aan -aan -aan -acU -pFg -acU -aan -aan -aan -aan -GiS -WbG -NTY -gOr -Eht -sck -cFp -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 -aac -aac -aad -aad -aac -aac -aac -aac -aad -aad -aad -aab -aac -aac -aac -aad -aab -aab -aad -aad -aaa -aaP -abb -abs -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -jsL -oKd -Tzw -zon -xBc -owe -Not -aXn -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cBW -cCM -cDa -cDo -cDF -cBW -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(26,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaj -DEO -aan -NTY -aai -xis -UCK -CHb -UCK -UCK -acr -acU -acU -acU -acU -FUy -GiS -WbG -NTY -acr -Eht -lPU -cFp -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -abC -aaa -abC -aaa -aaa -adm -abE -abW -abW -abW -abW -abW -abW -abW -abW -abW -adm -abW -aaa -aaa -aaa -abC -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aad -aab -aad -aad -aad -aad -aad -aab -aab -aaa -aad -aad -aaa -aaP -abc -aaP -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXn -aXn -jsL -uTg -Uwx -yIe -oKd -ZeA -Not -aXn -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ccW -ccW -aaa -abC -aaa -cBW -cBW -cDb -cDp -cDn -cDN -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(27,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaj -FFY -Qbt -NTY -aai -aai -aai -abB -aai -aai -aai -HsZ -acr -aai -aai -aai -TJh -acr -aai -aai -aai -aaO -cFp -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 -abC -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aad -aad -aad -aab -aad -aad -aad -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaP -abd -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXn -aXL -zZN -RTO -EIe -PLn -Not -Not -Not -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdb -ccW -ccW -ccW -abC -aaa -aaa -cBW -cCu -cDq -cCu -cDO -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(28,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -aai -fVk -oHZ -NTY -aai -ZYy -cFp -cFp -cFp -aai -YUT -acU -NOe -aai -PTb -NTY -GiS -WbG -sUE -aai -cFp -cFp -cFp -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 -abC -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aab -aab -aab -aab -aab -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -abC -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXK -aXK -bRR -bRR -bRR -aXK -aXK -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXL -bZz -din -aXW -vFB -cRp -dij -aXL -aXr -aXr -aXr -aXr -aXr -aXr -aXn -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdb -ccW -ccW -aaa -abC -aaa -aaa -aaa -cBW -cDr -cCu -cDP -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(29,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -ZfX -aai -aai -aai -aaO -cFp -cFp -cFp -cFp -Wid -WbG -acU -NOe -aai -UJo -NTY -GiS -WbG -lRC -aai -aai -aai -qah -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abE -abE -abW -ZHk -oAZ -ZHk -deK -deI -deL -dtA -deK -dgg -deI -dgh -dgh -dwa -dwp -deI -deK -deK -abW -aaa -aaa -aaa -abC -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 -abC -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 -aaa -aaa -aaa -aaa -aaa -aaa -aXr -bhO -bhO -bhO -aXK -bQV -bRS -bSD -bTo -bTP -aXv -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXL -bZA -din -cak -ANA -cRp -dij -dij -aXr -aXr -aXr -aXr -aXr -aXr -aXn -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 -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdb -cdb -cdb -cdb -cdb -aaa -abC -aaa -aaa -aaa -cBW -cDq -cBW -cDQ -cBW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(30,1,1) = {" -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 -aci -Fsg -acU -SQL -wgh -uZq -NTY -Lmy -zwR -ufn -acU -XFS -Eht -zsP -cFp -cFp -cFp -cFp -cFp -cFp -abE -abE -ZHk -ttS -ttS -rKN -ttS -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -bhO -bhO -bhO -aXv -bQW -bRT -bcW -bTp -bcW -aXv -aXr -aXr -aXr -dij -cMs -aXK -aXv -aXL -aXK -bZB -aZS -aZS -klh -dij -dij -dij -dij -dij -aXL -aXL -aXL -aXL -aXn -aXn -ccW -cdb -cdb -cdb -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 -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdb -ccW -ccW -cdb -cdb -cdb -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(31,1,1) = {" -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 -ZfX -aai -aai -aai -aai -KSc -NTY -acU -acU -qTC -acU -oGf -Eht -sck -cFp -cFp -cFp -cFp -cFp -abE -abE -ZHk -ttS -Nas -IIn -YHv -ttS -deL -dro -aMw -aMw -dtY -aMw -duW -aMw -dvO -aMw -aMw -dwE -deL -deI -abW -abW -cFp -aaa -abC -cFp -aaa -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -bhO -bhO -aXn -aXn -aXr -bhO -bhO -bhO -bhO -bhO -aaa -aaa -aaa -aaa -bhO -bhO -bhO -aXn -aXn -aXn -aXr -aXr -aXK -aXv -aXK -bSE -bTq -bTQ -aXK -aXr -dij -dij -aXK -bYE -din -dim -din -bEK -bAi -din -din -tga -aXv -caW -cbE -aXX -din -din -ccp -aXL -cct -ccF -ccF -ccW -ccW -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cda -cda -cda -cda -cda -cda -ccW -ccW -cdb -cdb -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(32,1,1) = {" -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 -acM -aai -swy -NTY -LJP -Hpl -sYV -FUy -XFS -Eht -lPU -cFp -cFp -cFp -cFp -abE -abW -ZHk -ZHk -LoO -stD -CuI -UwA -ZHk -deL -dsF -awz -awz -awz -awz -awz -awz -awz -awz -awz -dsF -dvN -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 -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -bhO -aaa -bhO -bhO -bhO -bhO -bhO -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXn -aXr -aXr -aXr -aXr -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXK -aXv -aXv -bTR -aXv -dij -aXK -aXv -diL -bkb -diq -diq -diq -diq -bkT -yEH -din -WVc -caW -caW -cbF -din -din -din -din -aYv -cct -cct -cct -ccX -ccX -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cda -cda -cda -cda -cda -cda -ccW -cdb -cdb -ccW -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(33,1,1) = {" -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 -ZfX -aai -aai -aai -aai -aai -aai -aai -aai -aaO -cFp -cFp -cFp -cFp -abE -abW -ZHk -TfU -JvU -PXs -uXC -yyr -BoD -zns -XSM -awz -dtC -dtZ -duz -duX -dvx -dvP -dwc -awz -dsF -deL -dxw -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 -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -aXn -aXn -aaa -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -dij -dij -aXv -bTr -bTS -aXL -aXv -aXK -cPX -bcW -bAi -bRV -bMV -bMV -vol -bMV -bMV -bMV -bRW -aXL -aXL -aXL -aXL -aXL -aXL -dio -din -din -din -cct -cct -cct -ccX -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cdb -aaa -aaa -cdb -cdb -cdb -cda -cda -cda -cda -cda -ccW -cdb -cdb -aaa -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(34,1,1) = {" -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 -ZHk -ttS -ttS -ZHk -ttS -UwA -ZHk -ZHk -deL -dsF -awz -dtD -dua -duc -duY -duY -duY -duY -awz -dsF -deL -dtA -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 -MNm -MaD -MNm -aaa -aaa -abC -aaa -aaa -aaa -aXn -aaa -aaa -aaa -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXn -aXn -aXr -dij -dij -dij -dij -dij -aXL -aXL -aXX -din -bEK -aXK -bcW -aXX -bAi -ANA -din -bYE -dim -din -din -din -dio -aXK -aXL -cRq -cRq -cam -cam -cRq -aXL -ccw -din -din -cct -cct -ccX -ccX -ccX -ccX -cdb -cdb -cdb -cdb -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cdb -cdb -aaa -cdb -cdb -cdb -cda -cda -cda -cda -cda -ccW -cdb -cdb -cdb -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(35,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -YcZ -AbZ -DHr -lqQ -DKn -XmD -ttS -drL -deL -dsF -awz -dtE -dub -duB -duZ -dvz -dvR -dwe -awz -dsF -dsD -deK -deK -abW -EWs -RKn -EWs -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 -MNm -mqe -MNm -aaa -aaa -abC -aaa -aaa -aXn -aXn -aaa -aXn -aXn -aXn -aXr -aXn -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXL -aXK -aXL -aXv -cMs -aXK -aXK -aXL -aXL -dij -aXv -aXv -aXK -aXL -bRU -aYS -aXL -aXX -bkb -xtR -bMV -bMV -bMV -VHp -Qmh -din -din -dim -aXK -aXv -aXK -aXL -aXL -cam -cam -cbP -cbQ -cch -cam -cct -cct -cct -din -din -cct -cct -ccX -ccX -ccX -ccX -ccX -cdb -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cdb -cdb -cda -cda -cda -cdb -cdb -cda -cda -cda -cda -ccW -ccW -cdb -cdb -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(36,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -ZHk -ZHk -ZHk -ttS -ttS -ttS -ZHk -dgq -dsi -dsJ -awz -axu -duc -fTb -dva -dvA -dvS -dwf -awz -dsF -sKT -deI -dgh -abW -EWs -Van -EWs -EWs -EWs -EWs -EWs -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -MNm -zBg -MNm -aaa -aaa -abC -aaa -aaa -aXn -aXn -dij -dij -dij -aXr -aXr -aXr -aXr -aXr -dij -dij -dij -dij -blX -aXr -aXr -aXr -UCR -aXr -aXr -aXr -aXr -aXn -aXL -aXK -aXK -bCw -dio -bEK -dio -din -aXL -bKl -bKl -din -aXK -din -din -bkb -diq -bSF -bJl -diq -bkT -sMX -diq -diq -diq -diq -bkT -bWr -aXv -aXv -aXv -aXL -aXL -aXL -aXL -cam -cbG -cbQ -cbQ -cci -cam -cct -cct -cct -cct -din -dio -cct -cct -ccX -ccX -ccX -ccX -ccW -cdb -cdb -ccW -cdb -cdb -cdb -cdb -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -cdb -cda -cda -cda -cda -cda -cdb -cdb -cda -cda -cda -cda -cda -cda -cda -ccW -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(37,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -dsF -awz -dtF -duc -duC -duc -dvB -dvT -duc -awz -dwK -dwE -deL -deI -dgh -Fbo -RQE -gqd -nES -tOG -ZLG -EWs -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -MNm -Svz -MNm -MNm -MNm -MNm -aaa -aaa -aXn -aXn -dij -cMG -dij -aXv -aXv -cMt -aXK -aXK -dij -dio -dkr -aXK -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXL -bAh -diq -diq -diq -diq -diq -diq -bJl -diq -diq -diq -diq -diq -diq -bkT -bRV -bSG -bMV -bMV -bMV -UQc -din -din -din -diL -bXJ -bYm -aXK -aXL -dij -dij -dij -aXL -aXL -cam -cbH -cbR -cbQ -cbQ -cRq -aXL -aXL -cct -cct -ccY -din -din -cct -cct -ccX -ccX -ccX -ccX -ccX -ccX -ccX -ccX -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -aaa -cdb -cxg -cxg -cxg -cxg -cxg -cxg -cxg -cdb -cdb -cda -cda -cda -cda -cda -cda -ccW -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(38,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaP -abc -aaP -aaP -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 -dro -aMw -dsL -awz -dtG -duc -duC -duc -dvB -duc -duc -awz -dgh -dxd -dwE -deL -dgh -EWs -Wcl -nSJ -yFq -yFq -yFq -Fbo -EWs -EWs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -MNm -MNm -MNm -MNm -MNm -MzE -nKt -IeB -Ekn -UOh -Ekn -aaa -aaa -aXn -aXK -aXK -bCC -bcX -cMV -cMY -bcX -cNC -cNR -bio -bio -bPl -dij -aXr -aXr -aXr -bpY -bpZ -bpZ -bpZ -bpZ -bpY -bpY -bpY -cPC -bBB -blY -blY -blY -cPW -cOW -blY -blY -bLw -cQr -bNT -bMV -cQr -cQr -bRW -aXv -din -din -din -bAu -din -diJ -bch -aXK -aXL -dij -dij -dij -dij -dij -dij -aXL -aXL -cRq -cam -cbQ -cbQ -ccj -cam -aXL -aXL -ccx -ccN -ccZ -din -din -din -cct -cct -ccX -ccX -ccX -ccX -ccX -ccX -ccX -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cxg -cSe -cSi -cSk -cxZ -cSt -cxg -cdb -cdb -cda -cda -cda -cda -cda -cda -cda -cda -abC -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(39,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaP -abd -aaP -abC -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 -dgh -deK -deI -deL -dro -drN -dqV -dsM -awA -awA -duf -aAp -duf -aCz -duf -awA -awA -dsM -dxe -dxz -dwE -dsD -Fbo -RKE -NkJ -sWw -Ajf -Ajf -oIk -DXx -NHH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -inu -ybv -SKM -ehn -MzE -lZv -oAh -UtE -MzE -MNm -MNm -aXn -aXn -aXL -aXK -din -bAu -cMN -cMW -cMZ -cMZ -cMZ -cMZ -cMZ -cOm -cOy -aXK -aXr -aXr -aXr -bpY -brt -bru -bul -bru -bwZ -bru -bpZ -cPC -cOB -aXv -aXK -aXv -cPX -aXK -cbs -bcW -cQk -aXL -aXK -cMt -aXv -aXK -aXK -aXL -aXL -aXL -din -bAu -aXL -aXK -aXK -aXK -dij -dij -dij -dij -dij -aXL -aXL -cal -cal -zFO -cRq -cbS -cbQ -cck -cam -aXL -ccx -ccG -ccO -cct -cct -din -din -din -cct -cct -cct -cct -cct -ccX -ccX -ccX -ccX -ccX -ccW -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxg -cSf -cSf -cyO -cSp -cSt -cxg -cdb -cdb -ccW -ccW -cda -cda -cda -cda -cda -cda -cBY -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(40,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -dqV -dqX -dsN -awB -axy -dug -duF -dve -dvD -dve -dwi -dwr -dsN -dxf -dxe -dsF -deL -Fbo -lzY -vZt -Wcl -yFq -yFq -Fbo -EWs -EWs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -MNm -MNm -MNm -YLw -yQL -oAh -Pti -nqz -MzE -aXL -aXr -aXr -aXr -dij -aYS -din -bAu -cMO -cMT -cMT -cMT -cND -cMT -cMT -cMO -bAu -cMs -aXr -aXr -aXn -bpZ -bru -bsT -bum -bvQ -bxa -bye -bpZ -cPC -cOB -aXv -bDD -bEL -bcW -aXK -aXK -cQb -bdK -cQs -aXv -aXL -dij -dij -dij -dij -dij -aXL -aXZ -bVg -aXL -aXL -aXL -bTs -bTs -bTs -bTs -bTs -bTs -aXL -cal -cal -caG -caH -cbI -caH -caH -cRq -cam -aXL -ccy -aXL -aXL -aXL -cct -cct -din -din -din -bch -cct -cct -cct -ccX -ccX -ccX -ccX -ccX -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -cdb -aaa -aaa -aaa -cxg -cSg -cSj -yOy -cSq -cSt -cxg -cdb -cdb -ccW -ccW -cda -cda -cda -cda -cda -cda -ccW -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(41,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abC -cFp -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -avw -awx -axt -ayZ -aAn -aAn -aCx -aDL -aFe -cFp -cFp -abW -abW -dgh -auB -deL -dgk -dqV -drq -dqX -dsm -dsO -awC -avy -avy -duG -avy -dvE -aDM -dwj -dws -dsO -dxg -aBu -dsF -aJL -Fbo -VbR -Bhs -BNE -mro -LGS -EWs -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -MNm -MNm -MNm -MNm -MNm -DrB -MzE -aXL -aXr -aXr -aXr -dij -dij -aXK -cMH -cMO -cMT -cNa -cNo -cNE -cNS -cMT -cOn -cOz -dij -aXr -aXr -aXn -bpY -bru -bsU -bun -Rsm -bxb -byf -bpZ -cPC -cOB -aXv -aXv -aXK -aXL -aXL -aXL -cQc -bdK -bcW -aXv -aXL -bEM -bEM -bEM -bEM -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bXK -bXK -bXK -bXK -bTs -aXL -cam -caF -caG -cal -cam -cRq -cRq -cRq -aXn -aXL -aXL -aXL -aXn -ccW -ccX -cct -cct -cct -din -din -din -din -cct -cct -cct -cct -ccX -ccX -ccW -ccW -cdb -aaa -aaa -aaa -aaa -cdb -cpo -cqh -cqh -cqh -cpo -cSh -cSh -cyO -cSr -cSt -cxg -cdb -cdb -cdb -ccW -cda -cda -cda -cda -cda -cda -aaa -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(42,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -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 -abW -dgh -deI -dqp -dqG -aBu -drr -drQ -dsn -avy -avy -axA -azb -aAq -axA -azb -azb -aFf -avy -avy -aIF -aBu -dxW -dvN -Fbo -WYB -yGe -vUn -uBe -dEm -EWs -abW -abW -adm -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aXK -Tef -aYi -aXL -dij -dij -aXv -aXv -aXK -cMz -bAu -bcU -cMT -cNb -cNp -cNF -cNT -cMT -cMO -cOz -aXv -aXr -aXr -aXn -bpZ -bru -bsV -buo -bvS -bxc -byg -bpY -cPC -cOB -cMs -aXL -aXL -aXL -aXL -aXL -aXL -bLx -cQt -aXL -aXL -bEM -bQX -bRX -bSH -bTs -bTT -bUE -bVh -bVF -cKn -bWB -bXl -bXL -bYn -qVE -bUE -bTs -aXL -cal -caG -cal -cal -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXn -ccW -ccX -ccX -ccX -cct -cct -dio -din -din -din -dio -cct -cct -ccX -ccX -ccX -ccW -ccW -aaa -aaa -aaa -aaa -cdb -cpo -cqi -crh -crh -dkw -cyb -cyb -cSm -cSr -cSt -cxg -cxM -djz -ccW -ccW -cda -cda -cda -cda -cda -cda -aaa -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(43,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abC -cFp -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -avw -dlG -axv -aza -aAo -aBr -aAn -aDL -aFe -cFp -abW -abW -dpn -dpE -dpE -dpE -dpE -dqX -arn -arn -aup -avy -avy -axA -azc -aAr -dvf -aCB -azc -aFf -avy -avy -dxi -aBu -dsF -dgo -EWs -EWs -qwU -PfX -Fbo -Fbo -Fbo -dgh -abW -abW -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXv -xvx -bio -bPl -aXK -aXK -dim -cMu -din -bCC -bAw -cMP -cMT -cNc -cNq -cNG -cNU -cMT -cMO -bdJ -aXK -aXr -aXr -aXr -bpZ -brv -bsW -bup -bvT -bxd -bru -bpY -bAj -bke -aXv -aXL -aXL -bEM -bEM -bEM -bEM -bEM -bEM -bEM -bEM -bEM -bQY -bRY -bSI -bTt -bTU -bTU -bVi -bTU -bTU -bWC -bXm -bTU -bYo -bYF -bYW -bTs -aXL -cal -caG -caX -cal -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -ccW -ccX -ccX -ccX -ccX -cct -cct -cct -cct -din -din -din -aXL -aXL -aXL -ccW -ccW -ccW -aaa -aaa -aaa -aaa -cdb -cpo -cqj -crh -cse -dkx -cxg -cxg -cxg -cSs -cpo -cpo -cxN -djz -djG -djz -djR -djW -djW -cda -ccW -ccW -ccW -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(44,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -avv -avv -axw -avv -avv -avv -aCy -avv -avv -cFp -cFp -abW -dpo -cKJ -cKJ -cKJ -cKJ -cKJ -cKJ -arn -auq -dsP -dtf -dtH -duh -YTF -dvg -dvF -azc -aFh -aDM -aHy -aIF -aBu -dsF -deL -deL -deL -oCT -aOs -deL -aRP -deK -deK -acH -acH -abE -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXL -aXv -aYj -xvx -bio -bio -bio -bio -bio -zrU -cMI -cMQ -cMT -cMT -cNr -cNH -cNV -cMT -cOo -bdK -aXK -aXv -aXv -dij -bpZ -bpZ -bpZ -buq -buq -bpZ -bpZ -bpY -bAk -bke -aXv -aXL -aXL -bEM -bHK -bJm -bKm -bLy -cGE -bJm -bMW -bEO -bGk -bHQ -bSJ -bTu -bTV -bTV -bTu -bVG -bTu -bWD -bTu -bTV -bTV -bYG -bYX -bTs -aXL -cal -caG -cal -cal -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXn -ccW -ccW -ccX -ccX -ccX -ccX -ccX -cct -cct -din -din -din -aZS -din -aXL -dij -cda -ccW -cdb -aaa -aaa -aaa -cdb -cpo -cqk -cri -cqk -dkx -ctm -cua -cKv -cKx -cKy -cpo -cxM -djz -djR -djF -djE -djR -djz -cda -cda -cda -cda -aaa -aaa -aaa -abC -cCE -abC -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 -"} -(45,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -awG -dma -awG -cFp -awG -dnO -awG -cFp -cFp -cFp -abW -dpo -cKJ -dpT -dpT -dqI -dpT -dpT -arn -dso -avy -avy -axA -azd -azd -axA -aCC -azd -aFf -avy -avy -aIF -aBu -dgt -dgp -dgp -dgp -ExD -dhb -deL -deL -dgq -deK -aep -acH -abE -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXn -aXL -aXL -aYv -aXX -aXX -aZS -aXL -aXL -cMA -cMJ -aXL -cMT -cNd -cNs -cNf -cNW -cMT -cMP -bdK -bcW -bcW -aXK -aXv -aXK -aXL -bsX -bur -cPn -bxe -aXL -aXL -cPC -bke -aXv -aXK -aXL -bEM -bHL -bHL -bHL -bHL -bHL -bHL -bHL -bEM -bGl -bHQ -bSK -bTs -bTW -bTW -bTs -bVH -bTs -bWE -bTs -bXM -bXM -bXM -bXM -bTs -aXL -cal -caH -cal -cal -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -cda -cda -ccW -ccW -ccX -ccX -ccX -ccX -cct -aXL -aXL -aXL -din -din -dip -dij -cda -ccW -cdb -aaa -aaa -aaa -ccW -cpo -cql -crj -csf -dkx -ctn -cub -cuu -cvm -cwh -cKz -cxO -cyF -cSC -czZ -cAk -djT -djR -djW -cda -cda -cda -aaa -aaa -aaa -abC -cCE -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(46,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -awG -dmb -awG -cFp -awG -dmb -awG -cFp -cFp -abW -abW -dpo -cKJ -dpU -dqs -dqs -CFx -drt -drR -aur -avB -awH -axD -axD -aAs -aBt -aCD -aDN -aFj -aGE -dft -aIG -dxB -ajc -aMw -aMw -aMw -knG -aPS -dhh -ajX -ajX -apL -aep -acH -abW -abE -abE -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aXn -aXr -aXr -aXr -aXr -aXr -aXv -aXv -cMr -cMs -aXK -aXK -aXK -cMB -cMK -aXK -cMT -cNe -cNt -cNI -cNX -cMT -cOp -cOA -cOJ -cOJ -diq -cOJ -cOJ -diq -diq -diq -cOJ -cOJ -cOJ -cOJ -cPD -bke -cPP -aXv -bEM -bEM -cGA -bHL -bHM -bHL -bHM -bHL -bHM -bEM -bQZ -bRZ -bSL -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bTs -bEM -bEM -caI -bEM -bEM -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -aXr -cda -cda -ccW -ccW -ccX -ccX -ccX -ccX -ccX -ccW -ccW -aXL -aXL -din -din -aXL -cda -ccW -cdb -aaa -aaa -aaa -ccW -cpo -cqk -crk -cqk -csJ -cto -crm -cuv -cvn -cwi -cpo -cxP -djE -djE -djM -cAl -cSR -djz -djR -cda -cda -ccW -aaa -aaa -aaa -QIK -MTb -QIK -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 -"} -(47,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -atk -atk -atk -awG -axz -awG -atk -awG -aCA -awG -atk -akG -doL -doL -akI -cKJ -dfb -dfi -dfi -dfi -dfp -arn -arn -arn -awI -azf -azf -aAt -aBu -aCE -aDO -aFk -cLB -cLB -cLB -dxC -aGF -aGF -dyv -deK -aMx -deI -deI -deI -ajW -akT -deI -aep -abW -abW -abE -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aXr -aXr -aXr -aXr -aXK -aXK -aXv -bcW -aXX -cMt -aXK -bci -cMx -cMC -cML -bcV -cMT -cNf -uUL -cNf -bhy -cMT -bje -bkc -bkS -cOW -blY -blY -bqa -blY -bsY -bus -cOW -cOW -cOW -cOW -cOW -bBC -aXX -dio -bEM -bGh -bGi -bGi -bKn -bHL -bMX -bMX -bMX -bQd -bMX -bSa -bSM -bTv -bTX -bUF -bVj -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVj -bGi -caY -bEM -aXr -aXr -aXr -aXr -aXr -aXn -aXn -aXn -aXr -cda -cda -ccW -ccW -ccW -ccW -ccW -ccW -ccW -ccW -ccW -aXL -din -din -din -aXL -cda -ccW -cdb -aaa -aaa -aaa -ccW -cpo -cqm -crl -csg -dkA -ctp -knQ -cKw -cvo -cwj -cpo -djX -djQ -djR -djW -cSK -djz -cAN -djz -cda -cda -ccW -ccW -ccW -ccW -QIK -rWL -QIK -fQQ -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(48,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -atk -auo -dls -awD -awD -dmy -awG -dnu -awD -doa -dol -akH -doM -dpa -doM -cKJ -dfc -cEv -cEy -cEy -cEy -cEy -dsp -cKJ -awJ -cHJ -cHJ -cHJ -dvh -dvG -dzi -aFl -cLB -dwO -aJN -dxD -dxZ -aMA -aMy -aNC -dyQ -aPT -aQN -deK -ajW -deK -aTR -deK -abW -abW -abE -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aXn -aXn -aXn -aXn -aXn -aXn -aXK -cMp -caS -bcW -aXK -aXK -aXK -bcj -bcW -cMD -bRT -cMR -cMT -cNg -bfz -bgK -bhz -cMT -bjf -bkd -bkT -aYS -aYv -boA -aXK -aXK -cMt -aXK -bkU -bkU -bkU -bkU -bkU -bkU -aXX -diC -bEN -bGi -bHN -bJn -bKo -bLz -bLz -bLz -bLz -bLz -bLz -bSb -bLB -bTw -bTY -bUG -bVj -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVj -bUG -caZ -bEM -aXr -aXr -aXr -aXr -aXr -aXn -bhO -aXn -aXn -ccW -ccW -cdb -ccW -cdb -ccW -ccW -ccW -cda -cda -dij -aXL -din -ccp -dio -aXL -dij -ccW -ccW -aaa -aaa -aaa -ccW -cpo -cKu -crm -cKu -crm -cSo -crm -crm -cvp -cwk -cpo -cxd -cxd -cxd -cxd -cSL -dkc -cSS -djR -cda -cda -cda -ccW -djG -djG -QIK -MTb -yIq -nFd -QIK -Kel -Kel -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(49,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -abW -abW -atk -dlg -dlt -dlH -dlH -dlH -dmW -dlH -dlH -aja -atk -akH -doM -dpb -doM -cKJ -dpV -cEw -cEz -dra -ash -atm -dsq -cKJ -awK -axF -axF -aAu -aBv -aCF -aGP -aFm -dwt -dwP -dxk -dxE -aKA -aLD -aMy -dyH -cMe -dhc -dgT -deI -ajW -ajW -dfl -aep -acH -abW -adm -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aaP -aXn -aXn -aXK -cMq -bcW -aXv -aXK -dij -aXK -cMv -bRT -bdK -bRT -bfA -cMT -cNh -cNu -cNJ -cNY -cMT -bjg -bke -aXZ -aXL -aXL -aXL -aXL -aXL -aXL -aXL -bkU -bxf -byh -bzd -bze -bkU -bin -diC -bEN -bGj -bHO -bJo -bKp -bLA -bMY -bMY -jXv -bMY -bMY -bSc -bSN -bJr -bTZ -bUH -bVj -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -LDY -bVI -bVj -bUH -cba -bEM -aXr -aXr -aXr -aXn -aXn -bhO -bhO -aXn -aXn -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -cda -cda -dij -dio -din -din -cbE -ccp -aXL -cda -cda -aaa -cmB -aaa -ccW -cpo -cqn -crm -csh -csK -ctq -crm -crm -cvq -cwl -cpo -cxQ -cyG -czp -cxd -cSM -djz -cST -djz -djW -djW -djW -djG -djG -djG -yIq -BXG -XXu -yfn -XXu -MxO -Kel -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(50,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -abW -abW -atk -dlh -avA -awE -dmd -dmA -awG -awF -axB -dob -dom -akI -doO -dmb -doM -cKJ -dpW -cEx -cEA -cEB -cEx -cEx -aut -cKJ -cGj -aGP -aGP -aAv -azh -aCG -aGP -aFn -cLB -dwQ -dxl -aJM -BQj -aLE -aMy -aND -aOt -aPU -cMb -deK -dhq -aTt -deI -aep -acH -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXK -aXv -aXv -aXv -dij -dij -aXK -cMw -cMy -cME -bck -cMS -cMT -beJ -bfB -beJ -cNZ -cMT -bjg -bke -bkU -bkU -bnx -bkU -bkU -bkU -bkU -bkU -bkU -bxf -bxf -bze -bze -bkU -aXX -bDE -bEM -bGk -bHP -bJp -bKn -bLB -bMZ -bNU -bOU -bOU -bRa -bHL -bSO -bEM -bUa -bUH -bVj -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVj -bUH -cbb -bEM -aXr -aXn -aXn -bhO -bhO -bhO -bhO -aXn -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -cda -cda -dij -aXL -aXL -aXK -caW -ciY -aXK -cda -cda -clQ -cmC -clQ -ccW -cpo -cqo -crn -cqo -csL -ctr -cud -cuw -cvr -cwm -cpo -cxR -rLZ -dkD -cxd -cSM -djR -djz -djR -djR -djW -djR -djR -djz -djD -yIq -AOn -Slf -UdM -XXu -MfG -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(51,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -abC -cFp -cFp -cFp -cFp -cFp -abW -abW -atk -atk -atk -awG -dme -awG -awG -awG -cEo -doc -atk -atk -atk -dpd -atk -cKJ -dpX -dqu -dqK -drb -asj -atn -dsr -cKJ -dtg -dtK -azi -duJ -aBv -aCH -aJX -aFo -dwu -dwR -aII -dxF -aHB -aMD -aMy -deK -cYj -aPV -aKp -aKp -aSq -aSq -aKq -aKq -aKp -aKp -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXr -aXr -aXr -aYw -aYw -bcl -aYw -cMF -beK -beK -cMT -cNi -cNv -cNk -cNY -cMT -bjg -bke -bkU -blZ -bny -boB -bqb -brw -bsZ -but -bvU -bxf -bxf -bze -bze -bkU -aXX -aXK -bEM -bGl -bHQ -bJp -bKn -bLC -bMZ -bNV -bOV -bOW -bRb -bHL -bSP -bEM -bUb -bUH -bVj -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVj -bUH -cbc -bEM -aXn -aXn -aXn -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -cda -cda -ceW -ceW -ceW -cis -cis -ceW -ceW -ccW -clQ -cmD -clQ -ccW -cpp -cpp -cpp -cpp -cpp -cpp -cpp -cux -cvr -cwn -cpo -cxS -cyH -dkE -cxd -cSN -cAB -cAO -cSV -cAB -cAB -cSV -cAB -cAO -cCN -zyk -Xhf -BGO -wRW -TRu -XRA -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(52,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -abC -cFp -cFp -cFp -abW -abW -abW -abW -abW -atk -dlu -awF -dmf -dmB -dmB -dmB -dmf -dod -don -doB -doP -dpe -dpu -deY -dpY -cEx -cEx -cEx -cEx -cEx -dss -cKJ -anF -awL -anF -anF -dvi -aCI -aGP -aFp -aGF -dwS -dxm -dxG -dya -aME -dxC -dyI -aOv -aPW -aQO -aKp -aSr -aSr -aSZ -aLn -aLm -aKp -abE -abE -abE -aWr -aWr -aWr -aaa -aWr -aWr -aWr -aWr -aaa -aWr -aWr -aWr -aWr -aWr -aWr -aXn -aXr -aXr -aXn -aYw -aZT -bau -aYw -aYw -aYw -cMT -cMT -cNj -cNw -cNK -cOa -cMT -bjh -cOB -bkU -bma -bnz -boC -boC -boC -boC -buu -boE -boE -boE -boE -bAl -bkU -aXX -bat -bEO -bGm -bHR -bJp -bKn -bLB -bMZ -bNV -bOW -bOW -bRb -bHL -bHL -bEO -bUc -bUH -bVj -bVj -bVj -bVj -bXn -bVj -bVj -bXn -bVj -bVj -bVj -bVj -bUH -bUc -bEM -aXn -aXn -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -cda -cda -ceW -chn -chM -cit -chN -cjJ -ceW -ccW -clQ -cmE -clQ -ccW -cou -cTT -cqp -csi -cFX -dCj -cpp -cuy -cvs -cwo -dkB -cxT -cyI -czq -cxd -cAn -cyF -cSU -cyF -cyF -cTa -cTa -cTa -cyF -cCO -Bsu -xqZ -nYL -ghw -rtA -Oss -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(53,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -abC -cFp -cFp -abW -abW -abW -abW -abW -abW -atk -dlv -dlI -dmg -dmC -dmY -dmY -dnS -akL -doo -doo -doo -dpf -AgT -dpJ -dpZ -dqv -dqL -drc -dru -drS -dst -dsQ -dth -aoP -duj -duK -dvi -aCG -aGP -aFq -aGG -aGG -aGG -aGG -aGG -aGG -aGG -aGG -dyR -aPX -aQP -aKp -aMk -aMk -aMk -aMk -aLo -aKp -abE -abE -abE -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aXn -aXr -aXr -aXn -aYw -aZU -cYo -bav -bav -cYo -cMT -cMX -cNk -cNu -cNk -cOb -cMT -bjg -cOB -bkU -bma -bnA -boD -boD -boD -bta -buv -ewd -bxg -bxg -bzf -boE -bnx -aXX -dim -bEM -bGn -bHQ -bJq -bKn -bLB -bMZ -bNW -bOX -bOX -bRc -bHL -bSP -bEM -bUc -bUH -bVk -bOY -bQe -bOY -bGi -bXN -bYp -bGi -bOY -bOY -bQe -bVk -bUH -bUc -bEM -aXn -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -ccW -ceW -cho -chN -ciu -chN -cjJ -ceW -ceW -clR -cmF -clR -cou -cou -cqq -dBX -cro -dCf -csj -cpp -cuz -cvt -cwp -cpo -cxU -cyJ -czr -cxd -cAo -djM -djX -djD -cBA -djR -djz -djG -djD -djE -yIq -uYr -KPR -pZu -XXu -zuT -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(54,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -abC -cFp -cFp -abW -abW -abW -abW -abW -abW -atk -atk -atk -alm -alm -alm -alm -alm -alm -alm -alm -alm -alR -amR -afd -afd -afd -afd -afd -afd -afd -afd -anJ -dti -aoP -duk -aqy -dvk -aCK -cHc -dzj -aGG -dwT -dxn -aJR -dyb -aIQ -Hlj -dyJ -aOv -aPY -aQQ -aRQ -aSs -aMk -aMk -aMk -dkq -aKp -aKp -aKp -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aYw -aYw -aYw -cYn -cYo -cYo -bbB -bcm -cMT -cMT -cMT -cNx -beJ -cOc -cMT -bjg -cOB -bkU -bmb -bnB -boE -boE -boE -boE -boE -boE -boE -boE -bzg -boE -bkU -aXX -aYv -bEM -bGo -bHQ -bJp -bKn -bLB -bMZ -bGi -bOY -bQe -bRd -bHL -bSP -bEM -bUd -bUI -bJn -bJn -bJn -bJn -bJn -bXO -bYq -bYH -bYH -bYH -bYH -bYH -caJ -cbd -bEM -bEM -bEM -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ceW -ceW -ceW -chp -chN -chN -chN -chN -ceW -ceW -ceW -cmG -ceW -cou -cpq -cqr -dBY -csk -dCg -cts -cou -cuA -cvu -cwq -cxc -dkC -cyK -czs -cxd -cAm -djE -djz -djR -djG -djG -djG -djG -djR -djR -yIq -SUs -KPR -rzC -rtA -eHJ -Kel -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(55,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -abC -cFp -abC -cFp -cFp -abW -abW -abW -abW -abW -abW -abW -abW -abW -alm -aga -agW -akN -alm -aje -dop -akN -alm -alS -amT -alm -dqa -apy -akN -alm -drv -atq -akN -anF -dtj -axI -aoP -asn -dvi -aCL -aJX -aFs -aGH -aHC -aHC -aHC -aHC -dym -aIQ -dyJ -aOv -aPW -aQR -aKp -aSt -aTu -aTu -aTu -aUS -aVi -aVv -aVJ -aWb -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aXf -aYx -aYT -aZv -aZV -baw -baW -cYp -cYp -baW -bdL -cMT -bfB -beJ -cNZ -cMT -bji -bkf -bkU -bmc -bnC -boF -bqc -brx -btb -buw -bvW -bxh -byi -bzg -bAm -bkU -bCx -bDF -bEM -bGp -bHS -bJp -bKn -bLB -bMZ -bGi -bOZ -bQf -bRe -bGi -bSQ -bEM -bUe -bUJ -bVl -bVJ -bUJ -bWF -bXo -bXP -bYr -bJo -bJo -bJo -bZT -bJo -bJo -cbe -cbt -cbJ -cbT -cbY -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cev -ceV -cft -cga -cgz -chq -chq -chq -ciZ -cjK -ceW -ceW -chN -chN -cnM -cou -cpq -cqr -dBZ -dCd -dCh -ctt -cuf -cuD -cvv -cuh -cxd -cxd -cxd -cxd -cxd -cAm -djE -dkd -GPe -djW -djG -djG -djG -djG -djG -yIq -QIK -QIK -Wbp -yIq -Kel -Kel -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(56,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -abC -cFp -abC -cFp -cFp -abW -abW -abW -abW -abW -abW -abW -abW -abW -alm -anE -amS -alT -aeK -anE -amS -alT -alm -dpg -ufo -alm -anE -amS -alT -aeK -anE -amS -alT -anF -dtk -aoP -HOp -duL -dvm -aCG -aGP -aFq -aGG -aIQ -aIM -aIM -aKB -aLH -aIQ -aGG -aOv -aPW -aQS -aKp -aKp -aKp -aKp -aOb -aKp -aKp -aKp -aKp -aWc -aWs -aWs -cWf -aWs -aWs -aWs -cWf -aWs -aWs -cWf -aWs -aWs -aWs -cWf -aWs -aWs -aYk -aYw -aYw -aYw -aYw -aYw -baX -aYw -aYw -aYw -bdM -cMT -cNy -cNL -cOd -cMT -bjj -bkg -bkU -bkU -bnD -bkU -bkU -bry -bry -bry -bry -bkU -bkU -bzh -bkU -cFt -bCy -bCy -bEM -bEM -bHT -bJr -bKq -bLD -bKq -bJr -bEM -bEM -bEM -bEM -bEM -bEO -bEM -bEM -bEM -bEM -bEM -bEM -bLD -bXQ -bYs -bJr -bEM -bEM -bEM -cFG -bEM -bEM -bEM -bEM -bEM -cbZ -ccl -ccl -ccl -cYd -ccl -ccl -cYd -ccl -ccl -cYd -ccl -ccl -ccl -cew -ceW -ceW -ceW -cgA -ceW -ceW -ceW -ceW -cjL -ceW -ceW -ceW -cmH -ceW -cou -cou -cqs -crp -OQj -csl -ctu -dCl -dCr -cvv -cwr -cxe -cxV -cyL -cuT -djD -cAm -djM -djX -djz -djR -djW -djW -djG -djG -djG -ccW -cdb -QIK -OmI -QIK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(57,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -abC -cFp -abC -cFp -abW -agk -ahP -agl -agk -abW -abW -abW -abW -abW -alm -dmD -amS -ahJ -alm -ajg -amS -ahJ -alm -alU -amT -alm -dqb -amS -ahJ -alm -drw -amS -ahJ -anF -dtl -aoP -aoP -duM -dvn -aCL -aDX -aFu -dww -aHE -aIN -aJQ -aKC -aLI -aIQ -aNE -aOv -aPW -aQT -aRz -aSu -aRz -dkp -aUm -aRz -aUe -aRz -aRw -cWd -cWd -cWd -cWd -cWd -cWd -cWd -cWl -cWd -cWd -cWs -cWd -cWd -cWd -cWd -cWd -cWd -cWd -aYy -aYU -aZw -aZW -bax -baY -baY -bcn -baY -bdN -cNl -bfC -baY -bHU -bip -bjk -bkh -aZW -baY -bnE -baY -bqd -brz -baY -baY -baY -bxi -byj -bzi -baY -baY -baY -baY -bEP -cGy -bHU -baY -baY -bLE -baY -baY -bPa -brz -bqd -bcn -bSR -baY -baY -aZW -baY -baY -bWj -baY -bXp -bXR -bYt -bYI -baY -bcn -byj -baY -bqd -cbf -cbu -cbK -aYy -cca -cca -cca -cca -ccz -cca -cca -cdc -cca -cca -ccz -cca -cca -cca -cca -ceX -cfu -cfu -cgB -chr -chO -chO -cja -cjM -chO -clb -clS -chO -cnN -cov -cpr -cqt -dCa -cGU -cGU -ctv -cue -cuC -dCs -cuh -cuh -cuh -cyM -cuT -djX -cAp -cAC -djE -djE -djz -djW -djW -djG -djG -djG -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(58,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -cFp -abC -abW -abW -agk -dkK -agm -agl -abW -alm -alm -alm -alm -alm -agc -agY -dnz -alm -agc -cEr -dnz -alm -alU -amT -alm -agc -apz -dnz -alm -agc -drT -dnz -anF -awM -ats -aoP -aAx -dvo -dvH -cHc -aFv -dwx -aHF -aIO -dxH -aKD -aLJ -dyx -aGG -aOv -cEU -aQU -aQj -aSv -aQj -kds -aQj -aQj -aQj -aQj -aQv -cWd -cWd -cWd -cWd -cWd -cWd -cWd -cWd -cXV -cWd -cWt -cWd -cWd -cWd -cWd -cWd -cWd -cWd -aYz -aYV -aZx -aZX -aZX -aZX -aZX -bco -aZX -bdO -aZX -aZX -bgL -cOe -aZX -bjl -bki -bkV -bkV -bnF -boG -bqe -brA -cFr -aYV -aYV -aYV -aYV -aYV -aYV -aYV -aYV -bDG -cGw -aYV -bHV -aYV -aYV -aYV -bNa -aYV -bPb -bQg -aYV -bEQ -aYV -aYV -qel -aYV -aYV -aYV -aYV -bDG -bPb -bHV -bYu -bYJ -aYV -bEQ -aYV -aYV -aYV -bQg -aYV -aYV -aYz -cca -cca -cca -cca -cca -cca -cca -cca -YCP -cca -cca -cca -cca -cca -cca -ceY -cfv -cfv -cgC -cfv -cfv -cfv -cjb -cfv -cfv -cfv -cfv -cfv -cFP -coy -cpt -dBW -dCb -csn -dCi -ctw -dCm -cuE -dCt -cuh -cxf -cxW -cyN -cuT -cAa -djX -cAD -cAC -djD -djW -djW -djW -djW -djW -djG -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(59,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -cFp -abC -abW -abW -agl -agm -dkS -ahP -agk -alm -akN -dlw -dlJ -dmh -dmE -ajm -ahK -aiq -aji -aka -akQ -alo -alW -amV -anH -aji -aka -akQ -arp -aji -aka -dsu -dsT -awN -axK -aoP -aAy -anF -aCG -aGP -aFw -aGG -aGG -aGG -aGG -aGG -aGG -aGG -aGG -dyS -aPW -aQV -aRt -aSw -aRt -aRt -aUn -aRt -aRt -aRt -aRv -cWd -cWd -cWd -cWg -cWd -cWd -cWd -cWm -cWd -cWd -cWu -cWv -cWv -cWv -cWw -cWv -cWv -cWv -aYA -aYW -aZy -aZY -aZY -aZY -aZY -bcp -bcY -bdP -aZY -aZY -bgM -bgM -aZY -bjm -bkj -bkW -bmd -bnG -boH -bqf -brB -btc -bux -bvX -btc -btc -btc -btc -btc -btc -bDH -cGx -btc -bDH -btc -btc -btc -btc -bvX -bPc -bkW -bRf -bER -btc -btc -btc -btc -btc -btc -bmd -bWG -bXq -bXS -bYv -bYK -bYY -bZC -bZU -aYW -aYW -cbg -aYW -cJp -cJr -ccb -ccb -ccb -ccb -cYe -cYg -cYg -cdd -cYg -cYg -cYg -cYg -cYg -cYg -cYg -ceZ -cJs -cgb -cfw -chs -cfw -civ -cjc -cjN -cky -dzr -cky -cmI -cnO -coy -cpr -cqu -crq -cso -csN -ctx -cuf -cuD -cvx -cws -cSu -cSu -cSu -cSD -cSu -cSu -cSu -cAm -djM -djR -djG -djW -djW -djW -djG -ccW -ccW -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(60,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -abW -adm -abW -abW -agk -acN -acN -acN -ahP -alm -dlj -amS -amS -dmi -cTV -dmZ -dnA -cVB -amd -dlP -dnA -anI -alX -amd -anI -amd -anI -dnA -anI -amd -drU -aoM -anF -anF -axL -dul -anF -anF -aCM -aGP -aFx -aGK -cHh -aIP -cHm -aKE -dyn -cHm -avI -aOw -aPW -aQR -aRR -aRR -aRR -aRR -cEW -aRR -aKp -aKp -aKp -aWd -aWd -aWd -cWh -aWd -aWd -aWd -cWh -aWd -aWd -cWh -aWd -aWd -aWd -cWh -aWd -aWd -aWd -aYw -aYX -aZz -aZZ -aZZ -aZZ -cFd -aZZ -aZZ -aZZ -aZZ -aZZ -aZZ -aZZ -aZZ -bjn -bkk -bkX -bjn -aZZ -boI -bqg -brC -bzo -btj -btj -btj -dcL -dcL -btj -btj -btj -cJl -btj -cJm -cJm -cJm -cJm -cJm -cJm -cJm -bPd -bQh -bRg -cJm -cJm -cJm -bUf -cJn -cFF -bVq -bWk -bWH -bXr -bXT -bVq -cJo -bYZ -cJn -bZV -cJn -cJn -cJn -cJn -cJq -aYw -ccc -ccm -ccm -ccm -cYf -ccm -ccm -cYf -ccm -ccm -cYf -ccm -ccm -ccm -cex -ceW -ceW -cJt -cJu -cJu -cJv -cJu -cJu -cjO -cJu -cJu -cJB -cmJ -cfv -dBQ -cou -cqv -dCc -cqv -cqv -cqv -cou -cuB -cvw -cwt -cxh -cxX -cSx -gAE -cSG -cSO -cSu -cAm -cxN -djz -djz -djR -djW -djW -djG -ccW -cdb -cdb -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(61,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -abW -abW -abW -abW -agk -ahP -dkT -ahP -ahP -alm -aeq -aeM -dlK -aln -agd -cTW -cTX -air -akc -akb -ajj -doR -alY -amW -doR -amW -dqw -cTX -cVO -akc -cVO -dsv -aAD -awP -dtL -dum -awP -aAD -dvI -aJX -dwk -dwy -aHH -dxo -dxI -dyc -dyo -aJU -aNG -aOw -aPW -aQW -aRS -aSx -aTv -aTS -aUo -aUT -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -dif -dik -aZA -aZZ -bay -baZ -bbC -aZZ -bcZ -bdQ -bba -bfD -bgN -bhA -biq -bhD -bkl -bkY -bme -bjn -boJ -bqh -brD -cIW -bte -bvY -bwd -byk -bwb -btd -bzj -ddk -bDI -btd -bGr -bHW -bJs -bGq -bLF -bNb -bNX -bPe -bQi -bRh -bSd -bSd -bGq -bUg -bUK -bUN -bVK -bWl -bVS -bXs -bXU -bYw -bYL -bZa -aYw -bZW -can -can -can -cbv -cbL -cbv -ccd -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cey -cfa -cfa -cgc -cgD -cht -chP -ciw -cjd -cjP -ceW -ccW -cJC -cmK -cfv -cow -dBS -cqw -cqw -cqw -cqw -ctz -dCn -cuF -cvy -cwu -cxi -cxY -cSy -cSE -cSH -cAq -cSu -cAP -cSW -dkc -chH -djR -djG -djG -djG -ccW -ccW -cdb -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(62,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -abW -abW -abW -ahP -ahP -dkL -agm -cVw -adS -alm -alm -aeK -alm -alm -age -dna -cTY -ais -doe -dor -doD -aeK -dph -dpy -aeK -dmo -apA -cTY -azk -doe -atr -dsw -cEt -cHc -aFB -cLf -cHc -cEt -dvH -YBW -aFy -aGL -aHM -aIR -aKF -aKF -aKF -aKF -aNH -aOw -aQa -aQX -aRT -aSy -aTw -kEb -aUp -aUT -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -dif -aXY -aYZ -aZZ -baz -bba -bbD -aZZ -bda -bdR -beL -bfE -bgO -bhB -bir -bjo -bkm -bkZ -bmf -bnH -boK -bqi -brE -cIX -btf -btf -bxj -byl -bzk -btd -ddg -bwe -bDJ -btd -bGs -bHX -bJt -bKr -bHZ -bHZ -bNY -bPe -bQi -bRi -bSe -bSS -bGq -bGq -bGq -bUN -bVL -bWm -bVS -bXs -bXV -bYx -bYL -bUN -aYw -bav -bav -bav -cbh -aYw -aYw -aYw -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ceW -ceW -ceW -chQ -cix -cje -cjQ -ceW -ccW -cJC -cmL -cfv -dBR -dBS -cqx -crs -VwE -csP -ctA -cug -cuG -cvz -cwv -cxj -cSv -cSz -czt -cSI -cAr -cSu -djG -cSM -djz -djR -djR -djz -djG -djR -djG -ccW -ccW -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(63,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -cFp -aaP -abW -abW -abW -agk -dkH -acN -Zed -agm -adS -alm -aes -dlw -dlL -dmj -agf -dnb -dnB -dnT -ajk -akd -doE -anK -alZ -aoN -anK -aoN -dqx -dnB -azl -ajk -azl -auv -dsV -aAA -dtM -dun -aAA -dsV -dvK -aEb -aFz -aGM -aHJ -aIS -aJS -aKG -cHm -cHm -dyL -aOy -aQb -aQY -aRU -aSz -aTx -aTU -aUq -aUT -abE -aaa -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXr -dif -dil -aZB -aZZ -baA -bbb -bbE -bcq -bdb -bdS -beM -bfF -bgP -bhC -bis -bjp -bkn -bla -bmg -bnI -boL -bqj -brF -cIY -btg -btg -bxk -dcM -dcW -btd -ddg -cGv -bDQ -btd -bGt -bHY -bJu -bGq -cYs -bNc -bJv -bPe -bQi -bRi -bSe -bSe -bTx -bUh -bUL -bUN -bVn -bVn -bVS -bXs -bXW -bVn -bYM -bZb -aYw -bav -bav -bav -aZU -aYw -aXn -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -ccW -ccW -ceW -chR -ciy -cjf -cjR -ceW -ccW -cJC -cmM -cnP -coA -dBU -cqy -crt -cqy -csQ -ctB -dCo -cuE -cvA -cww -cxk -cTu -cya -cSF -cAb -cAs -cSu -djG -cAm -djA -djA -djA -djA -djA -cTh -djG -ccW -ccW -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(64,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -cFp -cFp -abW -abW -abW -agk -dkI -dkM -acN -acN -acN -alm -aet -amS -amS -afz -cTV -aha -dnA -anI -amd -anI -dnA -anI -ama -amd -anI -amd -amh -dnA -anI -amd -att -aoM -avI -avI -avI -avI -avI -avI -aCN -aGP -aFA -aGN -aHK -aIT -cHB -aKH -aKH -cEL -avI -aOz -aQc -aQR -aRR -aRR -aRR -aTV -aRR -aRR -abE -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aXA -aXn -aXn -dif -dih -aYY -aZC -baa -baB -bbc -bbF -aZZ -bdc -bdT -beN -bfG -bgQ -FQm -bit -bjq -bko -blb -bhD -bjn -boM -aYV -brH -bzp -bth -dcB -btd -bym -bzl -btd -ddg -bCz -bDK -btd -bGq -bGq -bGq -bGq -bLG -bHZ -bNZ -bPe -bQi -bRj -bSf -bSf -bGq -bUi -bUM -bUN -bVM -bWl -bVS -bXs -bXX -bWl -bYL -bZc -aYw -bZX -cao -cao -aZU -aYw -aXn -bhO -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -ccW -ccW -ceW -ceW -ceW -ceW -ceW -ceW -ccW -cJC -cmN -cfv -coB -cFS -cqz -crt -dCe -csR -ctC -dBU -cuI -cvw -cwx -cSu -cSw -cyP -czu -cSJ -cSP -cSu -djG -cSX -cSY -cSY -cBB -cCm -cTf -dkh -djR -ccW -ccW -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aab -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(65,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -cFp -cFp -abW -abW -abW -agl -agk -dkM -dkM -acN -acN -alm -akN -aeM -afg -afA -agh -ahb -ahO -aiu -dof -apC -ahO -doT -amb -amX -anM -dof -apC -ahO -aru -dof -apC -dsx -avI -awR -axN -axN -aAC -azn -aCG -aGP -dwl -awJ -cHJ -cHJ -dxK -cHJ -cHJ -dyy -avI -aOA -aPW -aQR -aKp -aMk -dyW -aKp -abW -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXr -aXr -dif -aYB -aYZ -dif -aZZ -baC -bbd -bbG -aZZ -bdd -bba -beN -bfG -bgQ -bhD -biu -bjr -bkp -bkY -bmh -bnJ -boN -aYV -brG -bzp -buy -bvZ -dcG -byn -dcX -btd -ddh -ddl -btd -bzo -bGu -bHZ -bHZ -bHZ -bHZ -bNd -bOa -bPe -VMD -bRi -bSe -bSS -bGq -bGq -bGq -bUN -bVN -bWm -bVS -bXs -bXV -bWm -bYN -bZd -aYw -aYw -aYw -aYw -aYw -aYw -aXn -aXn -bhO -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -ccW -ccW -cda -cda -cda -cda -ccW -ccW -ccW -ccW -cJD -cmJ -cfv -coC -dBU -cqA -crv -css -csS -ctD -dCn -cuD -cvB -cuh -cJX -cJZ -cJZ -cJZ -cKa -cSQ -cSu -djG -djG -djG -djF -djR -djR -cSM -dki -djR -djG -ccW -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aad -aad -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(66,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -cFp -cFp -cFp -dkF -abW -abW -agk -dkM -dkV -ahP -agl -alm -alm -alm -alm -alm -agi -dnc -dnC -alm -agi -akf -dnC -alm -alU -amT -alm -agi -apD -dnC -alm -agi -drV -dnC -avI -awS -axO -axO -axO -dvq -aCG -aDP -aFt -cHb -aHL -aGP -cHl -cHr -aGP -cEP -cER -cES -aPW -dyU -dyV -aMk -aMk -aKp -abW -abW -abE -abE -aaa -aaa -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXr -aXr -dif -aXY -aYZ -dif -aZZ -baD -bbd -bba -aZZ -bde -bbc -beN -bfG -bgQ -bhD -biv -bhD -bkq -bkY -bhD -aZZ -boO -aYV -brH -bzp -buz -bwa -bxl -dcN -HWp -bAn -ddi -bCA -ddo -bzp -bGv -bIa -bJv -bJv -bJv -bNe -bNe -bPe -bQi -bRi -bSe -bSe -bTx -bUh -cGG -bUN -bVP -cGI -bVS -bXs -bXY -cGI -bYO -bZe -bZD -bZD -bZD -bZD -bZD -bZD -bZD -aXn -aXn -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdb -cdb -cdb -ccW -ccW -ccW -cda -cda -cda -cda -ccW -ccW -ccW -ccW -cJt -cJF -cJG -coD -cJO -cJV -cJV -cJV -cJV -ctE -cJV -cuK -cvC -cJW -cJY -cyc -cyQ -czv -cKb -cAc -cAc -cAc -cAc -cAc -cAc -cAc -cAc -cSM -djA -cTj -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aac -aac -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(67,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abW -abW -abW -ahP -dkP -dkW -adC -adV -dlb -dll -dlz -dlM -alm -dmF -amS -ahJ -alm -ajo -amS -ahJ -alm -alU -amT -alm -dqe -amS -ahJ -alm -asp -amS -ahJ -avI -dtn -axO -duo -axO -dvq -aCG -aGP -cHa -cHb -dwV -aGP -dxL -dye -aGP -cHD -cER -cES -aPW -aQR -aKp -aKp -aKp -aKp -abW -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXr -aXr -dif -aXY -aZa -aZD -bab -baE -bbe -bbH -bcr -bdf -bdU -aZZ -bfH -bgR -bhE -biw -bhE -bkr -blc -bmi -bnK -boP -bqk -brH -bzp -dcx -bwb -dcH -dcD -dcZ -bAo -dcy -ddm -ddp -bzp -bGw -bHZ -bJw -bKs -bKs -bKs -bKs -bPf -bQj -bRk -bSg -bSg -bGq -bUi -bUM -bUN -bVO -bWn -bWI -bXt -bXZ -bYy -bYP -bZf -bZE -bZY -cap -bZj -cbi -cbw -bZD -aXn -aXn -bhO -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cmJ -cfv -coE -cJP -cqB -crw -cst -cpu -ctF -crw -cuL -Jov -crx -cxm -cyd -cyR -czw -cKc -cAc -cAt -cAt -cBf -cAt -cAt -cBZ -cAc -cSM -djA -dkh -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(68,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abW -abW -abW -ahP -dkQ -dkX -agl -agl -alm -cVz -aeO -afh -alm -anR -amS -ami -aeK -anR -amS -ami -alm -dpg -dpx -alm -anR -amS -ami -aeK -anR -amS -ami -avI -dto -dtN -dup -dup -dvs -aCG -aGP -cHa -cHb -aHN -dtK -dxM -cHs -aGP -cHD -cER -cES -aPW -aQR -aKp -abW -acH -acH -abW -abW -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXn -dig -dii -aZb -dif -aZZ -baF -baF -baF -baF -baF -bdV -beO -bfI -bgS -bjs -bix -bjs -bks -bhD -bmj -aZZ -boQ -aYV -brH -bti -dcy -bwb -dcH -dcD -dcZ -ddd -dcy -ddm -cTS -bzp -bGx -bIb -bJx -bKt -bLH -bLH -bLH -bPg -bQk -bRl -bSe -bSS -bGq -bGq -bGq -bUN -bVP -bVP -rzu -bVS -bXY -bVP -bYQ -bZg -bZF -bZZ -caq -bZF -cbj -cbx -bZD -bZD -aXn -aXn -aXn -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cdZ -cez -cez -cez -cez -cez -cez -cez -ciz -cdI -cjS -ckz -clc -cdI -cmO -cnQ -coF -cpv -cqC -crx -csu -csT -ctG -crx -cuM -cvE -cuh -cxl -cye -Cjh -czx -cAc -cAc -cAt -cAt -cBg -cAt -cAt -cAt -cAc -cSM -cxN -djR -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aac -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(69,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abW -abW -abW -abW -abW -agk -ahP -agl -agk -agk -alm -dlm -aeO -afh -alm -dmG -dnd -akN -alm -dog -dot -akN -alm -alS -amT -alm -aoR -dqy -akN -alm -drz -drW -akN -avI -avI -avI -avI -avI -avI -aCN -aGP -aFC -avI -aHO -dxr -awJ -dyf -aMK -aMK -cHJ -aOC -cHT -aRf -cHX -dhr -dhr -dhs -dhs -aUU -aUU -aUU -aUU -aWe -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXr -aXr -aXr -dif -aXY -aYZ -dif -dif -baF -bbf -bbh -bbh -baF -cFe -baF -baF -bgT -cTP -biy -bjt -bjt -bjt -baF -baF -dks -aYV -brH -bti -buA -dcC -dcI -dcO -bzm -bAp -buA -dcX -bDL -bzp -bGy -bGy -bJy -bKu -bGy -bGy -bGy -bGy -bQl -bRi -bSe -bSe -bTx -bUh -bUL -bUN -bVQ -bWo -bWJ -bWJ -bYa -bWo -bYR -bZh -bZG -caa -jYi -caK -bZD -cby -cbM -bZD -aXn -aXn -aXn -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -ceA -ceA -ceA -ceA -ceA -ciA -cjg -cjT -ckA -cld -cdI -cmJ -cnR -coG -cJQ -cqD -cry -csv -cpw -ctH -cuh -cuB -cvw -cuh -cxl -cyf -cyS -czy -cAc -cAc -cAt -cAt -cAt -cAt -cBK -cAt -cAc -cAm -djA -cSa -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(70,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abW -abW -abW -abW -abW -abW -abW -abW -abW -alm -alm -dln -aeO -dlN -alm -alm -alm -alm -alm -alm -alm -alm -alm -amf -amY -alm -alm -alm -alm -alm -alm -alm -alm -avI -awT -dtO -dtO -aAE -avI -aCG -aGP -aFD -cHe -cHf -dxs -aJV -cHt -aEb -aEb -aEb -cHO -aPW -aQR -cHY -dhs -dhr -dhs -dhs -aUV -aVj -aVw -aVK -aWe -aWe -aWe -abC -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aXr -aXr -aXr -dif -aXY -aZc -dih -dif -baF -bbg -bbk -bcs -bdg -bdW -beP -bfJ -bgU -bhF -biz -bhJ -bhJ -bhJ -bmk -baF -boQ -aYV -brH -bti -dcy -dcD -dcH -dcD -dcZ -bwb -dcy -ddm -bDM -bzp -bGz -bIc -bJz -bKv -bLI -bNf -bOb -bGy -bGy -bRm -bSh -bSh -bGq -bUi -bUM -bUN -bVP -bVP -bWK -bVS -bVP -cGI -bYO -bZi -bZH -cab -cas -bZj -cbk -cbz -cbN -bZD -aXn -aXn -aXn -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -ceA -ceA -ceA -VFF -ceA -ciA -cjg -cjT -eBB -cle -cdI -cmJ -cfv -coH -cJR -cpx -cpx -cpx -cpx -ctI -cpx -cuN -cvF -cwz -cxn -cyg -cyT -czz -cAd -cAc -cAt -cAt -cAt -cAt -cBL -cAt -cAc -cTg -dki -djW -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(71,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -abW -alm -dlc -dlo -dlA -dlO -dmk -dmH -cVA -cVF -cVF -cVA -cVF -cVA -doU -amg -cVP -ajm -amU -ajm -ajm -amU -drA -ajm -dsy -avI -awU -axP -dur -aAF -avI -dvL -aJX -aFE -aGQ -aHP -dxt -aJW -aHP -dyr -aNJ -aNJ -aOD -aQd -aQZ -cHY -dhs -dhr -dhx -dhw -aUV -aVk -sZf -aVL -aWf -aWt -aWf -aWN -aWN -aWN -aWN -dic -abC -abC -abC -abC -abC -abC -aXr -aXr -aXr -dif -aXY -aYZ -aZE -dif -baF -bbh -bbf -bbh -bbk -bdX -baF -bfK -bgV -bhG -biA -bhJ -bhG -bhJ -bhJ -baF -boQ -aYV -brI -bzp -dcx -dcD -dcH -dcD -dcZ -bwb -dcy -ddm -bDN -bzp -bGA -bGD -bJz -bKw -bLJ -bLJ -bOc -bPh -bGy -bGy -bGy -bGy -bGy -bGy -bUN -bUN -bVR -bWl -bVS -bVS -bVM -bYz -bYO -bZj -bZI -cac -cat -caL -bZD -cbA -cbO -bZD -aXn -aXn -aXn -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -ceA -cgd -ceA -ceA -ceA -ciA -cdI -cjU -ckB -clf -cdI -cmP -hiU -coI -cJR -cqE -crz -csw -csU -ctJ -cpx -cuB -cvw -cuh -cxo -cxo -cxo -cxo -cAc -cAc -cAc -cAQ -cAt -cAt -cBM -cAc -cAc -cSM -dkj -djR -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(72,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abW -abW -abW -abW -abW -abW -abW -abW -abW -alm -dld -dlp -dlB -dlP -cVB -anI -cVB -anI -anI -cVB -anI -amh -cVB -anQ -anI -anI -cVB -anI -anI -cVB -anI -dlP -awO -avI -dtp -dtP -azo -duO -dvt -dvK -aEb -aFF -dwz -cHg -dxu -cHn -cHu -dys -aGP -avI -aOE -aPW -aQR -cHY -dhs -dhs -dhw -aUr -aUW -aVl -aVy -aVM -aWe -aWe -aWe -abC -abC -abC -abC -aXa -abC -aaa -aaa -aaa -aaa -aXn -aXr -aXr -aXr -dif -aYC -aZd -aZF -dif -baF -bbi -bbI -bct -bbk -bdY -baF -bfL -bgV -bhH -biB -bju -bkt -bhJ -bhJ -cTQ -boQ -aYV -brJ -bzp -byp -bwc -bxm -dcP -dcX -byo -ddj -bzl -bDO -bzp -bGB -bIe -bJA -bKx -bLK -bNg -bOd -bPi -bGy -bRn -bSi -bGD -bSi -bRn -bUN -bVm -bVN -bWm -bVS -bVS -bVN -bWm -bYS -bZk -bZD -bZD -bZD -bZD -bZD -cFI -bZD -bZD -aXn -aXn -aXn -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -cRt -cge -cRB -ceA -ceA -ciA -cjh -cjV -ckC -clg -clT -cmQ -cnS -coG -cJR -cqF -crA -csx -csV -ctK -cpx -cuB -cvw -cwx -cxo -cyh -cyU -czA -cAd -cAu -cAE -cAR -cBh -cBC -cBN -cCa -cAc -cSM -djA -djW -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(73,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abW -abW -abW -abW -abW -abW -abW -alm -dlc -dlq -dlC -dlQ -dmm -cVL -cVC -cVH -cVL -cVM -ake -cVL -doV -dpi -cVH -cVL -dqf -ake -cVL -cVX -drB -drY -dsz -avI -dtq -axR -axR -duP -avI -aCI -aGP -aFG -avI -dwW -cHk -avI -dyg -dys -cHD -cER -cES -aPX -aRa -cHY -dhs -dhv -dhE -dht -aUV -aUV -aUU -aUV -aWe -abW -aaa -aaa -aaa -aaa -abC -aXa -abC -aaa -aaa -aaa -aaa -aXn -aXr -aXr -aXr -dif -dih -aXY -aYZ -dif -baF -bbj -bbJ -bcu -bdh -bdh -beQ -bfM -yWK -bhI -biC -bjv -bku -bld -bhJ -baF -boR -bql -brK -bzp -dcz -dcz -bxn -dcQ -dda -bAq -cTR -bCB -ddq -bzp -bGC -bId -bJA -Foo -bLL -bNh -bOe -bPi -bGy -bGD -bSi -bST -bSi -bGD -bUN -bVn -bVS -bVS -bVS -bVS -bVS -bVS -bVn -bZl -bZJ -bZJ -bZJ -bUN -bZD -cbB -bZD -diB -aXn -aaa -bhO -bhO -bhO -bhO -bhO -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -ceA -cgf -ceA -ceA -ceA -ciA -cdI -cjW -ckD -clh -clU -cmR -cnT -coz -cpy -cqG -crB -csy -csW -ctL -cui -cuO -cvH -cwA -cxo -cyh -cyU -czB -cxo -cAv -cAF -cAS -cBi -cBD -cBO -cAv -cxo -cCv -cxN -djz -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(74,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -abW -abW -abW -abW -abW -abW -abW -alm -alm -alm -dlD -cVI -cVD -dmJ -cVD -cVI -dnU -cVD -cVI -amj -cVD -dpj -alm -apG -dmo -alm -dqM -dmo -doD -atv -dmo -avI -dtr -axQ -axQ -duQ -avI -aCR -aGP -dwn -dwA -aHR -aIU -cHb -cHu -dyu -cHD -cER -cES -aPW -aQR -cHZ -dhs -dhw -dhF -dhG -dhs -dhr -abW -abW -abW -aaa -aaa -aaa -aaa -aaa -abC -aXa -abC -aaa -aaa -aaa -aaa -aXn -aXn -aXn -aXn -aXn -dif -aXY -aYZ -bac -baG -bbk -bbk -bcv -bdi -bdZ -baF -bfN -bgX -bhJ -bhJ -bhJ -bhJ -bhJ -bml -baF -boQ -aYV -brL -bzp -btd -bwd -bxo -dcR -btd -bAr -bwd -bwd -btd -bzp -bGD -cGB -bJA -bKx -bLL -bNi -bOf -bPj -bGy -bGD -bSj -bGD -bGD -bGD -bUN -bVo -bVS -bWp -bWp -bWp -bWp -bVS -bVn -bZl -bZJ -bZJ -bZJ -bUN -cFH -diE -diM -dix -aXn -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdb -cdb -cdb -cdI -cea -ceA -ceA -ceA -ceA -ceA -ceA -ceA -ciA -cjg -cjX -ckE -cli -cdI -cmS -cfv -coz -cpy -cqH -crC -gTe -csX -ctM -csz -cuL -cvw -cuh -cxo -cyi -cyV -czC -cAe -czC -czC -czC -cBj -czD -cBP -czD -cxo -cCv -djM -djz -djG -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(75,1,1) = {" -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 -abW -abW -abW -abW -abW -abW -abW -abW -abW -afd -dlS -dmo -dmK -cVE -alm -dmK -ahc -alm -dmK -anb -anS -alm -dmK -dqh -alm -dmK -aiy -doD -dmK -dsB -avI -dts -axR -axR -aAG -dvu -aCS -aDX -aAv -aGR -aHS -dxv -avI -cHv -cHz -cHG -cER -cES -aPW -aRb -cHY -dhr -dhx -dht -dhs -dhs -abW -abW -abW -adm -aaa -aaa -aaa -aaa -aaa -abC -aXa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aXA -aXr -aXr -aXM -dif -aZd -aZF -baF -baF -baF -baF -baF -baF -baF -bfO -bgY -bhK -biD -bjw -bkv -ble -bmm -baF -boQ -aYV -brJ -bzp -buB -dcE -bxp -dcS -dcU -bAs -dcJ -dcU -bDP -bzp -bGE -bGD -bJz -bKx -bIc -bIc -bIc -bIc -bQm -bRo -bSk -bSU -bSk -bRo -bUN -bVn -bVS -bWp -bVS -bXu -bWp -bVS -bVn -bZm -bVn -bVn -bVn -bUN -cbC -diE -dix -dix -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdb -cdb -cdI -cea -ceA -ceA -ceA -ceA -ceA -ceA -ceA -ciA -cjg -dCX -ckF -clj -cdI -cmJ -cfv -coz -cpz -cqI -crD -csA -csY -ctN -cuk -cqC -cvI -cwB -cxo -cyj -cyW -cGW -czD -czD -cAG -jfl -czD -cGW -cBQ -cCb -cxo -cSM -djM -djR -djW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(76,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -abW -afd -dlT -dmo -dmL -dne -alm -dnW -doh -alm -doG -doW -anS -alm -dpL -dqi -alm -dqN -cVY -doD -drZ -dsC -avI -dtt -dtR -dtR -aAF -azp -azp -aEg -azp -azp -azp -azp -azp -azp -azp -azp -azp -cHQ -aPW -aQR -cHY -dhr -dhy -dht -dhs -dhs -abW -abW -abW -abW -aaa -aWE -aWE -aWE -aWE -aWE -aXa -aWE -aWE -aWE -aWE -aWE -aaa -aaa -aXn -aXr -aXr -aXr -dif -aZG -bad -baH -baH -bbK -aZF -aYB -dif -baF -baF -baF -baF -baF -baF -baF -baF -bmn -baF -boQ -aYV -brM -bzp -buC -bwf -bxq -dcT -bzn -dde -bBD -bwf -dcJ -bzp -bGF -bIf -bJB -bKx -bLM -bNj -bOg -bPk -bQn -bGG -bGG -bGG -bGG -bGG -bUO -bVp -bVT -bVS -bWL -bVS -bVS -bVT -bVn -bZl -bZJ -bZJ -cau -bUN -div -diE -diB -diB -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdI -ceb -ceB -ceB -ceB -ceB -ceB -ceB -ceB -ciB -cdI -cjY -ckG -clk -cdI -cmJ -cfv -coz -cpA -cqJ -crD -crD -csZ -ctO -cpx -cuB -cvJ -cwC -cxo -cyj -cyW -czD -czD -czD -czD -czD -czD -czD -czD -czD -cCn -cCw -djA -djW -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(77,1,1) = {" -aaa -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 -abW -abW -abW -abW -abW -abW -abW -abW -afd -dlU -dmo -dmM -alm -alm -dnX -alm -alm -doH -doX -dpk -alm -dpM -alm -alm -dqO -alm -doD -dsa -alm -avI -dtu -dtR -dtR -aAF -azp -aCU -aGV -aCY -aEh -aFJ -aHT -cHp -aIX -aIX -aIY -azp -aOF -aPW -aQR -cHY -dhr -dhz -dht -dhs -dhs -abW -abW -aaa -aaa -aaa -aWF -aWF -aWF -aWF -aWF -aXb -aXi -aXi -aXi -aXi -aXi -aaa -aaa -aXn -aXr -aXr -aXr -dif -dig -bae -aXY -aXY -aXY -aZd -baH -lme -baH -bfP -bgZ -bhL -biE -bjx -bkw -blf -bmo -bnL -boS -bqe -brN -bzp -buD -dcF -dcJ -dcU -dcJ -ddf -dcU -ddn -dcU -bzp -bQn -bGG -bGG -bKy -bGG -bGG -bGG -bGG -bQo -diB -dix -dix -dix -diB -bUP -bVq -bVq -bVq -bVq -bVq -bVq -bVq -bVq -bZn -bUN -bUN -bUN -bUN -div -diS -diI -aXn -aaa -aaa -aaa -aaa -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cdI -cGQ -cGR -cGS -cJR -cqK -crE -csB -cta -ctP -cpx -cuP -cvK -cwD -cxo -cyj -cyX -czE -cAf -cAw -cAf -cAf -cAf -cBE -cBR -cCc -cxo -cCx -djA -cTk -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(78,1,1) = {" -aaa -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 -abW -abW -abW -abW -abW -abW -abW -abW -afd -ahH -dmr -ahH -ahH -ahH -agX -agX -dou -agX -doY -dpl -dpB -ahH -dqj -aix -ahH -agX -drG -dsb -agX -avI -dtv -dtT -duu -aAI -azp -aCV -aGV -aCY -aEi -dwX -aHT -aIX -aIX -aIX -aMM -aNK -aOB -aPW -aQR -cHY -dhs -dhA -axT -dhH -dhs -dhr -abW -aaa -aaa -aaa -aWG -aWG -aWG -aWG -aWG -aXc -aWG -aWG -aWG -aWG -aWG -aaa -aaa -aaa -aXn -aXr -aXr -aXr -aXM -dif -dif -dih -aXY -bcw -aZG -aXY -aXY -bac -bha -bhM -biF -bjy -bkx -dih -bmp -dih -boT -aZX -brO -cIZ -buE -btj -bxr -byq -bzo -btj -btj -btj -btj -bES -ddc -bSV -diE -diF -diy -bNk -diy -diG -diH -diD -dix -dix -dix -dix -diA -diy -diy -diy -bWM -diy -diy -bYA -diy -bJC -diy -diy -diy -caM -diw -bCD -dix -aXn -aaa -aad -aaa -aaa -aad -aad -aad -aaa -aaa -aad -aaa -aaa -abC -ccW -ccW -cda -cda -cda -cda -ccW -ccW -ccW -ccW -ccW -cda -cda -ceW -cmJ -cfv -coJ -cJR -cpx -cpx -cpx -cpx -cpx -cpx -cpw -cvL -cwE -cpw -cyk -cyY -cpw -cAg -cAx -cAH -czD -cBk -cBF -cBS -cCd -cxo -cSM -djA -djR -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(79,1,1) = {" -aaa -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 -abW -abW -abW -abW -afd -dlV -dmr -ahH -agX -agX -agX -alr -alr -agX -agX -agX -aml -ahH -ahH -ahH -agX -agX -alr -dsc -agX -avI -avI -avI -avI -avI -azp -aCW -aBz -aEj -aGU -aGU -aIW -dxN -aLM -aLM -aMN -dyM -dyT -aQd -aQZ -cHY -dhs -fdP -dht -dhw -dhs -dhr -abW -aaa -aaa -aaa -abC -abC -abC -abC -abC -did -abC -abC -abC -abC -abC -aaa -aaa -aaa -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXM -aXM -dif -dih -dif -dif -dif -dih -bhN -biG -bjz -bky -dih -bmq -dih -boU -aZX -brP -btk -buF -bZS -bZy -byr -ddb -bAt -dix -diA -ddr -diy -dds -diy -HdC -diw -diE -diz -diE -bPm -diy -diy -diy -diy -diy -bJC -diw -diE -diz -diK -diM -diD -dix -diI -dix -diO -diE -bSV -diz -caN -diB -diB -dix -aXr -aXn -aaa -aaa -aaa -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -ccW -ccW -cfb -cfb -cfb -cfb -cfb -ccW -ccW -ccW -cda -cFN -cmT -cnO -coy -cJD -djy -crF -djN -ctb -ctQ -cpw -cuQ -cvM -cwF -cxp -cyl -cyZ -cpw -cpw -cxo -cxo -cAT -cxo -cxo -cxo -cCe -cxo -cCy -djA -djR -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(80,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abe -aaQ -abC -abC -abC -cXs -cXs -cXs -cXs -cXs -abW -abW -abW -abW -afd -alm -dmt -agX -alr -alr -agX -alr -alr -alr -alr -alr -anc -cVR -aml -agX -alr -alr -alr -dsd -agX -aTz -afd -adP -adP -adP -azp -aAK -dvX -aCY -aFM -aGV -azp -dxO -aDc -aDc -aMO -azp -aOH -aPW -aRd -cHY -dhs -dhs -dht -dhw -dhs -dhr -abW -aaa -aaa -aaa -aWE -aWE -aWE -aWE -aWE -did -aWE -aWE -aWE -aWE -aWE -aaa -aaa -aaa -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXr -aXr -aXr -aXM -dih -dih -dih -dih -dih -dih -bmr -dih -boV -aYz -aYy -dis -buG -dit -bZy -bys -bZy -bAv -diy -diw -diD -diB -dis -bIg -bIg -bIg -bIg -dis -diB -bPn -diB -bRp -diE -bSV -diE -diE -diE -dix -dis -bWq -dis -dix -dix -dix -bYb -bYb -bYb -bYb -bYb -caO -bYb -aXn -aXr -aXr -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -ccW -cfb -cgE -chu -chS -cfb -cfb -cfb -cfb -cfb -cfb -cmJ -cfv -coy -cJC -cqL -crG -cSb -ctc -ctR -cpw -cuR -cvN -crw -cxq -cym -cuh -cpw -djG -djG -cxo -cGc -cBl -cAO -cAO -cCf -cBB -cCz -cxN -djz -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(81,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abf -aaQ -aaQ -aaa -aaa -cFp -cFp -cFp -cFp -cFp -abW -abW -abW -abW -afd -cKZ -dmu -alr -agX -agX -agX -agX -agX -agX -alr -als -dpC -dpN -alr -alr -alr -atx -agX -atx -auz -alm -afd -adP -afE -afE -azp -aAL -aEk -aCY -dwB -TiR -aHV -aDc -aDc -aDc -aDc -aNL -aOB -aPW -aQS -cHY -dhs -dhw -dht -dhw -dhs -dhr -abW -aaa -aaa -aaa -aWF -aWF -aWF -aWF -aWF -did -aXi -aXi -aXi -aXi -aXi -aaa -aaa -aaa -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXr -aXn -aXr -aXr -aXr -aXr -aXn -aXn -aXn -aXn -aXn -dih -bms -bnM -cIJ -cWG -cWG -cWR -buH -dis -dcK -dcV -ddc -div -diz -bCD -diB -diB -dis -bhO -bhO -bhO -bhO -dis -diB -diB -dix -diI -diB -diB -dix -dix -dix -dix -dis -cRb -dis -aXn -bYb -bYb -bYb -bZo -bZK -cad -bZp -caP -bYb -bYb -aXr -aXr -aXn -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -cdJ -ceC -cfb -cfb -cgg -cgF -chv -chT -cfb -cji -cjZ -ckH -cll -cfb -cmU -cnU -coK -cpB -cqM -crH -csC -ctd -djS -cpw -cuS -cvO -cwG -cxr -cuh -cza -cpw -djG -djG -cxo -cAU -cGd -djM -djO -djH -djM -djM -cTi -djG -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(82,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abg -abt -abF -aaQ -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abW -afd -alm -dmv -dmO -agX -agX -dnY -agX -agX -agX -afD -alr -alr -als -alr -alr -alr -agX -agX -agX -alr -aTz -afd -afH -cEG -duR -azp -aAK -dvY -aCY -aFN -aGV -azp -dxP -aDc -aDc -dyA -azp -aOI -aQg -aRe -cIa -aSA -dhB -aTW -aUs -dhs -dhr -adm -abC -abC -abC -aWG -aWG -aWG -aWG -aWG -did -aWG -aWG -aWG -aWG -aWG -abC -abC -abC -abC -aaP -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXn -aXn -bhO -bhO -bhO -bhO -aqU -bnN -cIJ -cWG -cWG -cWR -buI -bwg -bxs -diu -diu -diw -dis -diB -diB -dis -dis -bhO -aaa -aaa -bhO -dis -dis -aXn -aXr -aXr -aXn -aXn -aXr -aXr -aXr -aXr -dis -bWq -dis -aXn -bYb -bYB -bYT -bZp -bZs -bZs -bZp -caQ -cbl -bYb -aXr -aXr -aXn -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdJ -cec -ceD -cfb -cfx -cfb -cgG -chv -chU -ciC -cjj -cjj -cjj -cjj -clV -cmV -cnS -coL -cJC -djz -crI -csD -csD -csD -csD -cuT -cpw -cwH -cxs -cyn -cuT -cuT -cuT -csD -csD -csD -djz -cjv -cTb -dkb -djE -djG -djW -djW -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(83,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abh -abu -abG -aaQ -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abW -afd -aTz -alm -alr -agX -agX -agX -agX -agX -agX -alr -alr -alr -alr -dqk -dqz -aTz -drf -agX -drf -cKZ -aTz -afd -afE -dfd -aAJ -azp -aDa -aGV -aCY -dwC -aHW -aIZ -aLP -aLP -aLP -aMP -aNM -aOJ -aQh -cMh -cIb -aSB -dhw -dhv -dhs -dhs -dhr -abW -aaa -aaa -aaa -abC -abC -abC -abC -abC -did -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXr -aXr -aXr -aXr -aXr -aXn -bhO -aXA -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWR -buJ -dis -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -bhO -aaa -aaa -aaa -aaa -bhO -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -bhO -bhO -bhO -aXn -bYb -bYC -bYb -bZq -bZK -PsJ -bYB -cav -cbm -bYb -aXr -aXr -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -cdK -ced -ceE -cfc -cfy -cfc -cgH -chw -cgH -cgH -cgH -YWC -cgH -cgH -clW -cmW -cfv -coy -cJC -cqN -crJ -csD -cte -ctS -cul -cuU -cvP -cwI -cxt -cwM -czb -czF -cte -ctS -cul -csD -djG -dkf -djE -djE -dke -djG -cda -cda -cda -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(84,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaR -abi -abt -abH -aaQ -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abW -afd -afd -aTz -cKZ -aTz -alr -cKZ -alm -dox -alr -alr -dpm -dpD -dpO -cKZ -cKZ -aTz -aTz -alm -aTz -aTz -afd -afd -afH -dfd -dgl -azp -aDb -aEm -aCY -aGW -dwY -aHT -aIX -aIX -aIX -aDc -aNK -aOK -aPW -cMh -cHY -dht -dhs -dhs -dhs -dhs -abW -abW -aaa -aaa -aaa -aWE -aWE -aWE -aWE -aWE -did -aWE -aWE -aWE -aWE -aWE -aaa -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aXn -aaa -abC -aaa -aaa -aaa -aqU -cWA -cWC -cWG -cWG -dcw -dcA -aaa -aXn -aXn -aaa -aaa -aaa -aaP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -aXn -aXn -bhO -bhO -aXn -aXn -aXn -aXn -aXn -bhO -bhO -bhO -aXr -bYb -bYb -bYU -bZr -bZL -cae -cav -bZs -cbn -bYb -aXn -aXn -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -cdL -cee -ceF -cfb -cfz -cfb -cgI -chv -chv -ciD -chv -cka -ckI -ckI -clX -cmX -cfv -coM -cJC -djA -djH -csD -ctf -ctT -cul -cuV -cvQ -cwJ -cxu -cwN -czc -czG -cte -ctS -cAI -csD -djz -djH -djz -djz -djz -djz -cda -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(85,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaR -abi -abu -abI -aaQ -aaQ -aaQ -cXs -cXs -cXs -cXs -cXs -cXs -cXs -adm -abW -afd -afd -aTz -aTz -aTz -aTz -aTz -cKZ -doK -alt -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afd -afE -dtU -duv -afH -azp -aDc -dvZ -aCY -aEn -dwZ -aHT -aIX -aIX -aIX -dyB -azp -aOL -aPW -cMh -cHY -aSC -dhs -dhs -abW -abW -abW -abW -aaa -aaa -aaa -aWF -aWF -aWF -aWF -aWF -did -aXi -aXi -aXi -aXi -aXi -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXA -aXn -aXn -aXn -aXn -aXn -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -bhO -bhO -bhO -bhO -bhO -bhO -aXn -aXn -aXn -aXn -bhO -bhO -bhO -aXr -aXr -aXr -bYb -bZs -bZs -bZs -bZs -bYB -bYb -bYb -aXn -aXn -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cdL -ceG -cfb -cfb -cgg -cgJ -chv -chV -cfb -cjk -ckb -ckJ -clm -cfb -cmY -cfv -coy -cJC -djA -djI -csD -ctg -ctU -cum -cuW -cvR -cwK -cxv -cyo -czd -czH -cAh -ctU -cAJ -csD -djz -cSZ -dkc -cSS -dkg -djz -cda -ccW -ccW -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(86,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaR -abi -abu -abJ -abX -ack -abX -dkG -dkG -dkG -dkG -dkG -dkG -dkG -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 -afH -azp -azp -azp -azp -azp -azp -azp -azp -azp -azp -azp -azp -aOM -aPW -cMh -cIc -aRW -cIg -abW -abW -abW -abW -abW -aaa -aaa -aaa -aWG -aWG -aWG -aWG -aWG -did -aWG -aWG -aWG -aWG -aWG -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aXn -aXn -aXn -aXn -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -cFp -aaa -aaa -abC -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aXA -bhO -bhO -bhO -bhO -bhO -aXn -aXA -aaa -aaa -abC -bhO -aXr -aXr -aXr -aXr -bYb -bZt -bZM -bZs -caw -bYb -bYb -aXn -aXn -bhO -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -ccW -ccW -cfb -cgK -chx -chW -cfb -cfb -cfb -cfb -cfb -cfb -cmZ -cfv -coy -cJC -djB -djJ -csD -csD -csD -csD -csD -csD -cwL -cGV -cyp -csD -csD -csD -csD -csD -csD -djG -djH -djz -djA -cTd -djz -cda -ccW -cdb -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(87,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abj -abv -abK -abF -aaQ -aaQ -abC -abC -abC -abC -abC -abC -abC -cCE -abC -mfY -mfY -nJQ -nJQ -nJQ -adP -adP -adP -adP -adP -adP -adP -adP -afE -alx -deQ -arx -afa -afa -aQK -avO -cKU -axU -azq -aAO -aBG -aDd -aEo -aAO -aAO -aAO -aJa -aAO -aAO -aBG -cMc -aNN -aON -aQi -cMi -aRW -aSD -cIh -abW -abW -abW -abW -abW -aaa -aaa -aaa -abC -abC -abC -abC -abC -did -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -bhO -aXn -aXn -aXr -aXr -bYb -bZu -bZu -bZu -bZu -bYb -aXn -aXn -aXn -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -ccW -ccW -cfb -cfb -cfb -cfb -cfb -ccW -ccW -ccW -ceW -clY -cmJ -cfv -coy -cJC -djA -djH -csD -cte -ctS -cul -cuX -cvS -cwM -cxw -cwM -cze -czI -cte -ctS -cul -csD -djD -djH -djz -cTc -cTe -djz -ccW -ccW -ccW -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(88,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -abk -abw -abL -abY -acl -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -cCE -abC -wil -UFv -TaH -kNu -mfY -adP -adP -adP -adP -adP -adP -adP -afH -deN -ahR -aQK -anV -amo -cKX -auC -cKO -afE -axV -azr -deN -deN -cLl -dfS -cKI -cKD -dgi -cLP -cKF -deN -deN -dgA -dfz -aOK -aQj -cMh -aRV -aSE -cIc -aRW -aRW -cIg -abW -abW -aaa -aaa -aaa -aWE -aWE -aWE -aWE -aWE -aXa -aWE -aWE -aWE -aWE -aWE -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -aXn -aXn -aXn -aXr -bhO -bhO -bhO -bhO -aXn -aXn -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cda -cda -ccW -ccW -ccW -ccW -ccW -ccW -ccW -ccW -cda -ceW -clZ -cmJ -cfv -coy -cJS -cqO -djH -csD -ctf -ctV -cul -cuY -cvQ -cwN -cxu -cwN -czc -czJ -cte -ctS -cAI -csD -djE -djH -djz -djz -djz -djz -cda -ccW -ccW -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(89,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaQ -aaQ -aaQ -aaQ -aaQ -aaQ -abC -abC -abC -abC -abC -abC -abC -abC -cCE -abC -mfY -mfY -peP -HUf -mfY -adP -adP -deO -deO -deO -deO -afE -ahR -aQK -aiF -cKM -cKU -cKT -afH -ahf -deN -afE -axW -azs -aAP -aAP -aAP -aAP -cGk -cGk -cGk -cGk -cGk -aFR -aFR -aFR -aFR -aOO -aQj -cMh -aRV -aSF -aTA -aTX -aUt -cIh -abW -abW -aaa -aaa -aaa -aWF -aWF -aWF -aWF -aWF -aXd -aXi -aXi -aXi -aXi -aXi -abC -abC -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cWA -cWC -cWG -cWH -btl -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aad -aad -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -aXn -aXn -aXn -bhO -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cda -cda -ccW -cfA -cfA -cfA -ccW -ccW -ccW -cda -cda -ceW -cma -cmJ -cnR -coL -cJC -cqP -djH -csD -ctg -ctU -cum -cuZ -cvR -cwM -cxx -cwM -czd -czK -cAh -ctU -cAJ -csD -djE -djH -cip -djz -cda -cda -cda -ccW -ccW -cda -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(90,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cCE -mfY -mfY -mfY -nJQ -HUf -mfY -adP -adP -adP -adP -deO -deO -adP -ahf -cKM -cKS -cKT -afH -afE -adP -ahf -deN -afE -axX -azt -aAQ -aBH -aDe -aEp -aFR -aGY -aHX -aJb -aFR -aKI -aFR -aMS -aFR -aOK -aQj -cMh -aRV -aSG -aSF -aTY -aUu -cIh -abW -abW -aaa -aaa -aaa -aWG -aWG -aWG -aWG -aWG -aXa -aWG -aWG -aWG -aWG -aWG -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aad -aaa -abC -aaa -aag -aaa -aad -aac -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -cda -cda -cfA -cfA -cfA -cfA -cfA -cfA -cfA -cfA -cda -ceW -ceW -cnb -cfv -coy -cJC -cRW -djH -csD -csD -csD -csD -csD -csD -cwO -cxy -cyq -csD -csD -csD -csD -csD -csD -dkd -djH -djF -djR -djz -djz -djR -djR -djz -cda -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(91,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cCF -Esk -zRh -Esk -Nbq -kQd -nJQ -adP -adP -adP -adP -deO -deO -afE -anU -cKN -adP -adP -adP -adP -adP -aOq -cLc -afH -axY -azu -cLg -dfq -dfq -aEq -aFR -aFR -aHY -aFR -aFR -aKJ -aFR -aMT -aFR -aOK -aQj -cMh -aRV -aSH -aSF -aSF -aUv -cIh -abW -abW -aVN -aVN -aaa -aaa -abC -aaa -aaa -aaa -aXe -aaa -aaa -aaa -abC -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aad -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -cda -cda -cfA -cfA -cgL -chy -cfA -cfA -cfA -cfA -cfA -cfA -cmb -cmJ -cfv -coy -cJC -cRX -chb -csD -cte -ctS -cul -cva -cvT -cwM -cxz -cwM -czf -czL -cte -ctS -cul -csD -cRW -djH -djE -djz -cCo -djA -cCP -dkk -djz -cda -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(92,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -abC -nJQ -mfY -mfY -mfY -mUO -nJQ -adP -adP -adP -adP -deO -deO -afE -cKL -cKN -afH -aqC -aqC -aqC -aqC -auD -dfz -aqC -afH -afH -aAS -deN -dfq -aEr -aFR -aGZ -aGZ -VdI -aGZ -aKK -aGZ -aGZ -aFR -aOK -aQj -cMh -aRV -aSI -MXP -cGp -aUw -cIh -abW -abE -aaa -aaa -aVN -aaa -abC -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -aaa -aVN -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cda -cda -cda -cfA -cfA -cgM -chz -chX -ciE -cjl -cfA -cfA -cfA -cfA -dzs -cfv -coN -cJC -djC -djH -csD -ctf -ctS -cul -cvb -cvQ -cwN -cxu -cwN -czc -czM -cte -ctV -cAI -csD -cBm -djH -djU -cCg -cqO -djA -djA -cDf -djR -cda -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(93,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -EDx -dZe -nJQ -adP -adP -adP -adP -adP -afH -afH -ahh -cKN -deO -aqC -ary -asu -atA -auE -avP -awX -axZ -aqC -cLh -cLi -cLi -aEs -aFR -aGZ -aHZ -aHZ -aJZ -aKL -aGZ -aMU -aFR -aOK -aQk -cMj -aRV -aSJ -aSF -aSF -aUw -aUX -abE -abE -aaa -aaa -aaa -aVN -aVN -aaa -aaa -aaa -abC -aaa -aaa -aaa -aVN -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aac -aaa -aaa -aaa -abC -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aad -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -cda -cda -cda -cfA -cfA -cgN -chA -chY -ciF -ciF -ckc -ckK -cln -ckK -cmV -cnS -coO -cJC -djD -djH -csD -ctg -ctU -cum -cvc -cvR -GUQ -cxt -cwM -czd -czN -cAh -ctU -cAJ -csD -djE -djH -cBA -djR -cCp -cCA -dkh -dki -djz -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(94,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -vls -VSX -mfY -mfY -mfY -adP -deO -adP -afH -ahR -aiF -cKN -adP -aqD -arz -cGg -asv -asv -asy -awY -asy -aqC -aqC -aqC -aqC -aqD -aqC -aqC -aFR -aFR -aKa -aKM -aLR -aFR -aFR -aOK -aQj -cMh -aRV -aSK -aSF -aSF -aUx -aUX -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aVN -aVN -aVN -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cWA -cWD -cWG -cWG -btl -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -ccW -cda -cda -cda -cfA -cfA -cgO -chA -chZ -ciG -uRf -ckd -ckL -clo -ckL -cnc -cfv -coP -cJC -djE -djH -csD -csD -csD -csD -csD -csD -cwP -cxt -cyr -csD -csD -csD -csD -csD -csD -djD -djH -djE -djz -djz -djA -djA -djA -cDz -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(95,1,1) = {" -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Kae -URO -khr -zlm -ecv -FZD -doz -ast -cKW -cKW -and -dpP -dqm -aNx -aqC -cEC -asw -atB -auF -asy -auE -avP -azv -avP -aBJ -aDf -aEt -aFS -aqC -aIa -aJc -aKb -aKN -aJd -aMV -aqC -aOP -aQl -cMk -aRX -aSL -aTB -aSF -aUy -aUX -abE -abE -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 -aaa -aaa -aab -aab -aab -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -ccW -ccW -ccW -ccW -cfA -cfA -cgP -chA -cia -ciH -ciH -cke -ckM -clp -ckM -cmR -cfv -coP -cJC -djE -djK -csD -cte -ctS -cul -cvd -cvU -cwM -cxt -cwM -czg -czO -cte -ctS -cul -csD -djE -djH -djX -djW -djz -cCB -cCR -cDh -cDz -cdb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(96,1,1) = {" -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 -aab -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Kae -QbG -vtB -NUL -paW -fTn -akk -afa -akK -afa -afa -anW -aoT -apK -aqC -arz -asx -atC -auG -avQ -asy -asy -asy -asv -awY -aDg -aEt -aFT -aqC -aIa -aJd -aKc -aKO -aLS -aMW -aqC -aOQ -aQm -aRg -aRY -aSM -aTC -aTZ -aUz -cIh -abE -aaa -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 -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aad -aaa -abC -aaa -aaa -aaa -aaa -aaa -ddx -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -ccW -cda -ccW -ccW -cfA -cfA -cgM -chz -cib -ciE -cjm -cfA -cfA -cfA -cfA -cne -cfv -coP -cJC -djD -djH -csD -ctf -ctW -cul -cve -cvQ -cwN -cxA -cwN -czc -czP -cte -ctS -cAI -csD -djE -djH -cjH -djz -djR -djR -djR -djz -djz -cda -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(97,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Kae -kfu -Qqu -IMP -pxP -mfY -afH -afH -adP -afE -alw -aeJ -dfd -cKD -aqC -arA -asv -asv -asv -asy -awZ -cGg -azw -asx -kdF -aDh -aEt -aFS -aqC -aIa -aJd -aKc -aKN -aJd -aMW -aqC -aOR -aQj -cMl -cId -aRW -aRW -aRW -aRW -cIi -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWG -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aXR -ddy -aXR -aXD -aYg -aXD -aXD -aXD -aaa -aaa -aaa -abC -aaa -aaa -abC -aqU -abC -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 -ccW -ccW -cda -cda -cfA -cfA -cgQ -chB -cfA -cfA -cfA -cfA -cfA -cfA -cmb -cnf -cfv -coP -cJC -djC -djH -csD -ctg -ctU -cum -cvf -cvR -cwQ -cxB -cwM -czd -czQ -cAh -ctU -cAJ -csD -dke -djH -cip -djz -cda -cda -ccW -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(98,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Kae -tUD -NUL -kUG -KQP -nJQ -adP -adP -afH -afc -amo -anX -cKO -adP -aqC -arB -asu -asu -asu -asu -asu -aya -azx -aAU -aBK -aDh -aEt -cLw -aqC -aIa -aJd -aKc -aKN -aJd -aMX -aqC -dko -aQj -cMh -cHY -acH -acH -acH -acH -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cWA -cWD -cWG -cWI -btl -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaP -aaa -aaa -aXD -aXD -aXR -ddy -aXR -aXR -aXR -aXD -aXD -aXD -aXD -aXD -aXD -aYg -aXR -aXR -aXD -aXD -abC -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 -ccW -ccW -cda -cda -cfA -cfA -cfA -cfA -cfA -cfA -cfA -cfA -ccW -ccW -ceW -cmJ -cfv -coP -cJC -djE -djH -csD -csD -csD -csD -csD -cvV -cwR -cwR -cwR -cvV -csD -csD -csD -csD -csD -djG -djH -djE -djW -cda -cda -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(99,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aac -aac -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -Kae -ixb -rHM -BMW -nJQ -nJQ -adP -adP -afH -lqU -amp -afE -adP -adP -aqC -arC -asy -atD -auH -avR -avR -ayb -azy -asy -awY -aDi -aqC -aqC -aqC -aqC -aqC -aKc -aKN -aqC -aqC -aqC -aOS -aQj -cMh -cHY -acH -acH -acH -acH -abW -abW -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aab -aaa -aab -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -cFp -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aXR -aXR -aXR -aXR -aXR -ddy -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXD -aXD -aXD -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cda -ccW -ccW -ccW -ccW -ccW -cfA -cfA -cfA -ccW -ccW -ccW -ccW -ccW -ccW -cgA -cng -cnO -coP -cJT -djE -djL -cgT -djM -djT -djG -cvg -cvW -cvX -cvX -cvX -czh -czR -cAi -cAy -cvg -cAV -cBn -dkb -djE -djG -cda -cda -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(100,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aac -aac -aac -aac -aac -aac -aac -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -EKN -ssn -qia -nJQ -adP -adP -adP -adP -afc -amr -adP -aoV -aoV -aoV -arD -asz -atE -aoV -aoV -cEE -ayc -azz -aAV -aBL -aDj -aEu -aEu -aHa -aIb -aJe -aDj -aKP -aEu -aEu -aNO -aOT -aQn -cMh -cHY -acH -acH -acH -acH -aSN -aSN -aSN -aSN -aSN -aSN -aSN -abC -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aaa -aXD -aXR -aXR -aXR -aYf -aYf -aYf -aXR -aXR -ddy -aXR -aXR -aXR -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aXR -aXD -aXD -aXD -aXD -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -ccW -ccW -ccW -ccW -cda -cda -cda -cda -ccW -ciI -ciI -ciI -ciI -ciI -ceW -cnh -cnP -coQ -cJC -djF -cRY -djH -djA -djM -djU -cvh -cvX -cwS -cvX -cwS -cvX -czS -cAi -cAz -cAK -cAW -cBo -djE -cBA -djz -ccW -ccW -ccW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(101,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aac -aad -aac -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -yRS -oVZ -ssn -mfY -adP -adP -adP -afE -afc -amp -afH -aoV -apM -aqE -arE -asA -atF -aqE -avS -aoV -ayd -azA -aAW -avR -aDk -avR -avR -aHb -aIc -avR -aDk -avR -avR -avR -aNP -aOU -aQo -cMj -aRZ -aSN -aSN -aSN -aSN -aSN -aVm -aVn -aVO -aWg -aWu -aSN -abC -aaa -aaa -aaa -aaa -aad -aab -aab -aab -aaa -aaa -aaa -aaa -aab -aac -aac -aad -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aaa -aXR -aXR -bxJ -bxJ -bzq -bzq -bzq -bzq -bzq -ddz -bxJ -bxJ -bwz -cGH -bwz -bzq -aYf -aYf -aXR -aXR -aXR -aXR -bwz -bWs -bwz -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -cda -ccW -ceH -ceH -ceH -ceH -ceH -ccW -ccW -ciI -cjn -ckf -ckN -clq -cmc -cni -cfv -coP -cJC -djG -djM -djL -djP -ctX -djG -cvg -cvY -cwT -cxC -cwT -czi -czR -cAi -cAA -cvg -cjv -dkb -djE -djE -djz -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(102,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aad -aad -aab -aab -aad -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -mfY -uNO -mfY -mfY -adP -adP -adP -alu -deQ -amp -afH -aoV -apN -aqF -arF -asA -atG -auI -avT -axa -axa -axa -aAX -aBM -aDl -axa -axa -axa -awY -asy -aKd -asy -asy -asy -aNQ -aOV -aQl -cMk -aSa -aSO -aTD -aUa -aUA -aUY -cEX -aUY -aUY -aUY -aWv -aSN -abC -aaa -aaa -aaa -aaa -aac -aac -aab -aab -aaa -aaa -aaa -aab -aab -aac -aad -aad -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aaa -aXR -bxJ -bwz -bwz -bAy -cGH -bwz -bzq -bwz -ddA -cGH -bwz -bvg -cPt -bxK -bxJ -cGH -bwz -bxJ -bzq -aYf -aXR -cGH -bVa -bwz -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -cda -ccW -ceH -cfd -cfB -cgh -ceH -cda -ccW -ciI -cjo -ckg -Goz -clr -cmd -cnj -cnU -cXl -cJC -djz -djB -djO -cSc -djG -djz -cvg -cvg -cvg -cvg -cvg -cvg -cvg -cvg -cvg -cvg -djH -djE -djE -djT -djz -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(103,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aac -aac -aac -aad -aab -aab -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -JZR -mfY -adP -adP -adP -adP -alv -amo -ane -adP -aoV -aoV -aoV -arF -asA -atH -aoV -aoV -axa -aye -azB -aAY -aBN -aDm -azB -aFU -axa -aId -aJf -aKe -aJf -aLT -cEQ -aqC -aOW -aQp -cMm -aSb -aSP -aTE -aUb -aUB -aUZ -aVn -aUZ -aVP -aWh -aWw -aSN -abC -aaa -aaa -aaa -aaa -aaa -aad -aac -aab -aad -aab -aab -aad -aac -aac -aab -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cWA -cWC -cWG -cWK -btl -aqU -aaa -aaa -aXD -aXR -bxJ -bwz -bCE -bwx -cPS -bwz -cGH -cGH -ddB -cPo -cPM -cQA -bXE -bXE -bXE -cQT -cQV -bTy -bwz -bxJ -bwz -bwz -cRc -cGH -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -ccW -ceH -cfe -cfB -cgi -ceH -cda -ccW -ciI -cjp -ckh -ckP -cls -cmc -cnk -cfv -coR -cJC -djz -djA -djO -cSd -djP -djz -djz -djG -djG -cxD -djG -djG -djz -djG -djz -cjv -dkb -djD -djz -djz -djz -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(104,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -nJQ -HUf -nJQ -adP -adP -adP -adP -cKG -amp -deO -deO -aoV -apM -aqG -arF -SvE -atH -aqE -avS -axa -ayf -azC -aAZ -pGA -aDn -aEv -aFV -axa -aIe -aIf -aKf -aIf -aLU -aqC -aNR -aOR -aQj -aRh -aSc -aSQ -aTF -aUc -aUC -aVa -cEY -aUZ -aUZ -aUZ -dzk -aSN -abC -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aab -aab -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aXR -bxJ -bxJ -bwx -bBF -cUd -cUd -cUe -cUf -cUg -ddC -cUi -cUi -cUi -cUj -cUi -cUi -cUj -cUi -cUi -cUi -cUi -cUj -cUj -bWt -bzq -bzq -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aac -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ccW -ceH -cff -cfC -cgj -ceH -cda -ccW -ciI -cjq -cjq -ciI -clt -ciI -cfu -cfv -cXm -cJC -djz -cRZ -djG -djD -djL -djV -djV -djV -djY -cxE -djV -cSA -djz -dka -djV -dkb -djE -djW -djW -cda -cda -cda -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(105,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -MZA -HUf -nJQ -adP -adP -adP -afE -alw -amq -afE -deO -aoV -apO -aqH -arG -asA -atI -auJ -avU -axa -axa -axa -aAZ -aBN -aDo -axa -axa -axa -cEK -aIf -aIf -aIf -aIf -aqC -aNS -aOR -aQj -aQS -aRZ -aSN -aSN -aSN -aSN -aSN -aVo -aVn -aVQ -aVn -aWu -aWH -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aaa -aXR -bzq -cGH -bAz -bBG -bDR -bDR -bDR -bDR -bDR -bDU -bDR -bxJ -cGH -bwz -bxJ -cQR -cQU -cQW -bXE -bXE -cQZ -cQT -bXE -cUl -cUn -bxJ -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ccW -ceH -ceH -cfD -qOD -ceH -ceH -ccW -ccW -abC -abC -ciI -clu -ciI -cfu -cfv -cXm -cJC -ccW -cSa -djz -djQ -djE -djE -djE -djX -djE -djQ -djE -djL -djZ -dkb -djE -djE -djQ -djz -cda -cda -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(106,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -PUG -NYl -nJQ -adP -adP -adP -deO -alx -amr -afH -deO -aoV -aoV -aoV -arH -asA -atI -aoV -aoV -axa -aye -azB -aAZ -aBN -aDo -azB -aFW -axa -aIg -aJg -aKg -aKQ -aLV -aqC -aNT -aOR -aQj -aQR -cHY -acH -acH -acH -acH -aSN -aSN -aSN -aSN -aSN -aSN -aSN -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -abC -abC -abC -abC -abC -abC -aaa -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aaa -aXR -aXR -bzq -bwz -bwx -bBG -bDR -bET -bET -bIh -bJD -ddD -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -bLN -cPM -cUo -bwz -bxJ -bzq -cGH -bwz -bxJ -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cda -ceH -cfE -cgl -cgR -ceH -cda -ccW -aaa -aaa -ciI -clv -ciI -cnl -cfv -coS -cJU -ccW -ccW -djz -djR -djz -djF -djE -djX -djE -djz -djE -djM -djM -djE -djF -djz -djz -djz -cda -cda -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(107,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -kxH -nJQ -nJQ -adP -adP -adP -afH -aly -ams -anf -adP -aoV -apP -aqE -arG -asA -atI -aqE -avS -axa -ayg -azD -aBa -aBN -aDp -aEw -aFX -axa -aqC -aqC -aqD -aqC -aqC -aqC -aqC -aOX -cGn -aRi -cHY -acH -acH -abE -abE -abE -abC -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -abC -abC -aXB -aXB -aXB -aXB -aXC -aXD -aYg -aXD -aaa -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aXR -aXR -aXR -bxJ -bxJ -bwx -cUc -bDR -bEU -bGH -bIi -bJE -ddE -bLN -bNl -bOh -bNl -bLN -bRq -bSm -bRq -bLN -bUj -bUQ -bUj -bLN -bXE -cUl -cUn -cGH -bwz -bXE -bZv -bwz -bwz -bwz -abC -abC -abC -abC -abC -abC -aaa -aaa -aab -aad -aaa -aaa -aaa -aaa -abC -abC -abC -abC -abC -ceH -ceH -ceH -cgm -cgS -ceH -cda -ccW -aaa -aaa -aaa -aqU -ceW -ceX -ceY -coT -ceW -ccW -ccW -djG -cda -djz -djW -djW -djz -djz -djz -djG -cSB -djz -djz -djz -djz -cda -cda -cda -cda -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(108,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -mfY -rsx -mfY -abW -abW -adP -adP -afH -deO -afc -amp -adP -aoV -apQ -aqI -arI -asB -atI -auK -avV -axa -axa -axa -aBb -aBN -aDp -axa -axa -axa -abW -abW -abW -abW -abW -abW -aKp -aOR -aQj -aQR -cHY -acH -abE -abE -abE -aVb -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -abC -abC -aXB -aXB -aXB -aZh -aXP -aYa -bfQ -cEZ -aXR -aXR -aXD -aXD -aaa -aqU -cWA -cWC -cWG -cWJ -btl -aqU -aXR -aXR -aYf -bxJ -bxJ -bBE -bBG -bDR -bEV -bEV -bIi -bJF -ddF -bLN -bNl -bOi -bNl -bLN -bRq -bSn -bRq -bLN -bUj -bUR -bUj -bLN -bwz -cPo -cUl -cUn -bwz -bXE -cPF -bZN -bIJ -bZN -aXD -aqU -aqU -aqU -abC -abC -abC -aaa -aac -aad -aac -aaa -aaa -abC -abC -aqU -aqU -aqU -aqU -ceI -cfg -cfF -cgk -ceH -ceH -cda -ccW -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -ccW -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -ccW -ccW -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(109,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -adP -deO -afH -afc -amp -afH -aoV -aoV -aoV -aoV -asC -aoV -aoV -aoV -axa -aye -azB -aBa -aBN -aDp -azB -aFU -aHc -aHc -aHc -aHc -aHc -aHc -abW -aKp -aOR -aQj -aRd -cHY -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -abC -aXB -aXB -aXB -bbl -aZI -bcx -bdj -baI -beR -bfR -aXC -aXR -aXR -aXD -aXD -aaa -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aXD -aXR -aYf -bxJ -cGH -QTJ -bBG -bDR -bEW -bEW -bIi -bJG -ddG -bLN -bNm -bOj -bPo -bLN -bRr -bSo -bSW -bLN -bUk -bUS -bVr -bLN -bxJ -cQR -cRg -cUp -cUg -cUh -cUn -cGH -cGH -bwz -aYg -abC -abC -abC -aaa -aaa -aaa -aaa -aac -aac -aad -aaa -aaa -aaa -aaa -abC -abC -abC -cef -ceH -ceH -ceH -ceH -ceH -cda -cda -ccW -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -ccW -ccW -ccW -cda -cda -cda -cda -cda -cda -cda -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -ccW -ccW -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(110,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -acH -acH -deO -afE -aws -amp -afE -adP -cKD -aqJ -cKF -dfr -atJ -anT -avW -axa -ayh -azE -aBc -aBO -aDp -aEx -aFY -aHc -aIh -aJh -aKh -aKR -aHc -abW -aKp -aOY -aQj -aQR -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aXB -aXP -aYa -aYo -aZH -aZH -aYa -bdk -bea -cGr -bfS -aXC -aXR -aXR -aXD -aXD -aXD -aqU -bnN -cIJ -cWG -cWJ -cWS -aqU -aXD -aXR -aYf -bzq -bAx -bBF -bBH -bDR -bDR -bDR -bIj -bDR -bDU -bLN -bNn -bOk -bPp -bLN -bNn -bOk -bPp -bLN -bUl -bOk -bVs -bLN -bDR -cGH -cGH -bwz -cGH -cPo -cUt -bwz -bwz -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aad -aaa -aac -aac -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ccW -ccW -ccW -ccW -ccW -ccW -ccW -ccW -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -ccW -ccW -cda -cda -cda -cda -cda -cda -cda -cda -cda -cda -cda -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(111,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -acH -acH -acH -afH -afE -ang -anY -aoW -anY -anY -anY -asD -atK -cKU -avX -afH -axa -axa -axa -aBP -aDq -aDq -aDq -aHc -aIi -gIL -aKi -aKS -aHc -abW -aKp -aOZ -aQj -aQR -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aYl -aYD -aZe -aYH -aYo -baI -aYo -aYo -aYo -bdl -beb -beb -bfT -aXC -aYf -aXR -aXR -aXR -aXD -bmt -bnO -cIJ -cWG -cWJ -btm -buK -aXD -aXR -bxJ -bwz -bxL -cPL -bxJ -bDR -bEX -bGI -bGJ -ddu -ddH -bLO -bNo -bLP -bPq -bQq -bNo -bLP -bPq -bTz -bVW -bLP -bVt -bVU -bDR -bXE -cGL -bXE -bwz -bXE -cUt -cRf -bxJ -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -ccW -ccW -ccW -ccW -ccW -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(112,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -acH -acH -acH -acH -afH -afH -anh -afc -afc -afc -alx -afc -aqf -atL -deN -avY -aQK -aQK -aQK -aQK -aQK -aDr -aEy -aFZ -aHd -aIj -aJj -aKj -aKT -aHc -abW -aKp -cHR -aQj -aQR -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aYl -aYa -aZf -aZf -aYo -aYo -aYF -aYo -aYo -bdl -beb -beb -bfU -cFa -aYf -aYf -aYf -aYf -aYJ -bmu -aYJ -cIK -aYM -brQ -aYJ -buL -aYJ -aXR -bxJ -cGH -bwx -cUa -bCF -bDS -bEY -bGK -bGK -bGK -bKz -ddI -ddJ -ddM -bPr -ddO -ddQ -ddV -dea -deh -deq -dev -bVu -bVW -bDR -cGJ -bXE -cPF -cGN -cQd -cUt -cRm -bwz -aYf -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXj -cXi -cXn -cXh -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -ccW -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 -aaa -aaa -aaa -"} -(113,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -abW -acH -acH -acH -abW -adP -adP -ani -anZ -aoX -apR -deQ -arJ -arJ -arJ -arJ -arJ -arJ -ayi -ayi -ayi -ayi -ayi -aEz -aGa -aHd -aIk -aJk -aHd -aHd -aHc -aHd -aHd -aPa -aQk -aQZ -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aYE -aZf -aZf -aYo -aXP -aYE -aYa -aYo -cGq -bec -bec -cFh -aXC -aYf -aYf -aYf -aYf -aYJ -bmv -cIs -cIL -aZm -cWL -aYJ -cFs -aYJ -aXR -bxJ -bxJ -cPE -cUb -bCG -bDT -bEZ -bGL -bGL -ddv -bKA -bLQ -bNp -bOl -bPs -bTA -bNp -bNp -bSY -bTA -bSY -bUT -bVv -deE -bDR -cGK -cGM -bXE -cGH -bxJ -cUt -cRn -cRe -aYf -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -ccW -ccW -cda -cda -cda -cda -cda -ccW -ccW -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 -aaa -aaa -aaa -"} -(114,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -abW -acH -acH -acH -akl -akl -akl -akl -akl -akl -akl -aqf -arJ -asE -atM -auL -avZ -asI -ayj -azF -aBd -aBQ -ayn -aEA -aGb -aHd -aIl -aJl -cKp -aKU -aHc -aMY -aNU -aPb -aQj -aQR -aSd -abE -abE -abE -abE -adm -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aXB -aYa -aYE -aZg -aZh -aYo -aYF -aYD -aYa -aYo -bdm -aYo -aXP -aYE -aXC -aYf -aYJ -aYJ -aYJ -aYJ -bmw -cIz -aZl -aZm -cWL -aYJ -buL -aYJ -aYJ -aYJ -aYJ -bAz -bBG -bCH -bDU -bFa -bGJ -bGJ -bJH -bKB -bQx -ddK -bOm -bPt -bQs -bQs -bQs -bSZ -bQs -bUZ -bUq -bVw -bVW -bLN -bLN -bLN -bLN -bLN -bwz -cUt -bxK -cGH -aYf -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(115,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -abW -acH -acH -acH -akl -alz -amt -anj -amw -aoY -akl -deN -arJ -asF -atN -hOb -awa -asI -ayk -azG -gXD -aBR -ayn -aEB -aGc -aHd -aIm -aJm -aKl -aKV -aHc -cMd -aNV -aPb -aQj -aQR -aSd -abE -abE -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aYm -aYd -aZh -aZg -aXP -aYo -aYa -aYa -aYo -bdn -aYE -beS -cFi -aXC -aYf -aYJ -bao -bao -blg -bmx -cIz -aZl -aZm -brR -aYJ -buN -bwh -baN -byt -aYJ -bAA -bBG -bxJ -bDU -bFb -bGM -bIk -bJI -bGJ -bGJ -bGJ -bOn -ddK -ddK -ddR -ddW -deb -dei -bUo -bUq -bVx -bVV -bWu -bWN -bXv -bXv -bLN -cPt -cUt -cUy -cUy -cUz -cUz -cUy -cUy -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -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 -"} -(116,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -abW -akl -alA -amu -ank -aoa -aoZ -apS -deN -arJ -asG -atO -auM -awb -asI -ayl -azH -aBe -aBS -ayn -aEC -aGd -aHd -aIn -aJn -aKk -aKW -cEN -aMZ -aNV -aPb -aQj -aQR -aSd -abE -abE -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aYn -aYF -aYo -aYo -aXP -aXP -aXP -hAB -aYo -bdo -aXC -aXC -aXC -aXC -aYf -aYJ -baN -baN -blh -baN -cIA -boW -aZm -brS -aYJ -buN -baN -baN -byu -bzr -bAB -bBG -bwz -bDU -bFc -ddt -bIl -bJI -bKC -bGJ -bGJ -bGJ -bNq -bGJ -bQt -ddX -bPu -dej -def -bUq -bVy -bVW -bOk -bWO -bXw -bYc -bLN -cPo -cUt -cUz -cUE -cUK -cUP -cUV -cUy -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -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 -"} -(117,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -abW -akl -alB -amv -amv -aob -apa -apT -deN -arJ -asH -atP -auM -awc -asI -aym -azI -aBe -aBT -ayn -aDs -aGe -aHd -aIo -aJo -aKk -cKq -aLW -aMZ -aNV -aPb -aQr -aQR -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aYa -aXP -aYo -aZi -aYo -aYo -aYa -aYE -baI -baI -bdp -bed -beT -bfV -aXC -aXR -aYJ -baN -baN -blh -bbv -cIz -aZl -aZm -cWL -aYJ -buM -baN -baN -byu -bzr -bAC -bBH -cGH -bDU -bFd -ddt -bIm -ddw -bKD -bLR -bNr -bOp -bGJ -PhV -ddS -ddY -bOk -dek -def -bUp -bVz -bVX -bWv -bWP -bXv -bXv -bLN -bXE -cUt -cUy -cUF -cUF -cUQ -cUW -cVb -cVg -cVk -cVk -cVk -cVk -cVt -aaa -aaa -aaa -aaa -aaa -aab -aac -aac -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXk -cXi -coU -cXh -abC -abC -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(118,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -abW -akl -alC -amw -anl -aoc -amw -apT -aqK -arJ -asI -asI -auN -awd -asI -ayn -azJ -ayn -aBU -ayn -aED -aGf -aHe -aIp -aJp -aKm -aKX -aLW -aMZ -aNV -aPb -aQj -aQR -aSd -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aaa -aaa -aaa -aaa -abC -aXB -aYb -aYo -aYo -aYa -aZH -aYd -aYo -aYa -bbL -bbM -bbM -bbL -bbN -bfW -aXC -aXR -aYJ -baN -baN -blh -baM -cIz -aZl -aZm -brT -btn -buO -baN -cOX -baM -aYJ -bAD -bwi -bwi -bDU -bFe -bGN -bIn -bDU -bDR -bDR -ddL -bOq -bGJ -bGJ -bQv -ddY -bOk -dek -der -bUV -dex -bVY -bLN -bLN -bLN -bLN -bLN -cQZ -cUu -cUA -cUG -cUL -cUR -cUX -cVc -cVc -cVc -cVm -cVc -aqU -aqU -aaa -aaa -aaa -aac -aac -aac -aac -aac -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(119,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -akl -akl -alD -amx -alD -aod -apb -apU -apS -akl -asJ -cED -auO -aBi -awe -awe -azK -dsX -aBV -aDs -aEE -aGg -aCf -aIq -aDs -aKn -aKY -cEO -aMZ -aNV -aPb -aQj -aQR -cHY -abE -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aaa -aaa -aab -aab -aab -aaa -aaa -aaa -abC -aXB -aYc -aYo -aYo -aZj -aZI -aZH -aYo -aYo -bbM -bcy -bdq -bbN -bcA -bfX -aXC -aXR -aYJ -bcH -bkz -bli -cOX -cIz -boX -bqm -brU -aYJ -aYJ -bwi -bwi -bwi -bzs -bAE -bBI -bCI -bDV -bFf -bGO -bIo -bJJ -bKE -bLS -bDR -bOr -bGJ -bGJ -ddS -ddY -bOk -dek -def -bUq -bVA -bVV -bWu -bWQ -bXx -bXx -bLN -bXE -cUv -cUy -cUH -cUM -rcy -cUY -cVd -cVh -cVd -cVn -cVc -cVc -cVu -aaa -aaa -aaa -aac -aac -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(120,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -akl -akU -alE -amy -alD -aoe -amw -apV -aqL -arK -api -alD -auP -dsW -dtx -dtW -dtX -duT -aBW -aDs -aEF -aGg -awf -aIr -aDs -aKk -aKZ -aLX -aNa -aNW -aPb -aQj -aQR -cHY -abW -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -abC -aXB -aXN -aXP -aYp -aYG -aYG -aZJ -baf -baJ -bbm -bbM -bcz -cIx -bee -beU -bfY -cIG -cIv -cIv -cIv -cIv -blj -cIv -cIB -boY -bqn -brV -aYJ -aYJ -bwi -bxt -byv -bzt -bAF -byv -byv -bDW -bFg -bGP -bIp -bJJ -bKF -bLT -bDR -bOs -bGJ -bGJ -bQt -bSp -dec -cGF -bQt -bUq -dey -bVW -bOk -bWR -bXy -bYd -bLN -bXE -cUv -cUz -cUI -cUN -cUT -cUZ -cVe -cVi -cVl -cVo -cVr -cVs -cVv -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(121,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -acH -acH -acH -akl -akV -alF -amz -alD -aof -amw -apW -aqM -api -api -alD -auQ -awf -awf -ayq -azL -aBf -aBX -aDt -aEG -aGg -awf -aIs -aDs -arP -arP -arP -arP -arP -aOR -aQj -aQS -cHY -abW -abW -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aXO -aXO -aXO -aYH -aXO -aXO -aXO -aXC -bbn -bbL -bbN -bdr -bef -beV -ber -bhb -bhb -bhb -bjA -bhb -blk -bmy -bhb -boZ -bqo -brW -bhb -buP -bwj -bxu -byw -bzu -bAG -bBJ -bCJ -bDX -bFh -bGQ -bIq -bJK -bKG -bLU -bNs -bOt -ddN -bGJ -bOn -bOo -ded -del -des -bUp -dez -bVX -bWv -bWS -bXx -bXx -bLN -bXE -cUw -cUz -cUJ -cUO -cUU -cVa -cVf -cVj -cVf -cVp -cVc -cVc -cVu -aaa -aaa -aaa -aaa -aaa -aac -aab -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -abC -abC -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(122,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -acH -akl -akl -akl -amA -alD -aog -apc -apX -aqM -Bju -api -alD -auR -awg -awg -awg -ayw -ayp -aBY -cEI -aEH -aGg -awf -ayw -aCf -aDt -aLa -aLY -aNb -arP -aPc -aQj -aQR -cHY -abW -abW -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aXP -aYd -aYo -aYE -aYo -aYo -bag -aXC -bbo -bbN -bcA -bds -beg -cFg -cFj -aZm -aZm -aZm -aZm -aZm -bll -bhT -bhT -bhT -bqp -brX -bto -buQ -bwk -bxv -byx -bzv -byx -byx -bCK -bDY -bFi -bGR -bIr -bDU -bKF -bLT -bDR -bGJ -bPx -bQy -ddU -bPw -dee -bGJ -bGJ -bUq -bVw -bVZ -bLN -bLN -bLN -bLN -bLN -bXE -cUv -cUy -cUy -cUy -cUz -cUy -cVc -cVc -cVc -cVc -cVc -aqU -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXj -cXi -cJH -cXh -aaa -aaa -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(123,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -acH -acH -abW -akl -amB -alD -aoh -apd -apY -aqM -arL -asK -alD -auS -awh -axb -ayr -azM -ayp -aBZ -aDu -aEI -aGh -aHf -ayw -aCf -aDu -aLb -aLZ -awf -aDu -aPd -aQp -aQR -cHY -acH -acH -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXB -aXQ -aYe -aYq -aYI -aXO -cFb -cFc -aXC -bbp -bbO -bcB -bdt -beh -beW -bfZ -bhc -bhc -bhc -bhc -bhc -blm -bmz -bnP -bhc -bqq -brY -aZn -buR -bwl -bxw -byy -bzw -bAH -bBK -bCL -bDZ -bFj -bGS -bIs -bDU -bKH -bLV -bDR -bOu -bPy -bQz -bRs -ddZ -def -bTB -bGJ -bUq -deA -bVV -bWu -bWT -bXz -bXz -bLN -cRg -cUv -cPG -bwz -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(124,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -acH -acH -abW -akl -akl -akl -aoi -ape -apZ -aqN -arM -asL -atQ -auT -awi -awi -ays -azN -aBg -aCa -cLm -aEJ -aGi -aCa -aIt -aJq -dxR -aLc -aMa -aJq -dxR -aPe -aQj -aQR -cHY -acH -acH -abW -abE -adm -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aXC -cEZ -aXC -aXC -aXC -cFa -aXC -aXC -aXC -aXC -aXC -aXC -cIy -aZl -aZm -bga -bhd -bhd -bhd -bhd -cFk -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bzx -bAI -bBL -bCM -bhd -bFk -bGT -bnS -bDV -bKI -cQl -cQl -cQl -cQl -bQA -bRt -bTa -bSq -bJI -bGJ -bUq -deB -bVW -bOk -bWU -bXA -bYe -bLN -cRk -cUx -cRo -cGH -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(125,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -acH -acH -akl -aoj -apf -aqa -aqO -aqO -apf -atR -auU -awj -axc -ayt -azO -aBh -aCb -aDw -hKt -aGj -aHg -aIu -aJr -aKo -aLd -aMb -aNc -aKo -aPf -aQs -aQZ -cHZ -acH -acH -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXR -aXR -aXR -aXR -aXR -aZK -bah -baK -bbq -bbP -aZK -cIz -bei -aZm -bgb -bhd -bhP -biH -biH -biH -biH -biH -biH -biH -biH -bnQ -btp -buS -bwm -bhd -abC -abC -abC -abC -bCN -cPR -cPT -bGU -bIt -bJL -bLW -cQm -bNt -blq -bPz -bQB -bRu -bSr -bTb -bTC -det -bUr -deC -bVX -bWv -bWV -bXz -bXz -bLN -bxJ -cPM -cUB -bzq -aYf -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(126,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -acH -acH -anm -aok -apg -aqb -aqP -arN -asM -atS -auV -awk -awk -ayu -azP -aBi -awe -cLn -aEL -aGk -aHh -ayx -aJs -dxS -aLe -aMc -aJs -dxS -aPg -aQj -aQR -cHY -acH -acH -abW -abW -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aXR -aXR -aXR -aZK -aZK -baL -bbr -bbQ -aZK -cIA -aZl -aZm -bgc -bhd -bhQ -biI -bjB -biI -bjB -abC -bhd -bhd -bhd -cFk -btq -buT -bkA -bhd -bhd -bhd -bhd -bhd -bCN -bEb -cPU -bGV -cPZ -cPZ -cQe -bLX -bNu -cQB -bPA -bQB -bRv -bSs -bTc -dem -bTD -bTc -deD -bWa -bLN -bLN -bLN -bLN -bLN -bXE -cQT -cUC -bwz -aYf -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXk -cXi -cXo -cXh -aaa -aaa -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(127,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -akl -aol -aph -aqc -aqQ -arO -api -alD -auW -awl -axd -ayr -azM -ayp -aCc -aDu -aEM -aGl -aHi -awf -aCf -aDu -aLf -aHi -awf -aDu -aPh -aQj -aQR -cHY -aKp -aKp -aKp -aKp -aKp -aKp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aXR -aXR -aYJ -aYJ -aYJ -aYJ -bbR -aYJ -cIz -aZl -beX -bgc -bhd -bhQ -biJ -biK -bjD -biK -biH -bnQ -bpa -bqr -brZ -btr -buU -bwn -bwn -bwn -bwn -bAJ -bBM -bCO -bEc -bFn -bGW -bIv -bJM -bMa -bLY -BMP -cQC -bPB -ddP -bRw -bQr -bTd -den -bTE -bUs -bVB -bWb -bWu -bWW -bXB -bXB -bLN -cRl -bxJ -cUv -bzq -aYf -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cme -aaa -aaa -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(128,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -acm -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abE -abE -abE -abW -adm -abW -abW -abW -akl -aom -cEu -aqd -aqd -aqd -api -alD -auX -awm -awm -awm -ayw -ayp -aBY -cEI -aEN -ayw -awf -awf -aCf -aDs -aLg -aMd -awg -arP -aPi -aQj -aQR -cHY -aSR -aTG -aUd -aUD -aVc -aKp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXD -aXD -aXR -aYJ -bai -baM -baN -bbS -baN -cIz -aZl -aZm -bgc -bhd -bhQ -biJ -bhd -bhd -bhd -bhd -bhd -bpb -bqs -bsa -bts -buV -buV -bxx -byz -byz -bAK -bBN -bCP -bEd -bFo -bGX -bIw -bJN -bKJ -bLZ -cQu -cQD -cQK -cWa -bRx -bSt -bGJ -deo -bTF -bUt -bUW -bWc -bOk -bWX -bXB -bYf -bLN -bxJ -bwz -cUv -bwz -aYf -aYf -aYf -aXR -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cEl -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(129,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abE -abE -abC -aaa -aaa -abE -akl -akl -akl -akl -akl -akl -akl -anm -auY -awf -awf -ayv -ayw -aBf -aCd -aDt -aEO -ayw -awf -aIv -arP -arP -arP -arP -arP -arP -aPj -aQj -aQW -aSe -aSS -aTH -aTH -aUE -aVd -aKp -aKp -aKp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aYJ -aYJ -aYJ -baj -baN -baN -baQ -baN -cIz -bej -aZm -bgc -bhd -bhQ -biJ -bhd -bkA -bln -bmA -bnR -bpc -bqt -cKr -btt -btt -btt -cKr -byA -bzy -bAL -bBO -bCQ -bCN -bFp -cGz -bIx -bJO -bMa -cQn -bNv -cQE -cQL -cWb -bRy -bQw -bPv -bTG -bPv -bPv -bUX -bWd -bWv -bWY -bXB -bXB -bLN -bxJ -cGH -cUv -bwz -aYf -aYf -aYf -aaa -cFp -cFp -cFp -cFp -cFp -cYy -cYE -cYT -cZa -cZa -cYT -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cJH -cpC -aaa -aaa -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(130,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aon -aon -aon -aqR -arP -asN -arP -auZ -dsX -dtx -dtX -dtX -duT -aCe -aDs -aEP -ayw -awf -aIw -arP -abW -abW -abW -abW -aKp -aPk -aQj -aQR -cHY -aST -aTI -aTI -aUF -aVe -aVp -aVz -aVR -aTf -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aNn -aYK -aZk -aYK -bak -bak -bbs -bbU -baN -cIz -bek -aZm -bgc -bhd -bhQ -biJ -bhd -bkA -blo -bhd -bBV -bpd -bqu -cKr -btu -btu -bwo -cKr -byA -bzz -bAM -bBP -bCR -bCN -bFq -bGW -bIx -cQa -bKK -bMb -cQv -cQF -bPC -cWc -bRz -bSu -bTe -bTH -deu -bGJ -bUY -bWe -bLN -bLN -bLN -bLN -bLN -bxJ -bxJ -cUv -bzq -aYf -aYf -aYf -aaa -cFp -cFp -cYy -cYE -cYw -cYw -cYw -cYT -cYC -cYC -cYT -cYw -cYw -cYw -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXj -cXi -coV -cXh -abC -abC -aWr -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(131,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -ann -aoo -apj -aqe -aqS -arQ -asO -arQ -ava -aBi -dtz -ayx -azQ -dsW -dvv -aDs -aEQ -dtX -dvv -arP -arP -abW -abW -abW -abW -aKp -aPl -aQj -aQR -cHY -aKp -aKp -aKp -aKp -aKp -aKp -aKp -aKp -aWi -aWx -aWx -cWi -aWx -aWx -aWx -cWi -aWx -aWx -cWi -aWx -aWx -aWx -cWi -aWx -aWx -aYr -aYJ -aYJ -cIs -cIv -cIv -cIv -bbV -cIv -cIB -aZl -aZm -bgc -bhd -bhQ -biJ -bhd -bkB -blp -bmB -bhd -bpe -bqv -cKr -btv -buW -buW -bqC -cKr -cKr -bAN -bBP -bCS -cFw -bFr -bGW -bJP -bKL -cQf -bMc -cQw -cQG -bPD -bQC -bRA -bSv -bTf -bTI -bUu -dew -bVC -bWf -bDR -bxJ -bxJ -bwz -bxJ -bwz -bXE -cUv -bzq -aYf -aYf -aYf -aaa -cFp -cYw -cYw -cYw -cYw -cYw -cYw -cYU -cZb -cZb -cZz -cZK -cYw -cYw -cYw -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cYh -cXp -cpC -aaa -aaa -aWr -aaa -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(132,1,1) = {" -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 -oNh -nuB -oNh -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aon -aon -aon -aqR -arR -arR -arR -avb -awn -axe -ayy -azR -ayy -aCg -ayy -aER -aGm -aHj -aEW -abW -abW -abW -abW -abW -aKp -aPl -aQj -aRj -cIe -aSU -aRz -aUe -aUG -aRz -aRz -aRz -aRw -cWe -cWe -cWe -cXT -cWe -cWe -cWe -cXU -cWe -cWe -cXU -cWe -cWe -cWe -cXT -cWe -cWe -cWe -aYL -aZl -cIt -bal -aZl -aZl -bbW -bcC -bdv -bel -RQH -bgc -bhd -bhQ -biJ -bhd -bkC -bkA -bkA -bnS -bpf -bqw -cKr -btw -btw -btw -bxy -byB -bzA -bAO -bBP -bCT -bEe -bFl -bGW -bIx -bKM -bMd -cQm -cQm -cQm -cQm -bQD -bRB -bSw -deg -dep -bTg -bDR -bDR -bDR -bDR -bwz -bxJ -cRh -bwz -bMt -bww -cUv -cRd -aYf -aXR -aaa -aaa -cFp -cYw -cYz -cYF -cYJ -cYw -cYN -cYV -cYH -cYC -cYV -cYw -cYw -cYw -dae -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(133,1,1) = {" -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 -oNh -ejj -oNh -oNh -oNh -oNh -oNh -deP -aaa -amC -abE -abW -aaa -abE -abW -arR -asP -atT -avc -awo -axe -ayz -azS -aBj -aCh -ayy -aES -aGn -aHk -aEW -abW -deF -deF -deF -deF -aKp -aPm -aQk -aRk -cIf -aSV -aQm -aQm -aQm -aQm -aQm -aQm -cIj -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIk -cIn -cIo -cIu -aZm -aZm -aZm -bbX -bcD -bdw -bem -beY -bgd -cFk -bhQ -biJ -bhd -bkD -bkA -bmC -bnS -bpg -dze -bsb -btx -buX -btx -bxz -ILy -bzB -bAP -bBQ -SHC -bEf -bFm -bGY -bIy -bJQ -cQg -bMe -bNw -bOv -bPE -bQE -bRC -bSx -bTh -cUk -cUk -cUk -cUk -cUk -cUm -cUk -cUk -cUq -cRi -bww -bww -cYt -cGH -aYf -aaa -aaa -cFp -cFp -cYw -cYA -cYB -cYB -cYw -cYO -cYV -cYH -cZb -cZA -cYw -cZT -dac -cZW -cYw -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cme -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(134,1,1) = {" -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 -oNh -ndV -hXC -kSZ -GBu -CJx -Rhg -deJ -deP -adm -abW -abW -acH -acH -acH -arR -asQ -atU -avc -awp -axe -ayA -azT -aBj -aCi -ayy -aET -aGo -aHl -aEW -abW -deF -aLh -aMe -dgB -aNX -aPn -aQj -aRl -aRt -aSW -aRt -aRt -aUH -aRt -aRt -aRt -aRv -cWe -cWe -cWe -cWe -cWe -cWe -cWe -cWn -cWe -cWe -cXW -cXX -cXX -cXX -cXX -cXX -cXX -cXX -cXZ -cIp -cYa -cYa -baO -cYa -cYb -bcE -aZn -ben -beZ -bge -bhd -bhQ -biJ -bhd -bkC -bkA -bkA -bnS -bph -bqx -cKr -bty -bty -bty -bxA -byD -dzf -bAQ -bBR -bCV -bEg -bFs -bGW -bIx -bIx -cQh -cQo -bNx -bOw -bPF -bQF -bRD -bND -bND -bND -bND -bND -bwz -bxK -cRd -bXE -bww -cUr -cUs -cUs -cUs -cUD -bwz -bwz -cYv -cYv -cYv -bwz -cYw -cYB -cYG -cYG -cYL -cYP -cYW -cYH -cZb -cZB -cZL -cZU -cZV -cZU -dam -cYM -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cXh -cXk -cXi -cXp -cXh -abC -abC -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(135,1,1) = {" -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 -oNh -eec -ppM -ZZE -nhB -Llr -ERf -cKE -deF -deJ -deP -deV -deV -deV -deV -arR -asR -OUe -avc -awq -axe -ayB -azU -uER -aCj -ayy -aEU -SMF -aHm -aEW -deP -deF -aLi -aMf -aNd -aNY -aPo -aQj -aQR -aKp -aKp -aKp -aKp -aOb -aKp -aKp -aKp -aKp -aWj -aWy -aWy -cWj -aWy -aWy -aWy -cWj -aWy -aWy -cWj -aWy -aWy -aWy -cWj -aWy -aWy -aYs -aYJ -cIq -cIv -cIv -cIv -cIv -cIv -cIv -cIC -beo -bfa -bgf -bhd -bhQ -biJ -bhd -bkE -cKs -bmD -bhd -cKt -bqv -cKr -btz -buY -buY -bxB -cKr -cKr -bAR -bBP -bCS -bCN -bFt -bGZ -bIz -cGC -bIx -bMa -bNy -bOx -bPG -Esb -bRE -bND -bTi -bTJ -bUv -bND -bxJ -bxJ -bwz -cGH -bwz -bAz -bwx -bwx -bwv -cYu -bZN -cPy -bXE -bXE -bXE -bZN -cYx -cYC -cYH -cYH -cYM -cYC -cYC -cYH -cZb -cZb -cYM -cZV -cZU -daf -dan -cYM -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(136,1,1) = {" -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 -oNh -eec -Nci -Pnn -Pnn -ULk -qbN -rRb -zjN -okW -aAR -deF -deJ -dfg -aqT -arR -asS -atW -avd -awr -axe -ayC -azV -aBk -aCk -ayy -aEV -aGq -aHn -aEW -deP -deF -aNy -aMg -dgC -aKp -aPp -aQj -aQR -aKp -aSX -aTJ -aUf -aUI -aVf -aVq -aVA -aVS -aWk -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aYt -aYO -aZo -aZL -bam -baN -bbt -baM -baM -cIz -beo -bfa -bgf -bhd -bhQ -biJ -bhd -bkA -blr -bhd -cFk -bpd -bqu -cKr -btA -buZ -btA -cKr -byE -bzC -bAQ -bBP -bCR -bCN -bFu -bGW -bIx -bIx -bIx -bMf -bNz -bOy -bPG -bQG -bRF -bSy -bTj -bTJ -bUw -bND -bxJ -bxJ -bxJ -bxJ -bxJ -bwx -bww -bww -bww -bVa -cGH -cGH -cYv -cYv -cYv -bwz -cYw -cYB -cYB -cYB -cYL -cYQ -cYP -cZb -cZb -cZb -cZL -cZW -cZW -cZV -dao -cYM -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(137,1,1) = {" -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 -oNh -zfh -OgL -OgL -szL -wvJ -Rhg -deJ -aiA -deR -Gae -ffH -alG -deR -deR -arR -arR -arR -arR -arR -arR -ayD -ayD -ayD -ayD -ayD -aEW -aEW -aEW -aEW -deP -deF -THy -aMg -dgD -aKp -aPq -aQt -aRm -aSf -aSY -aTu -aTu -aTu -aVg -aKp -aKp -aKp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYJ -aYJ -aYJ -ban -baP -bbu -bbu -bcF -bdx -bep -bfb -bgf -bhd -bhQ -biJ -bhd -bkA -cKs -cKs -bnT -dzc -bqz -cKr -btB -btB -btB -cKr -byE -bzC -bAQ -bBS -bCW -bCN -bFv -bHa -bIA -bJR -bIA -bMg -bNA -bOz -bPH -bQH -bRF -bSy -bTj -bTJ -bUx -bND -bxJ -bxJ -bxJ -bwz -bXC -bwx -bww -bwz -bxJ -bxJ -bxJ -aXR -aaa -aaa -cFp -cFp -cYw -cYA -cYB -cYB -cYw -cYR -cYX -cYH -cYH -cZC -cYw -cZX -dac -cZV -cYw -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(138,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -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 -oNh -Sxw -Sxw -Rhg -dPQ -Rhg -Rhg -deP -deP -deF -deU -QeW -dfy -dfy -aAR -dfn -jnf -atX -dfy -dfA -dfD -dfD -azW -aBl -dfD -cLo -dfD -aGr -aAR -deP -deP -deF -aLj -aMh -aNe -aNX -aPr -aQj -aRn -aKp -aMk -aMk -aMk -aMk -aMk -aKp -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -aaa -aaa -aXD -aXR -aYJ -bao -baQ -baN -baN -bcG -cIz -beo -bfc -bgf -bhd -bhQ -biJ -bhd -bhd -bhd -bhd -bhd -dzd -bqA -bsc -btC -bva -bwp -bxC -byF -byF -bAS -bBT -bCX -bCY -bFo -bHb -bIx -bJS -bIx -bMh -bNz -bOA -bPI -bQI -bRG -bND -bTk -bTJ -bUx -bND -bxJ -bxJ -bxJ -bwz -bwx -bww -cRj -cGH -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -cYw -cYD -cYI -cYK -cYw -cYS -cYY -cYH -cYH -cYQ -cYw -cYw -cYw -dag -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cXh -cXj -cXi -cXq -cXh -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(139,1,1) = {" -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 -abC -abC -abC -Sxw -KkQ -OgL -oNh -abC -adm -deP -deF -aTy -cKP -aqg -QeW -dfy -tCI -dfu -deZ -deZ -deZ -deR -deZ -SaA -deZ -deZ -deZ -deZ -dga -cLI -deJ -deJ -aLk -aMi -aNf -aKp -aPs -aQj -aRo -aKp -aSZ -aSZ -aMk -aUJ -aLn -aKp -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -aXD -aXR -aYJ -bao -baR -bbv -baN -bcH -cIz -beo -bfc -bgf -bhd -bhQ -biJ -biI -bjB -biI -bjB -bhd -bpf -bqB -bsd -btD -bsd -bwq -bxD -bsd -bsd -bAT -bBU -bCY -bEh -bFw -bHc -bIB -bJT -bKN -bMi -bNB -bOB -bPJ -bQJ -bRH -bSz -bTl -bTK -bUz -bND -bxJ -bxJ -bxJ -bwx -bww -bww -bxJ -bxJ -aYf -aYf -aXR -aXR -aaa -aaa -aaa -aaa -cYw -cYw -cYw -cYw -cYw -cYw -cYZ -cYH -cZb -cYP -cZM -cYw -cYw -cYw -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(140,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aab -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 -aaa -aaa -abC -Sxw -TaL -KcZ -oNh -aaa -abW -abW -deV -deV -deJ -deV -deF -dfg -cKV -dfv -deU -deU -dfu -deF -dfJ -dfv -aqg -deZ -deU -deU -dga -deZ -aJt -deJ -deJ -deF -deF -aKp -aPl -aQj -aRp -aKp -aKp -aKp -aKp -aKp -aKp -aKp -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aXR -aYJ -aYJ -aYJ -aYJ -aYJ -aYJ -cIA -beo -bfc -bgf -bhd -bhQ -biK -bjD -biK -bjD -biJ -bhd -bpi -dir -bBV -btE -bvb -bwr -bxE -byG -byG -byG -byG -byG -bEi -bFx -bHd -bIu -bIu -bIu -bMj -bNx -bOC -bPK -bPI -bRI -bND -bTm -bTm -bTm -bND -bxJ -bxJ -bwz -bWZ -bww -bwz -bxJ -aXR -aYf -aYf -aXR -aXR -aaa -aaa -cFp -cFp -cFp -cYy -cYE -cYw -cYw -cYw -cYT -cZb -cYC -cYT -cYw -cYw -cYw -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(141,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -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 -aaa -aaa -abC -oNh -oNh -ejj -oNh -aaa -abW -abW -abW -acH -acH -deV -deF -deJ -deF -deP -deP -dfB -dfE -deP -deJ -deV -deV -cLp -deU -dfJ -aHo -dfD -cLQ -cLo -cLZ -cLo -cMf -aNZ -aPt -aQj -aRo -aKp -acH -acH -acH -acH -abW -abW -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYf -aYf -aYf -aXR -aYf -aYf -aYf -aYf -cIz -beq -bfc -bgg -bhd -bhR -biH -biH -biH -biH -bjD -abC -abC -bqD -bhd -btF -bvc -bws -cKr -abC -abC -abC -abC -bhd -bEa -bFy -bHe -bIC -bJU -dkv -bMk -bNC -bOD -bPK -bPI -bRJ -bND -bTm -bTm -bUA -bND -bxJ -bxJ -cGH -cPE -bww -bwz -bzq -aYf -aYf -aYf -aXR -aXR -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cYy -cYE -cYT -cZc -cZc -cYT -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(142,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aaa -aaa -aaa -aaa -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -oNh -GRh -oNh -abC -adm -abW -abW -abW -abW -acH -acH -acH -acH -acH -deV -deV -deV -acH -acH -acH -deV -aDy -deJ -deF -deV -deF -dfg -deR -dfn -dgx -dgE -akn -aOK -aQj -aRo -aKp -acH -acH -acH -acH -acH -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -cIz -beo -bfc -bgf -bhd -bhd -bhd -bhd -cFk -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bhd -bBV -bhd -bhd -bFz -bHf -bnS -bhd -bhd -bhd -bND -bOE -bPK -bQK -bND -bND -bTn -bTL -bUA -bND -bwz -bxJ -bwx -bww -bww -cGH -aYf -aYf -aYf -aYf -aXR -aXR -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -abC -abC -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(143,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aac -aaa -aaa -aaa -aaa -aac -aab -aab -aab -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 -aaa -aaa -abW -abW -abW -abW -abW -abW -acH -acH -acH -acH -acH -acH -acH -deV -deJ -deJ -deR -deV -acH -acH -deV -deV -deJ -deF -aKp -aKp -aKp -aOP -aQp -aRq -aKp -acH -acH -acH -acH -acH -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -cIz -beo -bfd -bgh -bdv -bhS -bdv -bdv -bdv -bls -bmE -bnU -bmE -bqE -bse -btG -bvd -bwt -bxF -byH -bzD -bAU -bBW -bCZ -bEj -bFA -bHg -bID -bHk -bHk -bHk -bHk -bOF -bPL -bPI -bRK -bND -bND -bND -bND -bND -bQp -bwx -bwx -bww -bBE -bzq -aYf -aYf -aYf -aYf -aXR -aXR -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXk -cXi -cXp -cXh -aaa -aaa -aWr -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(144,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aad -aab -aab -aac -aac -aac -aac -aad -aab -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -abW -abW -abW -deP -deR -deR -deR -deV -acH -acH -acH -acH -acH -abW -aKp -aNh -aOa -aPu -aQu -aRr -aKp -acH -acH -acH -acH -acH -abW -adm -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aYg -aXR -aXR -aYf -aYf -aYf -baS -baS -baS -baS -cID -beo -bfe -bgi -bhe -bhT -bhT -bhT -bhT -blt -bhT -bhT -bpj -bqp -bsf -btH -bve -bwu -bxG -byI -byI -bAV -bBX -bBX -byI -bAV -bHh -bIE -bHk -bKO -bMl -bHk -bOG -bPM -bPI -bRL -bND -bxJ -bxJ -bxJ -bwz -bAA -bwx -bww -cQY -bwz -bzq -aYf -aYf -aXR -aXR -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(145,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aad -aac -aac -aac -aac -aac -aac -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -deJ -deJ -deJ -deJ -dfn -deF -deP -abW -abW -abW -abW -aKp -aKp -aKp -aNi -aKp -aPv -aQj -aQR -aKp -acH -acH -acH -acH -abW -abW -abW -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aXR -aXR -aYf -aYf -aYf -baS -bbw -bbY -bcI -cID -ber -bff -bgj -bhf -bhU -bhU -bjE -bhU -blu -bmF -bhU -bpk -bqn -bsg -btI -bvf -bwl -bxH -byw -bzE -bAW -bBY -pAv -bEk -bFB -bHi -bIF -bJV -bKP -bMm -bHk -bOH -bPN -bQL -bRM -bND -bxJ -bxJ -bxJ -cGH -bwx -bww -cRe -bwz -cGH -cGH -bwz -aYf -aYf -aYf -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(146,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -deJ -ayE -deR -cKH -deR -deJ -deP -abW -abW -abW -abW -aKp -aLl -aLm -aNi -aKp -aPw -aQq -aRc -aKp -aKp -aKp -aKp -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXR -aXR -aYf -aYf -aYf -baS -bbx -bbZ -bbZ -cIE -cIF -bfg -bgk -dzh -cIF -cIH -cIv -cIv -blv -cIv -cIv -bpl -cIo -bsh -cIv -cIv -cJd -bxI -byJ -bzF -bAX -bBZ -bDb -bEl -bFC -bHj -bIG -bJW -eYG -bMn -bHk -bND -bND -bQM -bND -bND -cGH -bwz -bwz -cGH -bwx -bww -bwz -cGH -bXD -bYg -cGH -aYf -aYf -aYf -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -abC -abC -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(147,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -deJ -ayF -deR -cEH -deF -deF -abW -abW -abW -abW -abW -aKp -aLm -aMj -aNi -aOb -aPx -aQj -aRs -aSg -aTa -aMk -aKp -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXR -aXR -aYf -aYf -aYf -baS -bby -bbZ -bbZ -bdy -bes -bfh -bgl -bhg -bhV -biL -bjF -bkF -blw -baM -aYJ -bpm -bqF -bsi -aYJ -bvg -cJe -cJf -cJg -bzG -bAY -bCa -bDc -bEm -byK -bHk -bHk -bHk -bKR -bMo -bHk -bHk -bND -cFD -cFE -bXE -cGL -cGH -cGH -bwx -bww -bww -bWw -bXa -bXb -bXE -bwz -aYf -aYf -aYf -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxI -czn -cxI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(148,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abW -abW -adm -abW -deF -ayG -azX -deF -deF -abW -abW -abW -abW -abW -abW -aKp -aLn -aMk -aNi -aKp -aPy -aQj -aRt -aKp -aTb -aTL -aKp -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aYf -aYf -aYf -baS -bby -bca -bcJ -bdz -bet -bfi -bgm -bhh -bhW -biL -baN -baN -blx -baM -aYJ -aZn -cIN -bsj -btJ -bvh -cPo -bxJ -cJh -bzH -bAZ -bCb -bDd -bEn -byK -bHk -bIH -bJX -bKS -bMp -bHk -bHk -bND -bQN -bND -bxJ -bXE -bXE -bww -bww -bwv -bwz -cGH -cGH -bXE -bYh -cGH -aYf -aYf -aYf -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXh -cXj -cXi -cXr -cXh -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -cxI -cyA -cyB -cyA -cxI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(149,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -deF -deH -deH -deF -abW -abW -abW -abW -abW -abW -abW -aKp -aLn -aMk -aNi -aKp -aPz -aQj -aRt -aKp -aTb -aMk -aKp -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aYf -aYf -aYf -baS -bbz -bcb -CZk -bcK -beu -bfj -bgn -bhi -bhX -biL -bbv -baN -bly -bmG -aYJ -aZn -cIN -cWM -btK -bvi -bXE -bxK -cJh -bzI -bBa -WAy -bDe -bEo -byK -bHk -bII -bII -bII -bMq -bHk -bHk -cFB -cFB -cFB -bxJ -cGH -bww -bww -bww -bww -cGH -bWx -bXb -bXE -bXE -cGH -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyB -cyB -czV -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(150,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -aKp -aLo -aMl -aNi -aKp -aPx -aQj -aRt -aKp -aTb -aMl -aKp -abE -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aYf -aYf -aYf -baS -bby -bbZ -bbZ -bdA -bev -bfk -bgo -bhj -bhY -biL -baN -baN -blz -bmH -bdu -aZn -cIN -bsk -aYJ -bvj -bXE -bXE -cJh -bzJ -bBb -bCd -bDf -bEp -byK -bHk -bII -bII -bKT -bMr -bHk -bHk -bxJ -bxJ -bxJ -bxJ -bxJ -bSl -bwx -bww -cRa -cGH -bWy -bXc -bXb -bXb -cGH -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aag -aaa -djk -cdn -cdn -cdC -djp -djp -ceJ -cfh -cfh -cdn -cdn -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyC -cyB -czW -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(151,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -aKp -aKp -aKp -aNj -aKp -aPA -aQj -aQO -aKp -aTc -aKp -aKp -abE -abE -abE -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aYf -aYf -aYf -baS -bby -bbZ -bbZ -bdB -bes -bfl -bgp -bhk -bhZ -biL -bao -bao -blA -bmI -aYJ -aZn -cIN -bsl -aYJ -bvk -bwy -bXE -cJi -cJg -cJj -byK -byK -byK -byK -bHk -bII -bII -bII -bMs -bHk -bHk -bxJ -bxJ -bxJ -bxJ -bwz -bUB -bwx -bww -bxJ -cGH -bwz -bwz -bXF -bYi -cGH -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -djl -djp -djl -djq -djs -ceg -djq -djq -cfG -djt -djl -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxK -cyD -cyB -czX -cxK -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(152,1,1) = {" -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -aaa -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -aKp -aNk -aKp -aPx -aQj -aRu -aKp -aTd -aKp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXR -aXR -aYf -aYf -baS -baS -baS -baS -baS -baS -baS -baS -baS -baS -biL -aYJ -aYJ -aYJ -bmJ -aYJ -aZn -cIN -cWM -aYJ -bvl -bwz -bXE -bXE -cJi -cJk -byK -bzq -bzq -bzq -bHk -bHk -bHk -bHk -bHk -bHk -bHk -bxJ -bxJ -bxJ -bxJ -bwz -bwx -bww -bVa -bwz -aYf -aYf -cGH -bwz -cGH -cGH -aXR -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -cdj -cdj -cdj -djp -djt -djp -cdn -cdj -cdj -cdj -cdn -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cme -cXi -cXi -cXp -cpC -aaa -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyD -cyB -czX -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(153,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -adX -adX -adX -adX -adX -adX -aaa -aaa -ahF -ajz -ahF -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -abW -abW -abW -abW -abW -abW -abW -abW -aKp -aNl -aKp -aPB -aQv -aRv -aKp -aTc -aKp -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aYg -aXR -aXR -aXR -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aYJ -bmK -aYJ -bpn -cIN -cWM -aYJ -bvm -cGH -cPt -bXE -bzq -bzq -cGH -cGH -cGH -bWZ -bHk -bHk -bHk -bHk -bHk -bHk -bHk -bxJ -bxJ -bxJ -bwz -bwx -bwv -bww -bwz -bzq -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -dju -ceh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cmf -cnm -cnV -coW -cmf -aWr -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyD -cyB -czX -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(154,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -add -add -add -add -add -aaf -aaf -aaf -add -add -add -add -ajA -ahF -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -abW -adm -abW -abW -abW -abW -abW -abW -aaa -aNm -aOc -aqV -aqV -aqV -aSh -aql -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aXR -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aXR -aXR -aXD -aYJ -bmL -aYJ -aYN -cIO -bsm -aYJ -bvl -bwz -bxJ -cPy -bXE -bXE -cPM -cPo -bww -bAy -bwx -bwx -bwx -bKU -bwz -bxJ -bxJ -bwz -bxJ -bxJ -cGH -bwx -bww -bwz -bzq -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -dju -abC -aaa -aaa -aaa -aaa -cbU -cbU -cbU -aaa -aaa -aaa -ciJ -clw -ciJ -cnn -cnW -coX -cpD -cbV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyD -cyB -czX -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(155,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -add -adn -adn -adn -add -add -add -add -add -adn -adn -adn -ajA -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -abW -abW -abW -abW -abW -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aXR -aXR -aXD -aXD -aaa -bmM -bnV -aPC -cIP -cWN -btL -bvn -aXR -bxJ -bwz -bXE -cPF -btK -bAB -bww -bww -bww -bww -bwv -bwx -cQp -bwz -bxJ -cQM -bQO -bwz -bwx -bwx -bww -cGH -aYf -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdt -cdM -cdt -cbU -cbU -cbU -cbU -cbU -cbU -cbV -cbV -cbU -cbU -ciJ -clx -ciJ -cnn -cnX -coY -cmf -cbV -cbV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxL -cyD -cyB -czX -cxL -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(156,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aae -aae -aae -aae -aae -add -adn -adD -adY -aew -adn -afl -adn -agH -ahv -ahY -adn -ajB -aae -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYf -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aYf -aYf -aYf -aXR -aXR -aXD -aXD -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aXR -aXR -bxJ -bwz -cPG -bwz -bwx -byL -bAz -bwx -bwx -bww -bww -bwx -cPE -bwx -bwx -bwx -bAy -bwx -bww -cQY -cGH -aYf -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdt -cdN -cdt -cbU -cbU -cbU -cbV -cbV -cbV -cbV -ciJ -cjr -cjr -ciJ -cly -ciJ -cno -cnX -coY -cmf -cbV -cbV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyE -cyB -czY -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(157,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aae -aae -aae -aae -aae -aae -aae -aae -add -adn -adE -adZ -aex -aeP -afm -aeP -agI -ahw -ahZ -adn -ajA -aae -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aab -aab -aab -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aXR -aXR -aXD -aXD -aXD -aXD -aYf -aYf -aYf -aYf -aXD -aXD -aYg -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aXR -aXR -aXR -bzq -bzq -bwz -cGH -bwz -bzq -cGH -cGH -bwz -bww -bww -bww -bwv -bww -bww -bww -bww -bww -cGH -bwz -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cdt -cdt -cdO -cdt -cdt -cbU -cbV -cbV -ccs -ccs -ccs -ciJ -cjs -cki -ckQ -clz -cmg -cnp -cnY -coZ -cmf -cbV -cbV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cyD -cyB -czX -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(158,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -add -ado -adn -adn -adn -adn -afn -afJ -adn -adn -adn -aiM -ajA -aaf -aaf -aaf -aae -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXC -cXH -aqV -cXP -cXF -aqU -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aac -aad -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXD -aXD -aXD -aXD -aXD -aXR -aXR -aXR -aXR -aYf -aYf -aXD -aaa -abC -aaa -aqU -cWB -cWE -cIP -cWO -cWT -aqU -aXR -aXR -aXR -aXR -aXR -aYf -aYf -aYf -aXR -aXR -aXR -bwz -bwz -bzq -bzq -cGH -bzq -bzq -bwz -cGH -cGH -bwz -aYf -aYf -aXR -aXR -aXR -aXR -aXD -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbU -cdu -cdD -cdP -cei -cdv -cfK -cfJ -cdi -ccE -ccE -ccE -ciJ -cjt -ckj -ieV -clA -cmh -cnq -cnX -cpa -cmf -cbV -cbV -cbV -aaa -aaa -aaa -aaa -aaa -aaa -cxJ -cxK -czo -cxK -cxJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(159,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aae -aae -aae -aae -aae -aae -add -adp -adF -aea -aey -aeQ -mKW -aeP -aeP -ahx -aia -aiN -ajA -aaf -aaf -aaf -aae -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aad -aad -aab -aac -aac -aac -aac -aac -aac -aaa -aaa -aad -aad -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aYg -aXD -aXD -aXR -aXR -aXR -aXR -aYg -aXR -aXR -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aaa -aXR -aXR -aXR -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cdv -cdE -FRD -cej -ceK -cfi -cfH -cgY -cfK -cfJ -cdi -ciK -cju -ckk -ckS -clB -cmi -cnr -cnX -coY -cmf -cbV -cbV -cbV -cbV -cmf -cun -cmf -aaa -aaa -aaa -cmf -cun -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(160,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aaf -aaf -aaf -aaf -aaf -aaf -add -add -adG -aeb -aez -adI -afp -adI -adn -ahy -aib -add -ajA -aae -aaf -aae -aae -aaf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aad -aab -aab -aab -aab -aab -aad -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aXR -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aYf -aYf -aYf -aYf -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbU -cbU -cdu -cdF -cdR -cek -cdu -cRs -cRu -cRv -cRC -cCQ -cfK -ciJ -ciJ -ciJ -ciJ -ciJ -ciJ -cns -cnZ -cpb -cmf -cbV -cbV -cbV -cbV -csG -cuo -csG -aaa -aaa -aaa -csG -cuo -csG -aaa -aaa -cmf -cmf -cmf -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(161,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aaf -aaf -aaf -add -adH -aec -aeA -adI -afq -adI -adn -adn -adn -add -ajC -aae -aae -aae -aae -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aab -aab -aac -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -aaa -aXR -aYf -aYf -aYf -aYf -aXR -aaa -aYg -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbU -cbU -cdu -cdu -cdv -cdv -cdv -cfJ -ccE -cRw -cRs -cRu -cic -ciL -cik -ckl -ccU -clC -cks -cnt -cnX -coY -cKo -cmf -cmf -cmf -cmf -cmf -cup -cmf -cmf -cmf -cmf -cmf -cup -cmf -cmf -cmf -cpD -cAX -cBp -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(162,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aaf -aaf -adq -adI -adI -adI -adI -afr -adI -adI -adI -adI -adq -ajC -aae -aae -aae -aae -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab -aab -aad -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -cWN -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aXR -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbU -cbU -cbV -ccs -ccs -ccs -ccs -ccE -ccE -cfK -cfJ -cRF -cid -cRu -cfI -ckm -cwU -clD -cmj -cnu -coa -cJI -cpE -cpE -cpE -csE -cti -cti -cti -cti -cti -cwV -cti -cys -cti -cti -cti -cti -cwV -cAY -cBq -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(163,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aau -aax -aax -abl -aax -abM -aax -aax -aaw -aal -aal -aal -aaf -adq -adJ -aed -aeB -adI -afs -afK -Oih -ahz -aic -adq -ajC -aae -aae -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -cXC -aqV -aqV -cXQ -cXF -aqU -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -cWB -cWF -cIP -cWP -cWT -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aad -aaa -aaa -aaa -aaa -aaa -cbV -cbU -cbU -cbU -cbU -cbU -cbU -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccE -ccE -ccE -cfJ -cfK -cfK -cRJ -ckn -ccU -clE -cmf -cnv -cob -cpd -cpF -cpF -crK -csF -ctj -ctj -ctj -ctj -cvZ -ctj -ctj -cyt -czj -czj -czj -czj -cGb -czj -cBr -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(164,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aav -aax -aaw -aaw -abx -aax -aax -aax -aaw -acK -cEm -aal -aal -aal -adK -aee -aeB -aeR -aeB -afL -agK -aeB -aid -adq -ajC -aae -aae -aaf -aaf -aaf -aaf -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aag -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aab -aab -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbU -cbU -cbU -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdi -cjw -ccU -cRR -cfJ -cmf -cnw -cFQ -cJJ -cnX -cnX -crL -cpD -csG -csG -csG -csG -cmf -cun -cun -cmf -csG -csG -csG -csG -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(165,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aaw -aaE -aaS -cEn -aaX -abN -abZ -acn -acu -aax -aaw -aal -aal -aal -aal -aal -aal -aal -aal -afM -agL -ahA -aie -adq -ajD -ako -ako -ako -ako -ako -aaf -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -cbV -cbU -cbU -cbU -cbV -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -cbV -cbV -cbV -cbV -cdi -cdi -cha -cdh -cfK -cdi -cmf -cnx -coc -cJK -coc -cnX -crL -cmf -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(166,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -cEm -aaw -aaF -aaT -aax -aby -aaX -aca -aax -acv -aax -cTl -aal -ade -adr -ade -ade -ade -ade -aal -afN -agM -ahB -aif -adq -ajE -akp -akp -akp -amD -ako -ako -ako -cFp -cFp -cFp -cFp -cFp -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aqU -aOd -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aVN -aVN -aVN -aaa -aVN -aVN -aVN -aVN -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbV -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -cbV -cfJ -cfK -cgU -chC -cie -cgu -cha -cRH -cdi -cdi -cmf -cny -cod -cJL -cpG -cnX -crM -cmf -aaa -aaa -aaa -aaa -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aad -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(167,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aax -aaG -aaU -abm -abm -abO -aaX -aax -acv -aax -aau -aal -cEm -aal -aal -aal -aal -cEm -aal -afO -agN -aeB -aig -adq -ajF -akq -akX -akX -amE -ano -aop -apk -bSC -aqh -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aOd -aqV -aqV -aqV -aSi -aqU -abC -abC -abC -abC -abC -abC -abC -abC -aVN -aVN -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aVN -aVN -abC -abC -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aac -aac -aac -aac -aac -aac -aac -aaa -aaa -aaa -cbU -cbU -cbU -cbU -cbU -cbU -cbV -ccs -ccs -ccs -cbV -cbV -cbV -ccs -ccs -ccs -cbV -cfJ -cgo -cgV -chD -cif -cgv -chd -cdi -ckT -ckT -ckT -ckT -ckT -cJM -cpH -cnW -crN -cmf -aaa -aaa -aaa -aaa -ctY -ctY -cxF -ctY -ctZ -ctZ -ctZ -ctZ -ctY -cxF -ctY -ctY -ctY -ctY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aac -aac -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(168,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aax -aaH -aaS -abn -aaS -abP -aax -aaX -acw -aax -acO -aal -aaw -ads -adL -aaw -ads -aaw -aal -afP -agO -adq -adq -adq -afW -akr -ako -ako -ako -ako -ako -ako -ako -cXu -cXw -cXw -cXw -cXx -cXw -cXw -cXw -cXx -cXw -cXw -cXw -cXx -cXw -cXw -cXw -cXx -cXw -cXw -cXw -cXw -cXD -cXI -aqV -cXP -cXF -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aVN -abC -aaa -aaa -abC -aaa -aaa -aXj -aaa -aaa -abC -aaa -aaa -abC -aVN -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -cWB -cWE -cIP -cWQ -cWT -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -abC -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aaa -aad -aab -aab -aad -aaa -aaa -aaa -cbU -cbU -cbU -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cfK -cRx -cgW -chE -cig -ccU -cha -cfJ -ckT -clF -cmk -cnz -coe -cpe -cpI -cnX -crL -csG -aaa -ctY -ctY -ctY -ctY -cwW -cvj -cyu -cyw -cyw -cyw -cyw -cyu -cvj -cBs -cFZ -cBT -cCh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aac -aac -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(169,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aaw -aaI -aaS -aaS -aaS -aaH -aaE -aaS -acx -abZ -abZ -acQ -adf -adf -adf -adf -aeC -adf -acQ -afQ -agP -ahC -aih -aiO -ahC -aks -akY -akY -amF -akY -akY -apl -aqi -aqV -aqV -aqV -aqV -cXy -aqV -aqV -aqV -cXA -aqV -aqV -aqV -cXy -aqV -aqV -aqV -cXA -aqV -aqV -aqV -aqV -cXy -aqV -aqV -aqV -aSi -aqU -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -abC -aWO -aWO -aWO -aWO -aWO -aXg -aWO -aWO -aWO -aWO -aWO -abC -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cbU -cbU -cbU -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cfK -cgq -cgX -chF -cih -cfI -cjx -cdi -ckT -clG -cml -cml -cml -cJM -cpJ -cnX -crL -csG -aaa -ctY -cuq -cvi -cFY -cwX -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cBG -cBT -cCh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(170,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aay -aaJ -aaV -aaS -abz -abQ -acb -aco -acy -acJ -abm -acR -adg -adt -adg -aef -aeD -adg -acR -afR -agQ -afW -aii -aiP -afW -akt -akZ -tPc -amG -alH -alH -apm -aqj -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -cXO -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aag -aaa -aVN -aaa -aaa -aWP -aWU -aWU -aWU -aWU -aXk -aXo -aXo -aXo -aXo -aXx -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aqU -bnW -aPC -cIP -aPC -btM -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cbU -cbU -cbU -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cfK -cgr -cgY -chG -cii -ciM -cRs -cRM -ckT -clH -enD -cmm -cof -cpf -cpK -cqQ -crN -csG -aaa -ctZ -cur -cvj -cwa -cvj -cvj -cyv -cyv -cyv -cyv -cyv -cyv -cvj -cvj -ctY -cBT -cCh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aad -aac -aac -aac -aad -aab -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(171,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aaw -aaK -aaW -aaS -aaS -Brt -aaE -aaS -acz -acc -acc -acS -adh -adu -adh -adh -adh -adh -acS -afS -agR -ahD -aij -aiQ -ahD -aku -ala -alI -amH -anp -alI -alI -aqk -aqV -aqV -aqV -aqV -aqW -aqV -aqV -aqV -aqV -aqV -aqV -aqV -cXB -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWQ -aWQ -aWQ -aWQ -aWQ -aXg -aWQ -aWQ -aWQ -aWQ -aWQ -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -bmN -bnX -aPC -cIP -aPC -btN -bvo -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cfJ -cgs -cDG -cgY -cfJ -ciN -cjy -cRN -ckT -clI -cmn -cnA -cmn -cpg -cpL -cnX -crL -csG -aaa -ctZ -cus -cvk -ctY -cvj -cvj -cFZ -ctZ -ctZ -ctZ -ctZ -cFY -cvj -cvj -ctY -ctY -cCi -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(172,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aax -aaw -aaS -abo -aaS -abR -aax -aaX -acA -aax -acO -aal -adi -adv -aaw -aaw -adv -adi -aal -afT -agS -afW -afW -afW -afW -akv -ako -ako -ako -ako -ako -ako -ako -dzg -cXv -cXv -cXv -cXz -cXv -cXv -cXv -cXz -cXv -cXv -cXv -cXz -cXv -cXv -cXv -cXz -cXv -cXv -cXv -cXv -aOe -cXJ -aqV -cXP -cXF -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -abC -abC -abC -abC -abC -abC -abC -aXg -abC -abC -abC -abC -abC -abC -abC -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -bmO -aZq -aZr -cIQ -bsn -aZq -bvp -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZM -aZM -aZM -aZu -aZu -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 -cbU -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cfJ -cfJ -cfK -cfJ -cfK -cdh -cjz -cha -ckT -clJ -clJ -clJ -clJ -cJM -cpI -cnX -crL -csG -aaa -ctZ -cur -cvj -cwa -cvj -cvj -cyw -cyw -cyw -cyw -cyw -cyw -cvj -cvj -ctY -cBT -cCh -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 -aaa -aaa -aaa -aaa -"} -(173,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -aal -aax -aaw -aaX -aaw -aaw -aaw -aaX -aax -acB -aax -aau -aal -aal -aal -aal -aal -aal -aal -aal -afU -agT -ahE -aik -afW -ajG -akw -alb -alJ -alJ -anq -aoq -apn -cXt -aql -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aWO -aWO -aWO -aWO -aWO -aXg -aWO -aWO -aWO -aWO -aWO -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aZM -aZM -aaa -abC -aaa -bmO -aZq -baq -bzM -bso -aZq -bvq -aZq -aZM -aaa -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZu -aZu -aZu -aZu -aZM -aZM -aZN -aZM -aZN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -cbW -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cbV -cbV -cfK -cgt -cjz -cko -ckT -cJy -cJE -cJE -cJE -cJN -cpI -cnX -crL -csG -aaa -ctY -cuq -cvl -cFZ -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cvj -cBG -cBT -cCh -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(174,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aal -cEm -aaw -aaF -aaT -aax -aby -aaX -aca -aax -acB -aax -aaw -aal -ade -ade -ade -aeg -ade -ade -aal -afV -agU -cKB -aik -afW -ajE -akp -akp -akp -akp -ako -ako -ako -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWP -aWU -aWU -aWU -aWU -aXk -aXo -aXo -aXo -aXo -aXx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aZM -aZM -aZN -aZM -aZM -aZM -aZM -aZM -abC -aaa -bmO -aZq -baq -bzM -bsp -aZq -bvr -aZq -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZO -aZO -aZO -aZM -aZM -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cbV -cbV -cdi -cgt -cjz -cJw -clK -cJz -cmo -cnB -cog -clK -cpM -cqR -crL -csG -aaa -ctY -ctY -ctY -ctY -cwY -cvj -cyx -cyv -cyv -cyv -cyv -cyx -cvj -cBs -cFY -cBT -cCh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(175,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aal -aal -aaw -aaE -aaS -cEn -aaX -abS -acc -acp -acC -aax -aaw -aal -aal -aal -aal -aal -aal -aal -aal -afW -afW -afW -afW -afW -ajD -ako -ako -ako -ako -ako -aaf -aaa -abC -aaa -aaa -aaa -aaa -aaa -cFp -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWQ -aWQ -aWQ -aWQ -aWQ -aXg -aWQ -aWQ -aWQ -aWQ -aWQ -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZO -aZO -aZO -aZM -aZM -abC -aZq -bmP -aZq -dkt -bzM -bso -aZq -bvs -aZq -aZq -aZq -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdi -cfJ -cjz -cgW -clK -cJA -cmp -cnC -coh -clK -cpI -cnX -crL -cmf -aaa -aaa -aaa -aaa -ctY -ctY -cxF -ctY -ctZ -ctZ -ctZ -ctZ -ctY -cxF -ctY -ctY -ctY -ctY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(176,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aaz -aax -aaw -aaw -abA -aax -aax -aax -aaw -acK -cEm -aal -aal -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -ajC -aaf -aaf -aaf -aaf -aaf -aaf -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -abC -abC -abC -abC -abC -abC -abC -aXg -abC -abC -abC -abC -abC -abC -abC -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZO -aZO -aZO -aZM -aZO -abC -aZq -bmQ -aZq -bpo -bzM -bso -aZq -bvt -bwA -bxM -aZq -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZq -aZq -aZq -aZq -aZq -aZq -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cdi -cRK -cgW -clK -clK -cmq -cnC -coi -cph -cpI -cnX -crL -cmf -aaa -aaa -aaa -aaa -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(177,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aau -aaL -aax -abp -aax -abM -aax -aaL -aaw -aal -aal -aal -aaf -aaf -aae -aae -aae -aae -aae -aaf -aaf -aaf -aaf -aaf -ajC -aaf -aaf -aaf -aaf -aaf -aaf -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cXF -cXL -aqV -cXQ -cXF -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWO -aWO -aWO -aWO -aWO -aXg -aWO -aWO -aWO -aWO -aWO -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -aZq -bmR -bcg -baq -bzM -bso -aZq -bvu -bwB -bxN -aZq -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZq -bcc -bdF -bcS -beE -aZq -aZN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -cbW -cbV -diT -diT -diT -diT -diT -diT -diT -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cfK -cRK -cRs -cJx -clK -cmr -VxC -coj -cpi -cpN -cqS -crO -cmf -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(178,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aaf -aaf -aaf -aae -aae -aae -aae -aae -aaf -aaf -aaf -aaf -aaf -ajC -aaf -aaf -aaf -aaf -aaf -aaf -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -cFp -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWP -aWU -aWU -aWU -aWU -aXk -aXo -aXo -aXo -aXo -aXx -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aZM -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -blB -bmS -aZq -baq -bzM -bso -aZq -bvv -bwC -bxO -aZq -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aZq -bcS -bcS -bcS -bcS -aZq -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -diT -ccA -ccH -ccP -cde -djm -diT -cbV -cbV -cbV -ccs -ccs -ccs -diT -diT -diT -diT -ccs -cfK -cjA -wpW -cgW -clK -cms -cnC -cok -cph -cpI -vnW -crL -cFW -csG -csG -csG -csG -cmf -cup -cup -cmf -csG -csG -csG -csG -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(179,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aal -aaf -aaf -aaf -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae -aaf -ajC -aaf -aae -aae -aaf -aaf -aaf -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWQ -aWQ -aWQ -aWQ -aWQ -aXg -aWQ -aWQ -aWQ -aWQ -aWQ -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aaa -aaa -aZM -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -blC -bmT -aZq -baq -bzM -bso -aZq -bvv -bwC -bxP -aZq -aZq -aZq -aZq -aZM -aZM -aZM -aZM -aZM -aZq -bcS -bcS -bcS -bcS -aZq -aZq -aZq -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -diT -diT -diT -ccB -djb -ccQ -cdf -cdk -diT -diT -cbV -cbV -ccs -ccs -ccs -diT -djv -dje -diT -ccs -cfJ -cfK -ckp -cRS -clK -cmt -cnC -col -clK -cpO -cqT -cpc -csE -cti -cti -cti -cti -cwb -cti -cti -cys -cti -cti -cAj -cti -cti -cAY -cBq -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(180,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aae -aae -aae -aae -aae -aae -aaf -aae -aae -aae -aae -aaf -ajC -aaf -aae -aae -aaf -aaf -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -abC -abC -abC -abC -abC -abC -abC -aXg -abC -abC -abC -abC -abC -abC -abC -aVN -aaa -aaa -aaa -aaa -abC -aZM -aZM -aZM -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -blD -bmU -aZq -bpp -bqG -bsq -aZq -bvw -bwD -bxQ -aZq -bzK -bBc -aZq -aZM -aZM -aZM -aZM -aZM -aZq -bcP -bMu -bNE -bOI -bPO -bQP -bPO -bSA -bSA -bSA -bSA -bvo -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -cce -ccn -ccq -diY -ccC -ccI -ccR -cdg -cdl -cdo -diT -cbV -cbV -cbV -cbV -cbV -diT -dje -cFK -diT -ccs -ccE -cDe -cRP -ckU -clK -cmu -cnD -com -clK -cpP -cqU -crP -csH -ctk -ctk -ctk -ctk -cwc -ctk -ctk -cyy -czk -czk -czk -czk -cAL -cAZ -cBr -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(181,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aae -aae -aae -aae -aae -aaf -aaf -aaf -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aae -aae -aae -aae -aaf -ajC -aaf -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aVN -aaa -aaa -aWO -aWO -aWO -aWO -aWO -aXg -aWO -aWO -aWO -aWO -aWO -aaa -aaa -aVN -aaa -aaa -aaa -aaa -abC -aZM -aZM -aZO -aZO -aZO -aZO -aZq -aZq -aZq -aZq -aZq -aZq -aZq -blE -aZq -aZq -baq -bzM -bso -aZq -aZq -bwE -aZq -aZq -aZq -bBd -aZq -aZq -aZq -aZq -aZq -aZq -bcg -aZq -bMv -aZq -aZq -aZq -aZq -aZq -aZq -aZq -aZq -aZq -bVb -bVD -bVD -bVD -cWV -bVD -bVD -bVD -bVD -cWV -bVD -bVD -bVD -bVD -cWV -bVD -bVD -bVD -ccf -diT -diT -diT -diT -diT -djg -diT -diT -cdp -diT -diT -diT -diT -diT -diT -diT -cFJ -diT -diT -diT -diT -diT -ckq -ckV -clK -cmv -clK -clK -clK -cpQ -cqV -crQ -cpD -csG -csG -csG -csG -cmf -cwZ -cxG -cmf -csG -csG -csG -csG -cpD -cBa -cBp -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(182,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aaf -aaf -ahF -ajH -ahF -aaf -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -cXF -cXK -aqV -cXP -cXF -aqU -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aWP -aWU -aWU -aWU -aWU -aXk -aXo -aXo -aXo -aXo -aXx -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aZN -aZM -aZM -aZO -aZO -aZO -aZO -aZq -bgr -bhm -bhm -bjG -dyY -dzm -blF -bkG -bnY -bpq -bqH -bsr -bhm -bhm -bwF -bhm -byM -bzL -bxR -bxR -bxR -bxR -bFD -bxR -bxR -bxR -bxR -bMw -bNF -bOJ -bso -bQQ -bRN -bSB -bso -bTM -bsn -cWU -cWU -cWU -cWU -cWW -cWU -cWU -cWU -cWU -cWZ -cWU -cWU -cWU -cWU -cWW -cWU -cWU -cWU -cWU -diU -diW -diZ -dja -djc -djh -djh -cdm -cdq -cdw -cdG -cdS -cel -cdG -cdG -cdG -cdG -cFL -cdG -cdG -ciO -cjB -ckr -ckW -clL -cmw -djx -djx -cpj -cpR -cqW -crL -cmf -aaa -aaa -aaa -aaa -cmf -cmf -cmf -cmf -aaa -aaa -aaa -aaa -cmf -cmf -cmf -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aaf -aaf -ahF -ajI -ahF -aaa -aaa -aaa -aaa -aaa -aaa -abC -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abC -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -aaa -alc -alc -alc -aaa -aaa -aaa -aWQ -aWQ -aWQ -aWQ -aWQ -aXg -aWQ -aWQ -aWQ -aWQ -aWQ -aaa -aaa -aVN -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZq -aZq -aZq -aZq -aZq -bgs -cFl -bhn -bjH -cOq -bhn -blG -bEq -cII -bEq -bqI -qza -aZQ -aZQ -dyZ -bEq -byN -dza -bar -bCe -bDg -bEq -bFE -bEq -bEq -bEq -bEq -bMx -bnZ -bdH -aZQ -aZQ -aZQ -aZQ -aZQ -aZQ -aZs -cWU -cWU -cWU -cWU -cWU -cWU -cWU -cWU -cWU -cYc -cWU -cWU -cWU -cWU -cWU -cWU -cWU -cWU -cWU -diV -diX -ccu -diX -djd -diX -diX -djn -diX -cdx -diX -diX -vCD -diX -cfk -diX -diX -diX -diX -diX -diX -cGP -diX -djw -djd -cmx -diX -diX -diX -cpS -cqX -crL -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(184,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aae -aaf -aaf -cXs -cXs -cXs -abC -aaa -aaa -aaa -aaa -aaa -alc -alk -alc -alc -alc -alc -alc -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -alc -alc -alc -alc -cFp -cFp -cFp -cFp -cFp -cFp -cFp -abC -aXg -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aZN -aZM -aZM -aZq -bcL -cMU -bew -aZq -bgt -aZQ -bib -bjI -cOr -biM -blH -bmV -boa -bpr -cIR -bss -bqJ -btO -bwG -bwG -byO -bzN -bBe -bCf -bDh -bEr -bFF -bEr -bIK -dzn -bEr -bMy -bNG -bOK -cFC -bPP -bRO -bPP -bPP -bPP -bUC -cWU -cWU -cWU -cWU -cWX -cWU -cWU -cWU -cWU -cXa -cXb -cXb -cXb -cXb -cXc -cXb -cXb -cXb -cXb -cXd -cXe -cXe -cXe -ccJ -ccS -cXe -cXf -cXg -cdy -djr -dzp -djr -djr -cfl -djr -djr -djr -djr -cij -ciP -cjC -djr -ckX -clM -cmy -clM -clM -clM -cpT -cqY -crR -cmf -aaa -aaa -aaa -aaa -cmf -cmf -cmf -cmf -aaa -aaa -aaa -aaa -cmf -cmf -cmf -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(185,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -abC -aaa -aaa -aaa -aaa -alc -alc -alc -alc -alc -amI -amI -alc -alc -alc -abC -aaa -aaa -alc -alc -alc -alc -alc -aaa -abC -aaa -aaa -aaa -aqU -aSi -cXK -aqV -aqV -aSi -aqU -aaa -aaa -aaa -alc -alc -alc -alk -abC -abC -abC -abC -abC -abC -abC -abC -aXg -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZq -bcM -cYq -bex -bfm -bgu -bho -bic -aZq -cOs -cOC -cOC -cOC -bob -cIM -cIS -bob -bob -bob -bvx -bvx -byP -bzO -bvx -bvx -bCg -cFu -bCg -bCg -bCg -bCg -aZq -bMz -aZq -aZq -aZq -aZq -aZq -aZq -aZq -aZq -aZq -bVc -bVE -bVE -bVE -cWY -bVE -bVE -bVE -bVE -cWY -bVE -bVE -bVE -bVE -cWY -bVE -bVE -bVE -ccg -diT -diT -diT -diT -diT -diT -diT -diT -diT -cdz -diT -diT -diT -diT -diT -diT -diT -diT -djg -diT -diT -diT -cks -ckV -diT -diT -diT -diT -diT -cpU -cqZ -crS -cFW -csG -csG -csG -csG -cmf -cxa -cxH -cmf -csG -csG -csG -csG -cpD -cBb -cBp -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(186,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -abC -abC -aaa -aaa -aaa -alc -alc -amI -alc -amI -amI -amI -alc -alc -amI -alk -alc -amI -amI -alc -alc -alc -alc -aaa -abC -cFp -cFp -cFp -aNn -cXG -cXK -aqV -aqV -cXS -aTf -cFp -cFp -akx -alc -alc -alc -alc -cFp -cFp -cFp -cFp -cFp -aaa -aaa -abC -aXg -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZq -bcN -bdC -bey -bfn -bgv -bhp -bid -bcg -bjJ -bgq -bhl -bia -bob -bps -bqK -bst -btP -cJa -cGu -bvy -dAg -bzP -bBf -dBe -bCg -bEs -bFG -bHl -bIL -bCg -bKV -bMA -bcR -bOL -bap -bQR -bRP -bSC -bSC -bSC -bSC -bVd -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aYt -cco -ccr -ccv -ccD -ccK -ccK -cZn -ccK -ccK -cdA -diT -cbV -ccs -ccs -ccE -cfJ -cfJ -cgY -cEj -cRG -cgY -cCQ -ckt -ckY -cfK -cdi -cdi -cdi -cmf -cpV -cra -crT -csE -cti -cti -cti -cti -cwd -cti -cti -cys -cti -cti -cti -cti -cwV -cAY -cBt -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(187,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -abC -abC -alk -alc -alc -amI -amI -dfa -dfa -deW -deS -dfa -dff -deS -dfa -dfa -deS -deS -alc -amI -amI -alc -alc -aaa -aaa -aaa -aJu -aNo -aJu -aPD -dhd -dhi -dgK -aTg -dgK -akx -akx -alc -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -abC -aXg -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZq -bcO -bdD -bez -aZq -bgw -bhp -bic -cOh -cOh -cOh -cOh -cOh -bob -bpt -bqL -cIT -bsu -cJb -bvz -bwI -dAS -dAX -bwH -bCh -dBp -bDj -bFH -dBL -bIM -bCg -bcS -bMB -bcS -bcc -aZq -aZq -aZq -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -diT -diT -diT -dje -dje -dje -dje -diT -diT -diT -cbV -ccs -ccs -ccE -cfK -cRy -cgZ -cRu -cRu -ciQ -cRu -cku -cRT -cfJ -cdi -cdi -cdi -cmf -cpW -crb -crU -csF -ctj -ctj -ctj -ctj -cwe -ctj -ctj -cyt -czj -czj -czj -czj -cGb -czj -cBr -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(188,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -alc -alc -amI -deS -deS -dfa -dfo -dfe -dfw -cLa -dfC -dfF -ayH -dfK -aBm -dff -dfa -dfa -deS -alc -alc -alc -akx -akx -aJu -aNp -aJu -cXM -dhe -aRx -dgK -aTh -dgK -alc -alc -alc -amI -amI -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -abC -aXg -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZq -cMM -bdE -beA -aZq -bgw -bhq -bie -dzv -cOt -cOD -cOK -cOY -bob -bpu -bqL -PXL -bsv -cJb -bvA -bBh -dAS -bzQ -bBg -bCi -dBq -bEu -bFI -bDl -bIN -bCg -bcS -bMB -bcS -bcL -aZq -aZM -aZM -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -aaa -aaa -aaa -cbV -cbV -cbV -diT -djf -dji -djj -djo -diT -cbV -ccs -ccs -ccs -ccs -ccE -cfJ -cRy -cgW -chI -chI -chI -chI -chI -chI -chI -chI -chI -chI -chI -cpX -crc -crV -cmf -csG -csG -cut -csG -cmf -cun -cun -cmf -csG -csG -csG -csG -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(189,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -abC -aaa -akx -alc -amI -amI -deS -deW -dfa -aor -dfe -dfs -dfx -dfs -dfs -dfG -dfI -dfG -dfL -dfG -dfK -dfT -deS -amI -amI -aJu -aKr -aKr -aJu -aNq -aJu -cXM -dhe -aRy -dgK -aTi -dgK -dgK -dgK -alc -amI -amI -alc -alc -alc -alc -alc -aaa -cFp -abC -abC -aXg -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZq -aZq -aZq -aZq -aZq -bgw -bhp -bic -cOi -bjK -HLI -cOE -bmX -bob -bpv -bqM -cIU -bsw -cJb -bvB -bwI -byQ -bzR -bBh -dBf -bCj -bEt -bFJ -dBM -bIO -bCg -bKW -bMC -bNH -bOM -aZq -aZM -aZM -aZM -aZM -aaa -aWr -aWr -aWr -aWr -aWr -aWr -aWr -aWr -aWr -aWr -aaa -aWr -aWr -aWr -aWr -aWr -aWr -aWr -aaa -aaa -cbV -cbV -cbV -diT -diT -diT -diT -diT -diT -cbV -ccs -ccs -ccs -ccs -ccE -cfK -cgY -cRD -chI -cil -ciR -cim -cjF -cim -ckZ -ckZ -cnE -ckZ -chI -cpW -crd -crW -cmf -cbU -cbU -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(190,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -akx -akx -alc -amI -amI -deS -apo -aos -dfk -dfk -dfk -cKY -ave -dfk -dfk -ayI -cKY -dfk -dfk -aDz -deW -dfa -deS -deS -aJu -aKs -aLp -aMm -aNr -aOf -cXM -dhe -dhj -dgK -aTj -aTM -aUg -dgK -alc -amI -aVB -aVC -aVB -aVB -aWI -alc -aaa -aaa -abC -die -aXh -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -bgw -bhp -bic -dzw -cOu -cOF -cOL -bmY -bob -bpw -bqN -cIV -bsx -cJc -bvC -dAP -byR -bzS -bBi -dBc -dBq -bDk -bFK -bHm -bIP -bCg -bKX -bLr -aZq -aZq -aZq -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbV -cbV -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccE -cfK -cgp -cgW -chI -cim -ciS -cim -ciT -cim -cim -cjF -cnF -ckZ -chI -cpY -cnX -cFV -cmf -cbU -cbU -cbU -aaa -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(191,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiR -ajJ -anv -cTq -aiR -deS -deW -dfa -dfe -dfh -aqX -aqX -aqX -aqX -aqX -aqX -aqX -aqX -aqX -aqX -dfe -dfh -deW -dff -aHp -dff -aJu -tTl -aLq -aMn -aNs -aOg -cXN -dhe -aRA -dgK -aTk -aTN -aUh -dgK -dfN -dfN -aVB -aVT -aWl -aWz -aWI -aWI -aWI -abC -abC -aXg -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZM -aZM -aZO -aZM -aZO -aZq -bgw -bhp -bic -cOh -cOv -cOG -cOM -cOZ -bob -bpx -bqO -bsy -bob -bob -dku -bwI -byS -bzT -dAs -bwI -dBs -dBy -bFL -dBN -bIQ -bCg -bKY -bMD -beI -beF -aZO -aZO -aZM -aZM -aZM -aZN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -cbW -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccE -cdi -cgY -cRE -chI -cin -ciT -cjD -ciT -cjF -cim -ckZ -cnG -con -cpk -cpZ -cnX -crW -csG -cbU -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -"} -(192,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiS -alj -ajK -cTr -aiR -aiR -deX -aor -aos -aqm -aqX -arS -asU -arS -asV -asV -axf -ayJ -arS -aqX -dfo -aDA -dfK -dfG -dgb -deW -aJv -aKu -aLr -aMo -aNt -aOh -aPE -dhf -aRB -cEV -aTl -aTO -aUi -dgK -ajb -dfY -aVC -aVU -loB -aWA -aWJ -aWR -aWJ -dib -dib -aXh -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aZN -aZM -aZM -aZM -aZM -aZO -aZM -aZO -aZq -bgw -bhp -bic -dzx -cOw -cOH -cON -bmZ -boc -bpy -bqP -bsz -cYr -btQ -bvD -bxS -dAU -bzU -bBj -dBh -bCg -bEv -dBI -bHn -bIR -bCg -bKZ -bME -bNI -beI -beF -beF -aZO -aZO -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccE -cdi -cth -cgW -chI -dzq -cim -cjE -ckv -kzz -ckZ -ckZ -ckZ -ckZ -chI -cqa -cnX -crW -csG -cbU -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(193,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -ajL -aky -ald -alK -amJ -akW -aos -app -dfa -aqX -arT -asV -arS -arS -awt -asV -asV -azY -aqX -deW -amn -dfU -jfM -dfU -dgj -aJu -aJu -aJu -aJu -aJu -aJu -aPF -aQw -aRC -dgK -aTm -dhC -aUj -dgK -dgP -aVr -aVD -aVV -aWn -aWB -aWI -aWI -aWI -abC -abC -abC -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -cFf -bgw -bhp -bic -dzy -bjL -bkI -cOO -cPa -bod -bpz -bqQ -bwH -bsA -dAF -bvE -bwJ -byT -bzU -dAs -dBi -bCg -dBz -dBJ -Vud -bIS -bCg -brm -bMF -bNJ -bON -bPQ -beI -aZO -aZM -aZu -aZu -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cbV -cdi -cfL -cth -chc -chI -cim -cim -cjF -cim -cjF -ckZ -cmz -cnH -cnH -chI -cpX -cnX -crW -csG -cbU -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(194,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -dkm -akz -ald -alL -aiR -anr -aot -cKQ -dff -aqX -arU -asW -atY -UrW -asV -axg -asV -azZ -aqX -dff -deW -dfa -dfF -cLC -cLJ -cLR -dfU -dgj -dfL -dgF -dgK -aPG -dhg -aRD -dgK -aTn -dhD -aUk -dgK -dfY -dhL -aVC -aVC -aVB -aVC -aWI -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZO -aZq -bgw -bhp -bic -dzw -bjM -cTZ -blI -dzK -cPe -cPk -cGt -bwI -bEz -dAF -dAJ -bxT -byU -dAY -bBk -dBj -bCg -bEw -bFM -bHp -bIT -bCg -bLa -bLb -cQx -brm -cQN -beH -aZO -aZM -aZu -aZu -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -ccs -ccs -cfK -cfK -ccE -ccE -cbV -cbV -ccs -ccs -cbV -cdi -cfJ -cfJ -cfM -cth -cha -chI -cim -ciU -cjG -cjG -cjG -clN -cmA -cnI -coo -cpl -cqb -cqT -crX -csG -cbU -cbU -cbU -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(195,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -ajN -akA -ald -alM -aiR -ans -aou -dff -dff -aqX -arS -asV -atZ -avg -atZ -axh -axg -azZ -aqX -dff -dff -cLr -cLr -cLr -cLr -cLr -cLr -dfh -dfL -deW -dgL -aPH -aQx -aRE -aSj -aTo -dgK -dgK -dgK -dfV -aoU -dfO -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -aZq -aZq -aZq -aZq -aZq -aZq -bgw -bhp -bif -cOj -biP -biP -biP -biP -boe -cPk -dAc -bBh -dAw -cKg -boe -bwK -boe -bzV -bBl -boe -bCg -dBA -bFN -bHq -bCg -bCg -cFz -bLb -bLb -brm -cQN -beF -aZO -aZO -aZM -aZM -aZu -aZu -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -ccs -ccs -cfK -ccL -ccT -cfK -cdi -cfJ -ccE -ccE -cdi -cdi -ceL -cfm -cfm -cth -cRD -chI -cio -ciV -cim -cjF -cim -cim -cim -cnJ -cim -chI -cFT -cnX -crW -csG -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(196,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -ajM -akA -ale -alN -aiR -aiR -any -any -any -aqX -aqX -aqX -aua -avh -aua -aqX -aqX -aAa -aqX -any -any -cLr -cLx -cLD -cLK -cLS -cLr -amn -dfk -aNg -aOi -aPI -aQy -aRF -dgK -dgK -dgK -dfM -dfM -dhL -dgd -dgK -dgK -dgK -dgK -dgK -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZM -aZq -bcc -bcQ -bdF -beB -aZq -bgw -bhp -bic -biP -bjN -bkJ -blJ -bna -bof -bpB -bqR -bsB -cPl -cPm -cPm -cPm -byV -bzW -bBm -bCk -bDq -bEx -bFO -bHr -bIU -bJY -dBO -bMG -bLb -cNA -cQN -beF -aZO -aZO -aZM -aZM -aZM -aZu -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccE -ccM -cth -ccU -ccU -cdh -ccU -cdi -ccU -cth -ceL -cfm -cfK -cRz -cgW -chI -chI -chI -chI -chI -chI -chI -chI -chI -chI -chI -cqc -cnX -crW -csG -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(197,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -ajM -akA -YNP -alM -amK -aiR -aov -cKR -aqn -aqY -arV -asX -aub -avi -aub -axi -ayK -aAb -aBn -aCl -aDB -cLs -cLy -cLE -cLL -cLT -cLr -cMa -deX -auA -dgM -aPJ -dhe -aRG -dgK -dfM -dfM -dfM -aUK -aoU -dgv -dgK -dhS -dhW -aWC -dgK -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZM -aZq -bcd -bcR -bcR -beC -bfo -bgx -bhr -bie -biP -bjO -wGW -blK -bnb -bog -bpC -bqS -bBh -bwI -bBh -bwI -bBh -dAV -bzX -bBn -dBk -bDr -bEy -bFP -bHs -bIV -bJZ -bLc -bMH -bLb -brm -bPS -beH -aZM -aZO -aZO -aZM -aZM -aZu -aZu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccE -ccE -ccV -cRr -ccU -ccU -cth -ccU -ccU -cem -cdi -cdi -cfJ -cRA -cgW -cfJ -cfK -cdi -cfJ -cfJ -cdi -cdi -cdi -cdi -cdi -cpD -cpX -cnX -crW -csG -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(198,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -dkm -akA -ald -alO -amL -ant -aow -apq -apq -aqZ -aqZ -cGh -aqZ -avj -apq -apq -ayL -aAc -aBo -cLj -aDC -cLt -cLz -cLF -cLM -cLU -cLr -dfa -deS -dfa -dgK -aPK -aQz -aRH -dhn -aTp -dfX -dfX -aoU -dfN -dgv -dgK -dhT -dhT -aWD -dgK -dgK -dgK -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aZq -aZq -aZq -bce -bcS -bcS -beD -aZq -dzl -bhp -bic -biP -bjP -bkL -blL -bnc -boh -bpD -bqT -bpM -bpM -bpM -bwL -bpM -bpM -bzY -dBc -dBc -dBc -dAw -dBc -bHt -bIW -bKa -bLd -bMI -bLb -cQI -cQN -beF -aZO -aZO -aZO -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccE -ccE -ccE -cdi -cdi -ccE -ccE -cdi -cfK -cdi -cdi -cdi -cdi -cfJ -chd -cgY -cfJ -cRI -cRL -cfJ -cRU -cfJ -cfK -cfK -cop -cmf -cpY -cnX -crW -csG -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(199,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiT -ajO -akB -alg -alP -amM -anu -aox -aox -aox -ara -ara -aox -ara -avk -aov -aov -aov -aov -aBo -aov -aDC -cLu -Arn -cLG -cLN -cLV -any -any -any -any -any -aPJ -dhe -aRF -dho -dhu -dfY -dfW -afw -dfN -dgv -dgK -aVW -aWo -aWo -aWK -aWS -aWV -aWW -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aqU -aYP -bSC -bSC -bap -baT -bap -bcf -bcL -bcL -beE -aZq -bgy -bhs -big -biP -biP -biP -biP -biP -boi -bpE -bqU -dAn -btR -btR -boe -btR -boe -btR -btR -dAn -bDs -bEA -bFQ -bFQ -bFQ -bKb -bLd -bMJ -bLb -bNI -bPT -beI -aZO -aZO -aZO -aZM -aZM -aZM -aZN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -cbW -cbU -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccE -ccE -cfJ -cfj -cfI -cfI -ciW -cfI -cRQ -cfI -cRu -ciQ -cnK -coq -cks -cpX -cre -crX -csG -cbU -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(200,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiU -ajP -akC -alh -ali -amN -aiR -aov -aov -aqo -arb -arW -asY -asb -avl -awu -aox -aox -aox -aBp -ayP -cLq -cLv -cLA -cLH -cLO -cLW -any -aLs -aMp -aNu -aOj -aPL -aQA -aRF -dgK -dgK -dgK -dgK -dgK -dgK -dgK -dgK -aVX -cEV -dgK -dgK -dgK -dgK -aWX -aWZ -aWZ -aWZ -cWo -aWZ -aWZ -aWZ -aWZ -cWo -aWZ -aWZ -aWZ -aYQ -aZq -aZq -aZq -aZq -aZq -aZq -aZq -aZq -cFf -aZq -bgz -bhp -bih -biP -bjQ -bkM -blM -bnd -boj -bpF -bqV -cFq -btS -bvF -bwM -bxU -byW -bvF -bBo -btQ -dBu -dAw -bFQ -bHu -bIX -cGD -bLe -bMK -bLb -brm -cQN -beF -beF -aZO -aZO -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -ccs -ccs -ccs -ccs -ccs -ccE -ccE -cfJ -che -cgn -ccU -cha -cdh -ccU -cth -cRr -cDg -cCQ -cRV -cks -cpX -cnX -crY -cmf -cbU -cbU -aaa -aaa -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -cmf -cun -cun -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(201,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiR -ajQ -aiR -ali -alQ -amO -aiR -aov -aov -aoz -arc -arg -any -arg -avm -aoz -aov -aov -aAd -any -aCm -aDC -any -any -any -any -any -any -aLt -aov -aov -aBo -aPM -dhe -aRI -aSk -aTq -aSk -aSk -aUL -cYi -aVs -cMn -aVY -aSk -aSk -aWL -aWT -cIl -cIm -cIm -cIm -cIm -cWp -aXs -aXs -aXs -aXs -cWx -aXs -aXs -aXs -aXs -cIr -aZP -cIw -baU -cIw -cIw -cIw -bdG -cIw -cIw -bgA -cWz -bic -biP -bjO -bkK -blK -bne -bog -bpC -bqW -bsC -btT -bvG -bwN -OPP -byX -bzZ -bBp -bCl -dBv -dAw -bFQ -bHv -bIY -bIY -bLd -bML -bLb -brm -bPU -bJj -beI -aZO -aZO -aZM -aZM -aZO -aZM -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbU -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cbV -cbV -cbV -ccE -ccE -ccE -cdi -cfJ -cRH -ciX -cgn -cdi -cfK -cdi -cfJ -cdi -cdT -cdT -cGT -crf -crZ -cmf -cbU -cbU -cbU -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -csG -cuo -cuo -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(202,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiR -aiR -aiR -aiR -aiR -aov -aov -aoz -ard -arh -aoz -arh -ard -aoz -axj -ayM -aAe -any -aCn -aDD -aBn -aGs -aHq -aIx -aJw -aKv -aLu -aov -aov -aBo -aPM -aQB -aRJ -dhe -aTr -zpw -dhe -aUM -dhe -dhO -dhe -dhe -dhe -dhe -aWM -dhe -dhd -cWk -cWk -cWk -cWk -cWk -cWk -cXY -cWk -cWk -cWk -cWk -cWk -cWk -cWk -aZs -aZQ -bar -aZQ -aZQ -aZQ -aZQ -bdH -aZQ -aZQ -bgB -cFm -bic -biP -bjP -bkL -blL -bnf -dzT -dzX -bqX -bsD -btU -bvH -bwO -bwO -bwO -bAa -bBq -bCm -bDt -bEB -bFQ -bHw -bIY -XtS -bLd -bMM -bLb -bOO -bPV -bQS -beH -aZO -aZO -aZM -aZO -aZO -aZO -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdT -cdT -cdT -cdT -cdT -cdT -cdT -cdU -cdT -cdT -cdT -cdT -cdT -cdT -cdU -cdT -cdT -cpm -cqd -crg -csa -cFW -csG -csG -csG -csG -cmf -cup -cup -cmf -csG -csG -csG -csG -cmf -cup -cup -cmf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(203,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -akx -any -aoz -aoz -aoz -arc -asa -aoz -asa -avm -aoz -aoz -aoz -aoz -any -aCo -aDE -aEX -aGt -aHr -aov -aDC -aoz -aLv -aov -aov -aOk -aPN -aQC -aRK -aSl -aTs -aTP -aUl -aUN -aVh -aVt -aVE -dhU -aWp -dhU -dhU -dhU -dia -cWk -cWk -cWk -cWk -cWq -cWk -cWk -cWk -cWk -cWq -cWk -cWk -cWk -cWk -aZt -aZR -bas -baV -bbA -bbA -bcT -bdI -bbA -bbA -bgC -baV -bii -bij -bij -bij -bij -bij -bij -bpG -bqY -boe -btV -bvI -bwP -bxW -byY -bBh -dBd -dBn -bDu -dAw -bFQ -bHx -bIY -bKc -bLf -bIZ -bNK -bOP -bPW -bGa -beH -aZO -aZO -aZM -aZO -aZO -aZO -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdU -cen -ceM -ceM -cfN -cet -chf -cGO -ciq -chJ -cjI -cFO -chJ -cGO -chJ -cnL -chh -chh -cqe -cnX -csb -csI -ctl -ctl -ctl -ctl -cwf -ctl -ctl -cyz -czl -cti -cti -cti -cti -cAY -cBq -csG -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(204,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -aoA -aoA -are -arf -aoA -arf -avn -aoA -aoA -aoA -aaa -any -aCp -aDF -aEY -aGu -mhj -aov -aJx -aKw -aLw -aov -aov -aOk -aOk -aQD -aRL -aSm -any -dgK -dgK -aUO -aOu -dgL -dgK -dgK -dgK -dgK -dgK -dgK -dgK -aWY -aWY -aWY -aWY -cWr -aWY -aWY -aWY -aWY -cWr -aWY -aWY -aWY -aWY -aZq -aZq -aZq -aZq -aZq -bcg -aZq -aZq -aZq -bfp -bgD -aZq -bij -biQ -bjR -dzB -dzD -bng -bij -bpH -dAd -dAn -btR -btR -boe -btR -boe -btR -btR -dAn -bDv -dAw -bFR -bHy -cFx -bKd -bLg -bMN -bLb -beG -bPX -bQT -beI -aZM -aZM -aZM -aZO -aZO -aZO -aZM -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cbU -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdT -ceo -ceN -cfn -cfO -cgw -chg -cfn -cir -cfn -cfn -cfn -cfn -cfn -cfn -cfn -cfn -cfn -cqf -cFU -csc -csF -ctj -ctj -ctj -ctj -cwg -cxb -ctj -cyt -czm -czU -czU -cGa -cAM -cBc -cBu -csG -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(205,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -apr -apr -apr -apr -asZ -apr -apr -apr -axk -aoA -aAf -aoz -aCq -aDG -aBp -aGv -aov -aov -aJy -aoz -aLx -aov -aov -aov -aov -aQE -ayR -aSn -any -alc -dfN -aUP -cYk -cYl -cMo -aVZ -dfN -alc -alc -alc -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aZu -aZu -aZM -aZM -aZO -aZO -aZO -aZO -beI -bfq -bgE -bht -bij -biR -lnN -bkN -bjS -bnh -bok -bpI -bqZ -bsE -btW -btW -bwQ -btW -byZ -btW -bBr -bCn -bDw -bEC -bFQ -bHz -cFy -bKe -bLh -dBP -bLb -beG -bPY -cQO -beG -aZM -aZO -aZO -aZO -aZM -aZM -aZu -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cbU -cbV -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdT -ceo -ceO -ceQ -cfP -cdT -chh -ceQ -ceO -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -cfQ -chi -cpE -cpE -csd -cpD -cmf -cmf -cun -cmf -cmf -cmf -cmf -cmf -cun -cmf -cmf -cmf -cpD -cBd -cBv -cmf -cbV -cbU -cbU -cbU -aaa -cbV -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(206,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -apr -apr -apr -apr -apr -apr -apr -apr -apr -ayN -aAg -aoz -aCm -aDH -any -aGw -aHs -ayP -aJz -aBp -aLy -aox -aox -aox -aox -aQF -cHV -aSn -any -alc -dfN -aUQ -dhM -dgw -dhQ -aWa -dfN -alc -alc -alc -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -abC -aaa -aaa -aZu -aZu -aZu -aZM -aZM -aZM -aZO -aZO -beH -bfs -bgF -brm -bij -biS -bjT -bkO -blN -bni -bol -bpJ -dAe -bsF -bBh -bwI -bBh -bwI -bBh -bwI -bBs -bCo -dBw -dBc -cKk -bFQ -bFQ -bFQ -bFQ -bLb -bLb -beG -cQN -brm -beG -aZM -aZO -aZO -aZO -aZM -aZM -aZu -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cbU -cbV -cbV -cbV -cbV -ccs -ccs -ccs -ccs -ccs -ccs -ccs -cbV -cdT -cep -ceP -ceQ -cfQ -cgx -chi -chi -chi -chi -Hmg -chi -chi -clO -chi -chi -cor -cdT -cmf -cmf -cmf -cmf -cbU -csG -cuo -csG -cbU -cbU -cbU -csG -cuo -csG -cbU -cbV -cmf -cmf -cBw -cmf -cbV -cbV -cbV -cbU -cbU -cbV -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(207,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -acD -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aqU -aoA -dzt -apr -apr -apr -apr -apr -apr -apr -apr -ayN -aAg -aoz -aCm -aDH -any -aGx -aCm -aIy -aJA -aKx -aLz -aov -aov -aov -aov -aQE -aoC -aSn -any -alc -dfN -dhI -dhN -aVu -aVF -dhV -dfN -alc -alc -alc -alc -aWr -aWr -aWr -aaa -aWr -aWr -aWr -aWr -aaa -aWr -aWr -aWr -aWr -aWr -aZu -aZu -aZu -aZu -aZM -aZM -aZM -aZO -beI -bft -bgF -cNM -bij -biT -dzA -bkP -cGs -bnj -bij -bpA -dAf -dAq -btX -bvJ -bwR -bxX -bwR -bAb -bBt -bCp -dBx -dBH -bDx -bHA -bJa -bKf -bLi -bDA -beG -beG -bPU -bsS -beH -aZM -aZO -aZO -aZO -aZM -aZM -aZu -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -cbV -cdT -ceq -ceQ -ceQ -cfR -cdT -ceQ -ceQ -ceQ -ceQ -ceQ -ckw -ceQ -clP -ceQ -ceQ -cos -cdT -cbV -cbV -cbV -cbU -aaa -cmf -cup -cmf -cbU -cbU -aaa -cmf -cup -cmf -aaa -cbV -cbV -cBe -cBx -cBe -cBe -cbV -cbV -cbU -cbV -cbV -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -apr -apr -apr -apr -apr -apr -apr -apr -apr -ayN -aAg -aoz -aCr -aDI -any -aGy -aCm -aov -aJB -aoz -aLA -aMq -aNv -aOl -aPO -aQG -aRM -aSo -any -alc -dfN -dfN -dfN -dho -dfN -dfN -dfN -alc -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZu -aZu -aZM -aZM -aZM -beG -bft -bgF -cNA -bij -biU -bjU -dzC -blO -bnk -bij -bpK -bra -bsF -btY -cKh -bvK -bvK -bvK -bAc -bBu -bCq -bDx -bDx -bDx -bHB -bJb -bJb -bLj -bDA -beG -bOQ -bPU -cNM -beI -aZM -aZO -aZO -aZO -aZM -aZM -aZu -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbV -cbV -cbV -cbV -ccs -ccs -cbV -cdT -cer -ceQ -cfo -cfS -cet -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -ceQ -cdT -cbV -cbV -cbU -cbU -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -cbV -cBe -cBy -cBH -cBe -cBe -cmf -cmf -cmf -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(209,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -apr -apr -apr -apr -dzu -apr -apr -apr -axk -aoA -aAh -aoz -aCm -aDH -any -aGz -aCm -aIz -aJC -any -any -any -any -aOm -any -aQH -dhk -any -any -alc -amI -dfN -RUN -cYm -dfO -alc -alc -alc -alc -alc -alc -alc -alk -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aZN -aZM -aZM -aZM -beH -cNm -bgF -bfr -bij -biV -biV -biV -biV -biV -bij -dzY -dAg -bsG -btZ -bvK -bwS -bxY -bza -bAd -bBv -bCr -bDy -bED -bFS -bHC -bJc -bKg -bLk -bDA -bNL -brm -cQN -cNA -beI -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbU -cbU -cbV -cbV -cbV -cbV -cbV -cdU -ces -ceR -ceR -cfT -cet -ceQ -chK -ceQ -ceQ -ceQ -ckx -ceQ -ceQ -ceQ -chK -cFR -cdT -cbV -cbV -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -cbV -cBe -cBz -cBI -cBU -cBU -cCr -cCC -cmf -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(210,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aqU -aoA -aoA -aoA -arf -arf -aoA -auf -arf -aoA -aoA -aoA -aaa -any -aCp -aDH -any -aGA -aCm -aov -cLX -any -dgv -dgv -dfM -dfN -dgw -aQI -cHW -cLk -dfO -alc -alc -dfO -dgw -aVH -dfN -amI -amI -amI -amI -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -beG -bft -bgG -bhv -bij -biW -biW -biW -biW -bnl -bok -bpL -dAh -bsF -btZ -bvK -bwT -ziw -bxZ -bAe -bBw -bCs -bDz -bEE -bFT -bHD -bJd -bKh -bLl -bMO -bNM -bOR -bPZ -dzo -beH -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbV -cbV -cbU -cbU -cbU -cbV -cbV -cbV -cbV -cdT -cet -cet -cdT -cfU -cdT -chj -cFM -cet -cet -cet -cdT -chj -cFM -chj -cdT -cdT -cdT -cbV -cbV -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -cbU -cbV -cBe -cBJ -cBV -cBe -cmf -cCD -cmf -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(211,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cTm -aaa -akx -akx -akx -any -aoz -aoz -aoz -arg -asa -aoz -asa -arg -aoz -aoz -aoz -aoz -any -aCo -aDH -any -aGB -aCm -aov -aJD -any -dgv -dgv -dfM -dfO -dgU -dgX -dhl -dfO -dfN -amI -dgv -dfN -dgw -dfN -dgv -amI -amI -alc -amI -amI -amI -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZO -beG -cNn -bgF -cNN -bik -biX -bjV -bjV -blP -bjV -bom -bog -brb -bsG -bub -bvK -bwU -cPv -bzb -bya -cPH -bCt -bDA -bEF -bFU -bHE -bJe -bFU -bLm -cFA -cQy -bGa -cQN -bJj -beI -aZM -aZM -aZM -aZM -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbU -cbV -cbV -cbV -cbV -cbU -cbU -cbU -cfp -cfV -cfp -cfV -cfp -cbU -cbU -cbU -cfp -cfV -cfp -cfV -cfp -cbU -cbU -cbV -cbV -cbU -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cbU -cBe -cBe -cBe -cBe -abC -cCE -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 -aaa -aaa -"} -(212,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cTn -cTp -cTp -cTp -cTp -anw -aoy -aov -aoz -arh -arh -aoz -arh -arh -aoz -axl -ayO -aAi -any -aCn -aDH -any -aGC -aHt -aIA -aJE -aGC -dgv -dgv -dfO -dgN -dgV -dgw -dgw -dhp -dfO -amI -dfN -dhJ -dgw -dfO -amI -amI -amI -alc -amI -amI -amI -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZO -beF -bfw -bjZ -bhw -bij -biY -bjW -bkQ -blQ -biY -bij -bpN -brc -bsH -buc -bvK -bwV -byb -bzc -bAf -bBx -bCu -cFv -bEG -bFV -bEG -bJf -bFV -cKm -bDA -beG -cQJ -bPT -brm -beG -aZM -aZO -aZO -aZO -aZO -aZM -aZN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -cbW -cbV -cbV -cbV -cbU -cbU -cbU -cbU -cfp -cfV -cfp -cfV -cfp -cbU -cbU -cbU -cfp -cfV -cfp -cfV -cfp -cbU -cbU -cbV -cbV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -cbV -cbV -cbW -cbV -aaa -abC -cCE -abC -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 -aaa -"} -(213,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cTo -akx -akx -akx -alc -anx -aoB -aov -aoz -arg -arg -aoz -arg -arg -aoz -aov -aov -aAd -any -aCs -aDH -aEZ -aGD -aHu -aIB -aJF -aGC -dgv -dgv -dgv -dgO -dgV -aVH -dfO -dfM -dfO -dgv -dgv -dhJ -dhJ -dgv -amI -alc -alc -alc -amI -amI -amI -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZO -beF -bfx -bgH -beH -bij -bij -bij -cOI -blR -cOI -cOI -bpO -dAi -bsI -dAi -bvL -cPp -biO -biN -biN -cPI -biN -bDA -bEH -bFW -TiY -bEH -bEH -bEH -bDA -beG -bGa -cQN -bsS -beH -aZM -aZO -aZO -aZO -aZO -aZM -aZM -aZM -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cbV -cbU -cbU -cbU -aaa -aaa -cfp -cfV -cfp -cfV -cfp -cbU -cbU -cbU -cfp -cfV -cfp -cfV -cfp -aaa -aaa -cbU -cbU -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cbU -abC -aaa -aaa -abC -cCF -bXd -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -alc -alc -any -aoC -aov -aov -aov -asb -ata -aox -aox -aox -aox -ayP -aox -aBp -aCt -aDH -aFa -aGD -aHv -aIC -aJG -aGC -dfM -dgv -dgv -dfZ -cHS -dfN -dfM -dfO -dfN -dfO -aUR -afw -dfN -dfO -dfO -dfN -alc -alc -alc -alc -alc -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZO -beI -bft -bgF -beH -beG -beG -beG -bil -blV -bjX -dzU -bil -brd -bsL -bue -bil -bmW -cPw -bkH -bAg -cPJ -cPN -bDA -cKi -bEH -bEH -cKi -bFW -cKi -bDA -beG -bGa -bPR -bfr -cQS -aZM -aZO -aZO -aZO -aZO -aZO -aZO -aZM -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 -cbU -aaa -aaa -aaa -cfp -cfV -cfp -cfV -cfp -cbU -aaa -aaa -cfp -cfV -cfp -cfV -cfp -aaa -aaa -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -abC -aaa -aaa -abC -abC -cCE -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aad -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(215,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -alc -alc -any -aoD -aps -aps -ari -ari -cGi -ari -ari -aps -aps -ayQ -aps -aBq -aCu -aDJ -aFb -aGD -aHw -TTr -aJH -aGC -dfM -dfN -dfN -dgP -dgW -dgs -dfN -dgw -dgw -dgw -dgn -dhK -avN -dhu -dhR -dfO -dfN -dfO -dfN -akx -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZO -beH -bfr -bgF -beI -beF -beF -beF -bil -cOP -dzL -cPf -bil -bre -dCL -dAA -bil -bmW -bkH -bkH -ula -cPJ -cPO -bDA -cKj -bEH -bEH -bEH -bEH -bEH -bDA -beF -bLo -bPR -cQQ -beH -aZM -aZM -aZO -aZO -aZO -aZO -aZO -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 -cdT -cfU -cdT -chk -cdT -aaa -aaa -aaa -cdT -chk -cdT -chk -cdT -aaa -aaa -aaa -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(216,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -alc -alc -alc -any -aoE -aov -aov -arj -arj -aov -arj -arj -aov -axm -ayR -aov -aBo -aov -aDC -aFc -aGD -aHw -aIC -aJI -aGC -aGC -aMr -dfO -dgs -dgW -dgw -dhm -dgw -dgw -dfP -dgw -afb -dfN -dgn -dgw -dfO -dgw -dgw -dhZ -akx -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -aZM -beH -bNN -cNz -beI -beI -beF -beF -bil -cOQ -cPb -dCD -bil -brf -dCM -dAA -bil -bmW -cPw -cPz -cPw -cPK -cPw -bDA -bDA -bEH -cKl -bEH -bEH -bDA -bDA -bhu -bMR -cQN -bft -beH -beG -aZM -aZM -aZM -aZM -aZO -aZO -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cdr -cdr -cdr -cdr -cdr -cdr -cfW -cdr -chl -cdr -cFp -cFp -cFp -cdr -cla -cdr -cla -cdr -cFp -cFp -cdr -cdr -cds -cds -cds -cds -cds -cdr -cdr -cdr -cdr -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(217,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -alc -alc -any -aoF -aoF -aqp -ark -asc -atb -aug -cLb -apq -axn -ayS -aAj -aBn -aCv -aDK -aFd -aGD -aHx -aID -aJJ -cHq -cHw -cHA -aNw -cHM -dgX -dfO -dfN -dfN -dfN -dgv -dfO -dfN -dfO -dgw -aVG -dgw -dgw -dgw -dhZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -aZM -beI -bfr -bgI -bhx -beH -beF -beF -bil -cOR -dzM -cPg -bil -brg -bsK -buf -bil -cPq -bkH -bkH -bkH -bkH -bkH -biN -bDA -bDA -bDA -bDA -bDA -bDA -cQq -bft -bLo -bPR -bft -bft -beI -beI -beH -beI -aZO -aZM -aZM -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cdr -cdr -cdr -cdr -ceS -dap -dap -cfq -cfr -cdr -dal -cgy -cds -cds -cds -cgy -dal -daX -dal -cgy -cdr -cdr -cgy -dbk -dbk -dbw -dbw -dbk -dbk -cdr -dbQ -dbW -cgy -cdr -cdr -cFp -cFp -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -abC -cCE -abC -abC -cCj -cEb -cCj -aaa -aaa -aaa -aaa -aaa -aac -aac -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(218,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -amP -amP -aoG -aoG -aqq -amP -amP -amP -amP -amP -amP -amP -ayT -amP -amP -any -any -any -aGC -aGC -aGC -aGC -aGC -aGC -dgy -dgm -aoU -cMg -dfO -alc -amI -amI -amI -alc -alc -dfO -dgw -aVH -dfN -aWq -dgw -dhZ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZM -aZO -beF -bft -bfr -cNO -beH -beF -beF -bil -cOS -blT -cPh -dzZ -dCH -dAv -bug -bil -cPr -bkH -bkH -bkH -bkH -cPw -biN -bfw -bft -bHF -bfs -cOg -bft -bMP -bNO -bOS -bQa -bft -bfv -bfw -bft -bTN -beH -aZO -aZM -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdV -cfr -cfr -cfr -cfr -cdr -dal -daQ -dal -dal -dal -daQ -dal -dal -dal -daQ -cot -cot -dbc -dai -dai -dai -dai -dai -dai -cds -dbR -dbX -dce -cgy -cdr -cdr -cdr -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -cCj -cCS -cCj -cCj -cCG -cEc -cCj -aaa -aaa -aaa -aaa -aab -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -anz -aoH -apt -aqr -aoI -amP -atc -atc -avo -awv -axo -ayU -aAk -amP -dfM -dfO -dfN -dfM -dfM -aIE -dgm -dgr -dgm -aMs -dgG -dgd -dfN -dgv -alc -amI -amI -amI -amI -alc -dfO -dhP -aVI -dfO -dhX -dhY -dhZ -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aZM -aZM -aZO -beF -beG -bfr -cNz -beH -beI -beH -bil -bnr -dzN -cPi -blS -dAj -dCN -buh -bil -cPs -cPx -cPA -cPB -cPB -cPB -cPQ -bEI -bim -bim -bim -bim -iuy -bMQ -cQz -bNP -bQb -bim -bjc -bft -bft -beH -beH -beI -abC -abC -abC -abC -abC -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdr -ceS -daq -dau -cfr -dau -cdr -daj -dal -dal -daj -daj -daj -daj -daj -daj -daj -dal -dal -daj -daj -daj -daj -daj -daj -dal -cds -dbR -dal -dbX -dcg -cdr -cpn -cqg -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -cCj -cCT -cCG -cDA -cDL -cEd -cCj -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(220,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -amP -anA -aoI -apu -aqs -arl -asd -atd -auh -auh -auh -avp -ayV -avp -amP -cLk -dfP -dfV -dfX -dgc -aoU -dgn -dgs -dgw -aMt -dfO -dfM -dgv -amI -alc -amI -amI -amI -amI -alc -dfN -dfN -dfN -dfN -dfN -dfN -dfN -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aZN -aZM -aZO -aZO -beG -cNA -cNz -beI -biZ -biZ -bil -dzE -dzO -boo -blS -brh -dCO -dAz -bil -bil -bil -bil -biN -biN -biN -biN -bjZ -cNn -beH -beI -bft -onJ -bLo -bft -bka -bft -beG -bRQ -bim -bim -bTO -bUD -bVe -acI -acI -acI -bXd -abC -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdr -cdr -cdr -cgy -cZo -cZD -cZN -cZo -cdr -cdr -cdr -cds -cfs -cds -cdr -daG -chL -daS -daV -daV -daV -daV -daV -daV -daV -chL -daS -daV -daV -daV -daV -daV -daV -daZ -cdr -dbS -dal -dal -dch -cdr -cpn -cqg -aaa -aaa -aaa -aaa -abC -aaa -aaa -aaa -cCj -cCS -cCG -cDB -cDM -cEe -cCj -aaa -aaa -aaa -aad -aac -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(221,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -amP -anB -aoJ -apv -apv -apv -ase -ate -ate -avq -DHs -ate -ayW -aAl -amP -aCw -dfQ -aoU -dfY -dgd -dgd -aJK -dfM -dfM -dfN -dfM -alc -alc -alc -alc -amI -amI -amI -amI -alc -alc -akx -akx -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZu -aZO -aZM -beG -brm -cNz -beH -bja -bja -bil -cOT -bnm -boo -bjb -bjb -YyX -dAz -dCR -dCU -bwY -bil -beF -beF -beF -bhu -bgF -beI -beH -beH -beI -bPU -bLo -beG -beI -beG -beG -beH -bft -cQX -beH -beI -beI -abC -abC -bWh -bXe -bWh -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cdr -cZd -cZp -cZp -cZO -cdB -cdr -cdW -dar -ceT -ceT -cfX -cdr -daH -chL -daS -daW -daW -daW -daW -daW -daW -daW -chL -daS -daW -daW -daW -daW -daW -daW -chL -cds -dbR -dal -dal -dci -cdr -cpn -cqg -aaa -aaa -aaa -aaa -abC -aaa -aaa -cCj -cCG -cCU -cDi -cCW -cDk -cDD -cCj -aaa -aaa -aaa -aac -aac -aac -aac -aad -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(222,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -alc -amP -anC -aoK -apw -aqt -arm -amP -atf -aui -avp -avp -axp -ayX -aAm -amP -afw -dfR -dfW -dfZ -dge -dfN -dfO -dfM -alc -alc -alc -alc -amI -amI -amI -amI -amI -amI -amI -alc -akx -akx -akx -akx -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZu -aZO -aZM -beI -brm -cNP -bfp -cOk -bsS -bil -cOU -bnn -bop -bpR -bri -bsN -bui -blU -bwW -bjY -bil -beF -beI -beH -bft -bgH -beG -beG -beG -beI -CxW -bMR -beF -aZO -aZO -beG -beG -beI -beI -beH -beG -aaa -aaa -aaa -bWh -bXf -bWh -aaa -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZe -cZq -cZp -cZP -cZY -cdr -cdH -ceu -ceT -dax -cfY -cds -daI -chL -daS -daS -daS -daS -daS -daS -daS -daS -chL -daS -daS -daS -daS -daS -daS -daS -chL -dbM -dbR -dal -dal -dcj -cdr -cpn -cqg -aaa -aaa -aaa -aaa -abC -aaa -aaa -cCj -cCH -cCV -cDj -cDC -cDl -cDE -cCj -aaa -aaa -aad -aab -aad -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(223,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -akx -alc -amP -amP -amP -amP -amP -amP -amP -amP -atg -avr -atg -amP -amP -amP -amP -dfN -dfO -dfO -dfM -dfM -dfM -dfM -dfM -alc -alc -alc -alc -amI -amI -amI -amI -amI -amI -amI -alc -alc -akx -akx -akx -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZO -aZM -beH -cNB -cNz -beI -bja -bja -bil -dzF -dzP -boq -bpS -bkR -bsO -dAD -bvM -bwX -byd -bil -beG -beI -bfu -bft -bgF -beI -beG -beG -beI -bPU -bGa -beF -aZO -aZO -aZM -aZM -aZM -aZM -aZM -aZM -aaa -aaa -aaa -bWh -bXe -bWz -bWh -bWh -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZf -cZr -cZE -cZG -cZG -cdr -cdX -ceu -ceU -dax -cfZ -cds -daJ -chL -daS -daV -daV -daV -daV -daV -daV -daV -chL -daS -daV -daV -daV -daV -daV -daV -chL -cds -dbT -dbY -dal -dck -cdr -cpn -cqg -aaa -aaa -aaa -aaa -aaP -abC -cCj -cCj -cCI -cCW -cDk -cDD -cCG -cCj -cCj -aaa -aaa -aaa -aad -aaa -aad -aad -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(224,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -akx -alc -alc -alc -alc -alc -alc -alc -akx -akx -atg -auk -avp -avp -atg -akx -akx -alc -alc -amI -amI -amI -alc -alc -alc -alc -amI -amI -amI -amI -amI -amI -amI -amI -alc -alc -alc -alc -alc -alc -alc -akx -akx -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZO -aZM -beG -brm -cNz -beI -cOl -cOl -bil -dzG -dzO -dCE -bov -brj -bsP -dAE -dCS -dCV -bjY -bil -beG -beG -bft -bBy -bBz -beH -beG -beG -beG -YTk -bLq -beF -aZO -aZO -aZM -aZM -aZM -aZM -aZM -aZM -aaa -aaa -aaa -bWh -bXg -bXG -bYj -bYD -bYV -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZg -cZs -cZF -cZG -cZG -cdr -cdY -ceu -das -dax -cfY -cds -daK -chL -daS -daW -daW -daW -daW -daW -daW -daW -chL -daS -daW -daW -daW -daW -daW -daW -dbL -cgy -cgy -dbZ -dal -dck -cdr -cpn -cqg -aaa -aaa -aaa -aaa -aaa -aaa -cCk -cCs -cCJ -cCX -cDl -cDE -cCj -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(225,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alk -akx -alk -alc -alc -alc -alc -aaa -akx -atg -aul -avp -aww -atg -aaa -akx -akx -alc -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -amI -alc -alc -alc -alc -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZM -aZO -beF -cNA -cNz -beI -beH -beH -bil -cOV -bno -bor -bpT -brk -bsQ -buj -dCT -dCU -bwY -bil -beG -beG -bfs -bgF -DNv -DNv -FWK -FWK -FWK -dmp -rDs -FWK -DNv -aZM -aZM -aZM -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bWh -bXh -bXH -bYk -bWh -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZh -cZt -cZG -cZG -cZG -cdr -dah -das -das -das -daB -cdr -chm -chL -dal -dai -dai -dai -dai -dai -dai -dai -dal -dal -dai -dai -dai -dai -dai -dai -dal -cot -cdr -dca -dal -dcl -cdr -cgy -cgy -aaa -aaa -aaa -aaa -aaa -aaa -cCj -cCj -cCj -cCj -cCj -cCj -cCj -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(226,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -atg -atg -avs -atg -atg -aaa -aaa -akx -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZu -aZM -aZO -beI -bfr -cNz -beH -beI -beG -bil -bil -bnp -bsM -bjb -bil -bil -bil -bil -bil -bil -bil -beG -beI -bft -bgF -DNv -Fov -lGP -qRT -KEd -zdv -GOY -dTM -DNv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bWh -bXi -bXj -bYl -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZi -cZt -cZG -cZG -cZZ -cdr -cdr -cds -dav -dav -cds -cgy -dai -dal -dal -daj -daj -daj -daj -daj -daj -daj -daY -dal -dbd -dal -dal -dal -dal -dal -dbd -dal -cdr -dcb -dcf -dcm -cdr -cgy -cgy -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(227,1,1) = {" -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 -aad -aaa -aaa -aaa -aab -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -asf -asf -asg -avt -asg -asf -asf -aaa -aaa -aaa -aaa -aaa -aaa -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -alc -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 -aZM -aZM -aZO -beI -bfr -bgI -bim -bjc -beG -bil -dzH -bnq -dCF -bon -bil -cKe -bil -bvN -bft -byc -beH -beF -beH -bfw -bgF -FWK -fbR -WjU -Uhy -lFc -HKu -xbV -Wgl -DNv -DNv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bWh -bWz -bXj -bXI -bWz -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZj -cZu -cZH -cZG -cZG -dad -dai -dai -dai -dai -dai -dai -daL -dal -daS -daV -daV -daV -daV -daV -daV -daV -chL -cgy -cdr -dbb -cdr -cdr -cdr -cdr -cdr -dbN -cdr -cdr -cdr -dcn -cgy -cpn -cqg -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(228,1,1) = {" -aaa -aaa -aaa -aaa -aaa -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 -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -asf -ath -aum -aum -aun -axq -asf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alc -alc -alc -alc -alc -amI -alc -alc -alc -amI -alc -alk -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -abC -aZN -aZO -beF -bgJ -bft -bft -bjd -bjc -bil -dzI -dzR -dzW -dzV -cKd -cKf -bil -bgF -bsR -beI -beF -beF -beH -bft -bgF -FWK -GWH -TFw -HMd -MWx -aFK -xov -xQI -EGd -AGf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -bWi -bWA -bXk -bWh -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZk -cZv -cZI -cZG -cZG -dad -daj -daj -daj -daj -daj -daj -daj -daR -daS -daW -daW -daW -daW -daW -daW -daW -daZ -cdr -dbe -dbl -dbs -dbx -dbB -dbE -cdr -dbO -dbU -dbU -cdr -dco -dcs -cpn -cqg -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(229,1,1) = {" -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 -aaa -aaa -aaa -aaa -aad -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -asg -ati -aun -aum -aun -axr -ayY -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -alc -alc -alc -alc -alc -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aad -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -beG -beH -cNQ -bft -bft -bjZ -bil -dzJ -bns -dAt -bpU -bil -bil -bil -bgH -bfs -beF -beF -beI -beH -bft -bgF -FWK -JtY -Aaw -YZx -FWK -zzP -zzP -zzP -DNv -DNv -abC -abC -abC -abC -abC -abC -abC -abC -bWh -bWh -bWh -bWh -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cds -cZl -cZw -cZx -cZQ -cZY -cdr -cdr -cdr -cdr -cdr -daC -daC -cdr -cgy -daS -daS -daS -daS -daS -daS -daS -daS -chL -dbb -dbf -dbm -dbt -dby -dby -dbF -cdr -dbO -dbO -dcc -cdr -dco -dct -cpn -cqg -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(230,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aab -aab -aab -aab -aad -aac -aac -aad -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -asf -atj -aum -aum -aun -axs -asf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aaa -aaa -aaa -alc -alc -alc -alc -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aaa -aac -aad -aad -aac -aac -aac -aac -aad -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -beG -beG -bfw -bft -bgF -bil -blW -bnt -bow -dCG -bil -beG -bhu -bvO -cOg -beI -beH -beI -bBy -bim -bDB -DNv -vlV -kfe -Wue -DNv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cdr -cZm -cZx -cZx -cZR -daa -cdr -dak -dat -daw -day -daD -daD -daM -cdr -daS -daV -daV -daV -daV -daV -daV -daV -chL -cds -dbg -dbn -dbt -dbz -dbC -dbG -cdr -dbO -dbO -dcc -cdr -dcp -dcu -cpn -cqg -cFp -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 -"} -(231,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aad -aab -aac -aac -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -asf -asf -asg -avu -asg -asf -asf -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aaa -aaa -aab -aac -aac -aac -aac -aac -aac -aac -aac -aad -aaa -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZO -aZO -beI -cOg -bft -bgF -bil -dCu -box -bil -bil -bil -beG -bft -bgF -bft -bft -bfs -bft -bgF -bft -beH -DNv -lOB -DNv -DNv -DNv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cdr -cdr -cdr -cgy -cZy -cZJ -cZS -dab -cdr -dal -dal -dal -daz -dal -dal -daN -cdr -daS -daW -daW -daW -daW -daW -daW -daW -chL -cdr -dbh -dbo -dbu -dbl -dbl -dbH -cdr -dbO -dbO -dcc -cdr -dcq -dcq -cpn -cqg -cFp -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 -"} -(232,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aac -aac -aac -cKA -aac -aac -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aab -aab -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aad -aac -aac -aac -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -beF -beG -bft -bRQ -bim -dCv -boy -bim -cTs -bim -cTt -bim -bvP -Yug -bim -bim -bim -bBz -cPc -beI -DNv -zXV -DNv -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdr -dak -dat -daw -daz -daE -daE -daO -cdr -daT -dai -dai -dai -dai -dai -dai -dai -dal -cds -dbi -dbp -dbm -dbm -dbm -dbI -cdr -dbO -dbV -dbO -cdr -dcr -dcr -cpn -cqg -cFp -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 -"} -(233,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -aab -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aad -aac -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aaa -aad -aaa -aad -aad -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -beH -beI -cOx -bft -dCw -dzS -beH -beI -brl -beI -beI -bft -bft -bka -bfs -bft -bft -beI -beI -aaa -aaa -abC -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cdr -cdr -cdr -cdr -cdr -cdr -cdr -dal -dal -dal -daz -dal -dal -daN -cdr -daU -dal -dal -dal -dal -dal -dal -dal -dba -cdr -dbj -dbq -dbm -dbm -dbm -dbJ -cdr -dbN -cdr -dbN -cdr -cdr -cdr -cdr -cdr -cFp -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 -"} -(234,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aac -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -abC -aaa -abC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aad -aab -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZO -aZO -aZO -beG -beH -beG -dCx -cPj -beH -bpV -brm -bsS -beH -beG -beG -beI -beG -beH -beI -beI -aZM -aaa -aaa -abC -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cdr -cdr -cdr -cdr -dak -dat -daw -daA -daF -daF -daP -cdr -cdr -cds -cds -cds -cds -cds -cds -cds -cdr -cdr -cgy -dbr -dbv -dbA -dbD -dbK -cdr -dbP -cdr -dcd -cdr -cdr -cdr -cFp -cFp -cFp -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 -"} -(235,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aZM -aZM -aZO -aZO -dCy -cPd -beH -beI -brn -beI -beH -beF -aZO -aZM -aZO -aZO -aZO -aZO -aZM -aaa -aaa -abC -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cdr -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cdr -cdr -cds -cds -cds -cdr -cdr -cdr -cdr -cdr -cdr -cFp -cFp -cFp -cFp -cFp -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 -"} -(236,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZO -aZO -dCz -bnv -beI -bpW -bro -bpW -beI -aZO -aZO -aZM -aZM -aZM -aZN -aZM -aaa -aaa -aaa -abC -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -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 -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(237,1,1) = {" -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaP -ajR -aaP -abC -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 -aaa -aaa -aaa -aaa -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 -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aZM -aZM -dCA -bnw -beI -bpX -brp -bpX -beI -aZO -aZM -aZM -aZM -aZM -abC -aaa -aaa -aaP -bGe -aaP -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(238,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -abc -aaP -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -dCA -aaa -beI -bpX -brq -bpX -beI -aZO -aaa -aaa -aaa -aaa -abC -aaa -aaP -bCv -abc -aaP -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(239,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -ajS -akD -aaP -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -dCC -aaa -beI -bpX -brr -bpX -beI -aaa -aaa -aaa -aaa -aaa -abC -aaP -bCv -bEJ -abb -aaP -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(240,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -ajT -akE -all -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -brs -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaP -bCv -bDC -abs -abb -aaP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -dcv -cFp -cFp -cFp -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 -"} -(241,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -ajU -akF -abr -abV -amQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaa -bBA -abV -abr -abr -bGg -aaP -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(242,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -aaP -aaP -aaP -aaP -aaP -aaP -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(243,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aag -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(244,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -"} -(245,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(246,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(247,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aaa -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -aaa -aaa -aaa -cFp -cFp -cFp -cFp -cFp -cFp -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 -cFp -cFp -cFp -cFp -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(248,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(249,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aac -aac -aac -aad -aad -aaa -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(250,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aac -aac -aac -aac -aac -aac -aab -aab -aab -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aag -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(251,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aad -aac -aac -aac -aac -aac -aac -aac -aac -aad -aad -aad -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(252,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aad -aac -aac -aac -aac -aad -aad -aac -aac -aad -aad -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(253,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aac -aac -aac -aac -aad -aad -aac -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(254,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(255,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -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 -cFp -cFp -cFp -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 -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} diff --git a/config/maps.txt.rej b/config/maps.txt.rej new file mode 100644 index 0000000000..81e31f7b2f --- /dev/null +++ b/config/maps.txt.rej @@ -0,0 +1,13 @@ +diff a/config/maps.txt b/config/maps.txt (rejected hunks) +@@ -34,10 +34,6 @@ map deltastation + minplayers 50 + endmap + +-map cerestation +- minplayers 45 +-endmap +- + map runtimestation + disabled + endmap +\ No newline at end of file From 0b1c36c938fd6e9a7487fe373f7d79c08c05f306 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 28 Aug 2017 02:20:21 -0500 Subject: [PATCH 034/181] Changes playtime verb name --- code/modules/admin/verbs/randomverbs.dm.rej | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 code/modules/admin/verbs/randomverbs.dm.rej diff --git a/code/modules/admin/verbs/randomverbs.dm.rej b/code/modules/admin/verbs/randomverbs.dm.rej new file mode 100644 index 0000000000..24b4116032 --- /dev/null +++ b/code/modules/admin/verbs/randomverbs.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm (rejected hunks) +@@ -1214,7 +1214,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits + + /client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are. + set category = "Admin" +- set name = "Check Player Playtime" ++ set name = "Player Playtime" + if(!check_rights(R_ADMIN)) + return + From bab6b30e02cbc05ac6a1bd313097626f1ee867cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 28 Aug 2017 02:20:39 -0500 Subject: [PATCH 035/181] Splits jungle mob code into separate files --- .../hostile/jungle/_jungle_mobs.dm | 17 + .../simple_animal/hostile/jungle/leaper.dm | 263 ++++++ .../hostile/jungle/mega_arachnid.dm | 65 ++ .../simple_animal/hostile/jungle/mook.dm | 224 +++++ .../simple_animal/hostile/jungle/seedling.dm | 244 +++++ .../simple_animal/hostile/jungle_mobs.dm | 833 ------------------ icons/mob/jungle/arachnid.dmi | Bin 66795 -> 20573 bytes icons/mob/jungle/leaper.dmi | Bin 0 -> 6479 bytes icons/mob/jungle/mook.dmi | Bin 0 -> 23590 bytes icons/mob/jungle/seedling.dmi | Bin 0 -> 11385 bytes tgstation.dme | 1 - tgstation.dme.rej | 13 + 12 files changed, 826 insertions(+), 834 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/mook.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm create mode 100644 icons/mob/jungle/leaper.dmi create mode 100644 icons/mob/jungle/mook.dmi create mode 100644 icons/mob/jungle/seedling.dmi create mode 100644 tgstation.dme.rej diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm new file mode 100644 index 0000000000..c337344c90 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm @@ -0,0 +1,17 @@ +/mob/living/simple_animal/hostile/jungle + vision_range = 5 + 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("jungle") + weather_immunities = list("acid") + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_WALLS + minbodytemp = 0 + maxbodytemp = 450 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "strikes" + status_flags = NONE + a_intent = INTENT_HARM + see_in_dark = 4 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + mob_size = MOB_SIZE_LARGE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm new file mode 100644 index 0000000000..491aca3233 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -0,0 +1,263 @@ +#define PLAYER_HOP_DELAY 25 + +//Huge, carnivorous toads that spit an immobilizing toxin at its victims before leaping onto them. +//It has no melee attack, and its damage comes from the toxin in its bubbles and its crushing leap. +//Its eyes will turn red to signal an imminent attack! +/mob/living/simple_animal/hostile/jungle/leaper + name = "leaper" + desc = "Commonly referred to as 'leapers', the Geron Toad is a massive beast that spits out highly pressurized bubbles containing a unique toxin, knocking down its prey and then crushing it with its girth." + icon = 'icons/mob/jungle/leaper.dmi' + icon_state = "leaper" + icon_living = "leaper" + icon_dead = "leaper_dead" + maxHealth = 300 + health = 300 + ranged = TRUE + projectiletype = /obj/item/projectile/leaper + projectilesound = 'sound/weapons/pierce.ogg' + ranged_cooldown_time = 30 + pixel_x = -16 + layer = LARGE_MOB_LAYER + speed = 10 + stat_attack = 1 + robust_searching = 1 + var/hopping = FALSE + var/hop_cooldown = 0 //Strictly for player controlled leapers + var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead + +/obj/item/projectile/leaper + name = "leaper bubble" + icon_state = "leaper" + knockdown = 50 + damage = 0 + range = 7 + hitsound = 'sound/effects/snap.ogg' + nondirectional_sprite = TRUE + impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact + +/obj/item/projectile/leaper/on_hit(atom/target, blocked = FALSE) + ..() + if(iscarbon(target)) + var/mob/living/carbon/C = target + C.reagents.add_reagent("leaper_venom", 5) + return + if(isanimal(target)) + var/mob/living/simple_animal/L = target + L.adjustHealth(25) + +/obj/item/projectile/leaper/on_range() + var/turf/T = get_turf(src) + ..() + new /obj/structure/leaper_bubble(T) + +/obj/effect/temp_visual/leaper_projectile_impact + name = "leaper bubble" + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper_bubble_pop" + layer = ABOVE_ALL_MOB_LAYER + duration = 3 + +/obj/effect/temp_visual/leaper_projectile_impact/Initialize() + . = ..() + new /obj/effect/decal/cleanable/leaper_sludge(get_turf(src)) + +/obj/effect/decal/cleanable/leaper_sludge + name = "leaper sludge" + desc = "A small pool of sludge, containing trace amounts of leaper venom." + icon = 'icons/effects/tomatodecal.dmi' + icon_state = "tomato_floor1" + +/obj/structure/leaper_bubble + name = "leaper bubble" + desc = "A floating bubble containing leaper venom. The contents are under a surprising amount of pressure." + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper" + max_integrity = 10 + density = FALSE + +/obj/structure/leaper_bubble/Initialize() + . = ..() + float(on = TRUE) + QDEL_IN(src, 100) + +/obj/structure/leaper_bubble/Destroy() + new /obj/effect/temp_visual/leaper_projectile_impact(get_turf(src)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + return ..() + +/obj/structure/leaper_bubble/Crossed(atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/jungle/leaper)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + L.Knockdown(50) + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.reagents.add_reagent("leaper_venom", 5) + if(isanimal(L)) + var/mob/living/simple_animal/A = L + A.adjustHealth(25) + qdel(src) + return ..() + +/datum/reagent/toxin/leaper_venom + name = "Leaper venom" + id = "leaper_venom" + description = "A toxin spat out by leapers that, while harmless in small doses, quickly creates a toxic reaction if too much is in the body." + color = "#801E28" // rgb: 128, 30, 40 + toxpwr = 0 + taste_description = "french cuisine" + taste_mult = 1.3 + +/datum/reagent/toxin/leaper_venom/on_mob_life(mob/living/M) + if(volume >= 10) + M.adjustToxLoss(5, 0) + ..() + +/obj/effect/temp_visual/leaper_crush + name = "grim tidings" + desc = "Incoming leaper!" + icon = 'icons/effects/96x96.dmi' + icon_state = "lily_pad" + layer = BELOW_MOB_LAYER + pixel_x = -32 + pixel_y = -32 + duration = 30 + +/mob/living/simple_animal/hostile/jungle/leaper/Initialize() + . = ..() + verbs -= /mob/living/verb/pulled + +/mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) + face_atom(A) + target = A + if(!isturf(loc)) + return + if(next_move > world.time) + return + if(hopping) + return + if(isliving(A)) + var/mob/living/L = A + if(L.incapacitated()) + BellyFlop() + return + if(hop_cooldown <= world.time) + Hop(player_hop = TRUE) + +/mob/living/simple_animal/hostile/jungle/leaper/AttackingTarget() + if(isliving(target)) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/leaper/handle_automated_action() + if(hopping || projectile_ready) + return + . = ..() + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + BellyFlop() + return + if(!hopping) + Hop() + +/mob/living/simple_animal/hostile/jungle/leaper/Life() + . = ..() + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(prob(33) && !ckey) + ranged_cooldown = 0 //Keeps em on their toes instead of a constant rotation + ..() + +/mob/living/simple_animal/hostile/jungle/leaper/OpenFire() + face_atom(target) + if(ranged_cooldown <= world.time) + if(ckey) + if(hopping) + return + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + return //No stunlocking. Hop on them after you stun them, you donk. + if(AIStatus == AI_ON && !projectile_ready && !ckey) + return + . = ..(target) + projectile_ready = FALSE + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Hop(player_hop = FALSE) + if(z != target.z) + return + hopping = TRUE + density = FALSE + pass_flags |= PASSMOB + notransform = TRUE + var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) + if(player_hop) + new_turf = get_turf(target) + hop_cooldown = world.time + PLAYER_HOP_DELAY + if(AIStatus == AI_ON && ranged_cooldown <= world.time) + projectile_ready = TRUE + update_icons() + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() + density = TRUE + notransform = FALSE + pass_flags &= ~PASSMOB + hopping = FALSE + playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) + if(target && AIStatus == AI_ON && projectile_ready && !ckey) + face_atom(target) + addtimer(CALLBACK(src, .proc/OpenFire, target), 5) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() + var/turf/new_turf = get_turf(target) + hopping = TRUE + notransform = TRUE + new /obj/effect/temp_visual/leaper_crush(new_turf) + addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) + density = FALSE + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() + hopping = FALSE + density = TRUE + notransform = FALSE + playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) + for(var/mob/living/L in orange(1, src)) + L.adjustBruteLoss(35) + if(!QDELETED(L)) // Some mobs are deleted on death + var/throw_dir = get_dir(src, L) + if(L.loc == loc) + throw_dir = pick(GLOB.alldirs) + var/throwtarget = get_edge_target_turf(src, throw_dir) + L.throw_at(throwtarget, 3, 1) + visible_message("[L] is thrown clear of [src]!") + if(ckey)//Lessens ability to chain stun as a player + ranged_cooldown = ranged_cooldown_time + world.time + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/Goto() + return + +/mob/living/simple_animal/hostile/jungle/leaper/throw_impact() + return + +/mob/living/simple_animal/hostile/jungle/leaper/update_icons() + . = ..() + if(stat) + icon_state = "leaper_dead" + return + if(ranged_cooldown <= world.time) + if(AIStatus == AI_ON && projectile_ready || ckey) + icon_state = "leaper_alert" + return + icon_state = "leaper" + +#undef PLAYER_HOP_DELAY diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm new file mode 100644 index 0000000000..be51502a96 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -0,0 +1,65 @@ +//Large and powerful, but timid. It won't engage anything above 50 health, or anything without legcuffs. +//It can fire fleshy snares that legcuff anyone that it hits, making them look especially tasty to the arachnid. +/mob/living/simple_animal/hostile/jungle/mega_arachnid + name = "mega arachnid" + desc = "Though physically imposing, it prefers to ambush its prey, and it will only engage with an already crippled opponent." + icon = 'icons/mob/jungle/arachnid.dmi' + icon_state = "arachnid" + icon_living = "arachnid" + icon_dead = "arachnid_dead" + melee_damage_lower = 30 + melee_damage_upper = 30 + maxHealth = 300 + health = 300 + speed = 1 + ranged = 1 + pixel_x = -16 + move_to_delay = 10 + aggro_vision_range = 9 + speak_emote = list("chitters") + attack_sound = 'sound/weapons/bladeslice.ogg' + ranged_cooldown_time = 60 + projectiletype = /obj/item/projectile/mega_arachnid + projectilesound = 'sound/weapons/pierce.ogg' + alpha = 50 + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/Life() + ..() + if(target && ranged_cooldown > world.time && iscarbon(target)) + var/mob/living/carbon/C = target + if(!C.legcuffed && C.health < 50) + retreat_distance = 9 + minimum_distance = 9 + alpha = 125 + return + retreat_distance = 0 + minimum_distance = 0 + alpha = 255 + + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/Aggro() + ..() + alpha = 255 + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/LoseAggro() + ..() + alpha = 50 + +/obj/item/projectile/mega_arachnid + name = "flesh snare" + nodamage = 1 + damage = 0 + icon_state = "tentacle_end" + +/obj/item/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) + if(iscarbon(target) && blocked < 100) + var/obj/item/restraints/legcuffs/beartrap/mega_arachnid/B = new /obj/item/restraints/legcuffs/beartrap/mega_arachnid(get_turf(target)) + B.Crossed(target) + ..() + +/obj/item/restraints/legcuffs/beartrap/mega_arachnid + name = "fleshy restraints" + desc = "Used by mega arachnids to immobilize their prey." + flags_1 = DROPDEL_1 + icon_state = "tentacle_end" + icon = 'icons/obj/projectiles.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm new file mode 100644 index 0000000000..05896c80b5 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -0,0 +1,224 @@ +#define MOOK_ATTACK_NEUTRAL 0 +#define MOOK_ATTACK_WARMUP 1 +#define MOOK_ATTACK_ACTIVE 2 +#define MOOK_ATTACK_RECOVERY 3 +#define ATTACK_INTERMISSION_TIME 5 + +//Fragile but highly aggressive wanderers that pose a large threat in numbers. +//They'll attempt to leap at their target from afar using their hatchets. +/mob/living/simple_animal/hostile/jungle/mook + name = "wanderer" + desc = "This unhealthy looking primitive is wielding a rudimentary hatchet, swinging it with wild abandon. One isn't much of a threat, but in numbers they can quickly overwhelm a superior opponent." + icon = 'icons/mob/jungle/mook.dmi' + icon_state = "mook" + icon_living = "mook" + icon_dead = "mook_dead" + pixel_x = -16 + maxHealth = 45 + health = 45 + melee_damage_lower = 30 + melee_damage_upper = 30 + pixel_y = -8 + ranged = TRUE + ranged_cooldown_time = 10 + pass_flags = LETPASSTHROW + robust_searching = TRUE + stat_attack = UNCONSCIOUS + attack_sound = 'sound/weapons/rapierhit.ogg' + death_sound = 'sound/voice/mook_death.ogg' + aggro_vision_range = 15 //A little more aggressive once in combat to balance out their really low HP + var/attack_state = MOOK_ATTACK_NEUTRAL + var/struck_target_leap = FALSE + +/mob/living/simple_animal/hostile/jungle/mook/CanPass(atom/movable/O) + if(istype(O, /mob/living/simple_animal/hostile/jungle/mook)) + var/mob/living/simple_animal/hostile/jungle/mook/M = O + if(M.attack_state == MOOK_ATTACK_ACTIVE && M.throwing) + return TRUE + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/death() + desc = "A deceased primitive. Upon closer inspection, it was suffering from severe cellular degeneration and its garments are machine made..."//Can you guess the twist + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/AttackingTarget() + if(isliving(target)) + if(ranged_cooldown <= world.time && attack_state == MOOK_ATTACK_NEUTRAL) + var/mob/living/L = target + if(L.incapacitated()) + WarmupAttack(forced_slash_combo = TRUE) + return + WarmupAttack() + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/Goto() + if(attack_state != MOOK_ATTACK_NEUTRAL) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/Move() + if(attack_state == MOOK_ATTACK_WARMUP || attack_state == MOOK_ATTACK_RECOVERY) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/proc/WarmupAttack(forced_slash_combo = FALSE) + if(attack_state == MOOK_ATTACK_NEUTRAL && target) + attack_state = MOOK_ATTACK_WARMUP + walk(src,0) + update_icons() + if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) + addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) + return + attack_state = MOOK_ATTACK_RECOVERY + ResetNeutral() + +/mob/living/simple_animal/hostile/jungle/mook/proc/SlashCombo() + if(attack_state == MOOK_ATTACK_WARMUP && !stat) + attack_state = MOOK_ATTACK_ACTIVE + update_icons() + SlashAttack() + addtimer(CALLBACK(src, .proc/SlashAttack), 3) + addtimer(CALLBACK(src, .proc/SlashAttack), 6) + addtimer(CALLBACK(src, .proc/AttackRecovery), 9) + +/mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() + if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) + melee_damage_lower = 15 + melee_damage_upper = 15 + var/mob_direction = get_dir(src,target) + if(get_dist(src,target) > 1) + step(src,mob_direction) + if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from) && isliving(target)) + var/mob/living/L = target + L.attack_animal(src) + return + var/swing_turf = get_step(src,mob_direction) + new /obj/effect/temp_visual/kinetic_blast(swing_turf) + playsound(src, 'sound/weapons/slashmiss.ogg', 50, 1) + +/mob/living/simple_animal/hostile/jungle/mook/proc/LeapAttack() + if(target && !stat && attack_state == MOOK_ATTACK_WARMUP) + attack_state = MOOK_ATTACK_ACTIVE + density = FALSE + melee_damage_lower = 30 + melee_damage_upper = 30 + update_icons() + new /obj/effect/temp_visual/mook_dust(get_turf(src)) + playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1) + playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, 1) + var/target_turf = get_turf(target) + throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) + return + attack_state = MOOK_ATTACK_RECOVERY + ResetNeutral() + +/mob/living/simple_animal/hostile/jungle/mook/proc/AttackRecovery() + if(attack_state == MOOK_ATTACK_ACTIVE && !stat) + attack_state = MOOK_ATTACK_RECOVERY + density = TRUE + face_atom(target) + if(!struck_target_leap) + update_icons() + struck_target_leap = FALSE + if(prob(40)) + attack_state = MOOK_ATTACK_NEUTRAL + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated() && L.stat != DEAD) + addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) + +/mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() + if(attack_state == MOOK_ATTACK_RECOVERY) + attack_state = MOOK_ATTACK_NEUTRAL + ranged_cooldown = world.time + ranged_cooldown_time + update_icons() + if(target && !stat) + update_icons() + Goto(target, move_to_delay, minimum_distance) + +/mob/living/simple_animal/hostile/jungle/mook/throw_impact(atom/hit_atom, throwingdatum) + . = ..() + if(isliving(hit_atom) && attack_state == MOOK_ATTACK_ACTIVE) + var/mob/living/L = hit_atom + if(CanAttack(L)) + L.attack_animal(src) + struck_target_leap = TRUE + density = TRUE + update_icons() + var/mook_under_us = FALSE + for(var/A in get_turf(src)) + if(struck_target_leap && mook_under_us) + break + if(A == src) + continue + if(isliving(A)) + var/mob/living/ML = A + if(!struck_target_leap && CanAttack(ML))//Check if some joker is attempting to use rest to evade us + struck_target_leap = TRUE + ML.attack_animal(src) + density = TRUE + struck_target_leap = TRUE + update_icons() + continue + if(istype(ML, /mob/living/simple_animal/hostile/jungle/mook) && !mook_under_us)//If we land on the same tile as another mook, spread out so we don't stack our sprite on the same tile + var/mob/living/simple_animal/hostile/jungle/mook/M = ML + if(!M.stat) + mook_under_us = TRUE + var/anydir = pick(GLOB.cardinals) + Move(get_step(src, anydir), anydir) + continue + +/mob/living/simple_animal/hostile/jungle/mook/handle_automated_action() + if(attack_state) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/OpenFire() + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + return + WarmupAttack() + +/mob/living/simple_animal/hostile/jungle/mook/update_icons() + . = ..() + if(!stat) + switch(attack_state) + if(MOOK_ATTACK_NEUTRAL) + icon_state = "mook" + if(MOOK_ATTACK_WARMUP) + icon_state = "mook_warmup" + if(MOOK_ATTACK_ACTIVE) + if(!density) + icon_state = "mook_leap" + return + if(struck_target_leap) + icon_state = "mook_strike" + return + icon_state = "mook_slash_combo" + if(MOOK_ATTACK_RECOVERY) + icon_state = "mook" + +/obj/effect/temp_visual/mook_dust + name = "dust" + desc = "it's just a dust cloud!" + icon = 'icons/mob/jungle/mook.dmi' + icon_state = "mook_leap_cloud" + layer = BELOW_MOB_LAYER + pixel_x = -16 + pixel_y = -16 + duration = 10 + +#undef MOOK_ATTACK_NEUTRAL +#undef MOOK_ATTACK_WARMUP +#undef MOOK_ATTACK_ACTIVE +#undef MOOK_ATTACK_RECOVERY +#undef ATTACK_INTERMISSION_TIME diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm new file mode 100644 index 0000000000..3e28a789ad --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -0,0 +1,244 @@ +#define SEEDLING_STATE_NEUTRAL 0 +#define SEEDLING_STATE_WARMUP 1 +#define SEEDLING_STATE_ACTIVE 2 +#define SEEDLING_STATE_RECOVERY 3 + +//A plant rooted in the ground that forfeits its melee attack in favor of ranged barrages. +//It will fire flurries of solar energy, and occasionally charge up a powerful blast that makes it vulnerable to attack. +/mob/living/simple_animal/hostile/jungle/seedling + name = "seedling" + desc = "This oversized, predatory flower conceals what can only be described as an organic energy cannon, and it will not die until its hidden vital organs are sliced out. \ + The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." + icon = 'icons/mob/jungle/seedling.dmi' + icon_state = "seedling" + icon_living = "seedling" + icon_dead = "seedling_dead" + maxHealth = 100 + health = 100 + melee_damage_lower = 30 + melee_damage_upper = 30 + pixel_x = -16 + pixel_y = -14 + minimum_distance = 3 + move_to_delay = 20 + vision_range = 9 + aggro_vision_range = 15 + ranged = TRUE + ranged_cooldown_time = 10 + projectiletype = /obj/item/projectile/seedling + projectilesound = 'sound/weapons/pierce.ogg' + robust_searching = TRUE + stat_attack = UNCONSCIOUS + anchored = TRUE + var/combatant_state = SEEDLING_STATE_NEUTRAL + var/obj/seedling_weakpoint/weak_point + var/mob/living/beam_debuff_target + var/solar_beam_identifier = 0 + +/obj/item/projectile/seedling + name = "solar energy" + icon_state = "seedling" + damage = 10 + damage_type = BURN + light_range = 2 + flag = "energy" + light_color = LIGHT_COLOR_YELLOW + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + nondirectional_sprite = TRUE + +/obj/item/projectile/seedling/Collide(atom/A)//Stops seedlings from destroying other jungle mobs through FF + if(isliving(A)) + var/mob/living/L = A + if("jungle" in L.faction) + return FALSE + return ..() + +/obj/effect/temp_visual/solarbeam_killsat + name = "beam of solar energy" + icon_state = "solar_beam" + icon = 'icons/effects/beam.dmi' + layer = LIGHTING_LAYER + duration = 5 + randomdir = FALSE + +/datum/status_effect/seedling_beam_indicator + id = "seedling beam indicator" + duration = 30 + status_type = STATUS_EFFECT_MULTIPLE + alert_type = null + tick_interval = 1 + var/obj/screen/seedling/seedling_screen_object + var/atom/target + + +/datum/status_effect/seedling_beam_indicator/on_creation(mob/living/new_owner, target_plant) + . = ..() + if(.) + target = target_plant + tick() + +/datum/status_effect/seedling_beam_indicator/on_apply() + if(owner.client) + seedling_screen_object = new /obj/screen/seedling() + owner.client.screen += seedling_screen_object + tick() + return ..() + +/datum/status_effect/seedling_beam_indicator/Destroy() + if(owner) + if(owner.client) + owner.client.screen -= seedling_screen_object + return ..() + +/datum/status_effect/seedling_beam_indicator/tick() + var/target_angle = Get_Angle(owner, target) + var/matrix/final = matrix() + final.Turn(target_angle) + seedling_screen_object.transform = final + +/obj/screen/seedling + icon = 'icons/mob/jungle/arachnid.dmi' + icon_state = "seedling_beam_indicator" + screen_loc = "CENTER:-16,CENTER:-16" + +/mob/living/simple_animal/hostile/jungle/seedling/Goto() + if(combatant_state != SEEDLING_STATE_NEUTRAL) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/AttackingTarget() + if(isliving(target)) + if(ranged_cooldown <= world.time && combatant_state == SEEDLING_STATE_NEUTRAL) + OpenFire(target) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/OpenFire() + WarmupAttack() + +/mob/living/simple_animal/hostile/jungle/seedling/proc/WarmupAttack() + if(combatant_state == SEEDLING_STATE_NEUTRAL) + combatant_state = SEEDLING_STATE_WARMUP + walk(src,0) + update_icons() + var/target_dist = get_dist(src,target) + var/living_target_check = isliving(target) + if(living_target_check) + if(target_dist > 7)//Offscreen check + SolarBeamStartup(target) + return + if(get_dist(src,target) >= 4 && prob(40)) + SolarBeamStartup(target) + return + addtimer(CALLBACK(src, .proc/Volley), 5) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark + if(combatant_state == SEEDLING_STATE_WARMUP && target) + combatant_state = SEEDLING_STATE_ACTIVE + living_target.apply_status_effect(/datum/status_effect/seedling_beam_indicator, src) + beam_debuff_target = living_target + playsound(src,'sound/effects/seedling_chargeup.ogg', 100, 0) + if(get_dist(src,living_target) > 7) + playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, 0) + solar_beam_identifier = world.time + addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) + if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) + if(living_target.z == z) + update_icons() + var/obj/effect/temp_visual/solarbeam_killsat/S = new (get_turf(src)) + var/matrix/starting = matrix() + starting.Scale(1,32) + starting.Translate(0,520) + S.transform = starting + var/obj/effect/temp_visual/solarbeam_killsat/K = new (get_turf(living_target)) + var/matrix/final = matrix() + final.Scale(1,32) + final.Translate(0,512) + K.transform = final + living_target.adjustFireLoss(30) + living_target.adjust_fire_stacks(0.2)//Just here for the showmanship + living_target.IgniteMob() + playsound(living_target,'sound/weapons/sear.ogg', 50, 1) + addtimer(CALLBACK(src, .proc/AttackRecovery), 5) + return + AttackRecovery() + +/mob/living/simple_animal/hostile/jungle/seedling/proc/Volley() + if(combatant_state == SEEDLING_STATE_WARMUP && target) + combatant_state = SEEDLING_STATE_ACTIVE + update_icons() + var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) + for(var/i in 1 to 13) + addtimer(cb, i) + addtimer(CALLBACK(src, .proc/AttackRecovery), 14) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() + if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) + if(get_dist(src,target) <= 3)//If they're close enough just aim straight at them so we don't miss at point blank ranges + Shoot(target) + return + var/turf/our_turf = get_turf(src) + var/obj/item/projectile/seedling/readied_shot = new /obj/item/projectile/seedling(our_turf) + readied_shot.current = our_turf + readied_shot.starting = our_turf + readied_shot.firer = src + readied_shot.original = target + readied_shot.yo = target.y - our_turf.y + rand(-1,1) + readied_shot.xo = target.x - our_turf.x + rand(-1,1) + readied_shot.fire() + playsound(src, projectilesound, 100, 1) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/AttackRecovery() + if(combatant_state == SEEDLING_STATE_ACTIVE) + combatant_state = SEEDLING_STATE_RECOVERY + update_icons() + ranged_cooldown = world.time + ranged_cooldown_time + if(target) + face_atom(target) + addtimer(CALLBACK(src, .proc/ResetNeutral), 10) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() + combatant_state = SEEDLING_STATE_NEUTRAL + if(target && !stat) + update_icons() + Goto(target, move_to_delay, minimum_distance) + +/mob/living/simple_animal/hostile/jungle/seedling/adjustHealth() + . = ..() + if(combatant_state == SEEDLING_STATE_ACTIVE && beam_debuff_target) + beam_debuff_target.remove_status_effect(/datum/status_effect/seedling_beam_indicator) + beam_debuff_target = null + solar_beam_identifier = 0 + AttackRecovery() + +/mob/living/simple_animal/hostile/jungle/seedling/update_icons() + . = ..() + if(!stat) + switch(combatant_state) + if(SEEDLING_STATE_NEUTRAL) + icon_state = "seedling" + if(SEEDLING_STATE_WARMUP) + icon_state = "seedling_charging" + if(SEEDLING_STATE_ACTIVE) + icon_state = "seedling_fire" + if(SEEDLING_STATE_RECOVERY) + icon_state = "seedling" + +/mob/living/simple_animal/hostile/jungle/seedling/GiveTarget() + if(target) + if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE)//So it doesn't 180 and blast you in the face while it's firing at someone else + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/LoseTarget() + if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE) + return + return ..() + +#undef SEEDLING_STATE_NEUTRAL +#undef SEEDLING_STATE_WARMUP +#undef SEEDLING_STATE_ACTIVE +#undef SEEDLING_STATE_RECOVERY diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm deleted file mode 100644 index b3e1479b91..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm +++ /dev/null @@ -1,833 +0,0 @@ -/mob/living/simple_animal/hostile/jungle - vision_range = 5 - 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("jungle") - weather_immunities = list("acid") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_WALLS - minbodytemp = 0 - maxbodytemp = 450 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" - status_flags = 0 - a_intent = INTENT_HARM - see_in_dark = 4 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - mob_size = MOB_SIZE_LARGE - - - -//Mega arachnid - -/mob/living/simple_animal/hostile/jungle/mega_arachnid - name = "mega arachnid" - desc = "Though physically imposing, it prefers to ambush its prey, and it will only engage with an already crippled opponent." - melee_damage_lower = 30 - melee_damage_upper = 30 - maxHealth = 300 - health = 300 - speed = 1 - ranged = 1 - pixel_x = -16 - move_to_delay = 10 - aggro_vision_range = 9 - speak_emote = list("chitters") - attack_sound = 'sound/weapons/bladeslice.ogg' - ranged_cooldown_time = 60 - projectiletype = /obj/item/projectile/mega_arachnid - projectilesound = 'sound/weapons/pierce.ogg' - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "arachnid" - icon_living = "arachnid" - icon_dead = "dead_purple" - alpha = 50 - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/Life() - ..() - if(target && ranged_cooldown > world.time && iscarbon(target)) - var/mob/living/carbon/C = target - if(!C.legcuffed && C.health < 50) - retreat_distance = 9 - minimum_distance = 9 - alpha = 125 - return - retreat_distance = 0 - minimum_distance = 0 - alpha = 255 - - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/Aggro() - ..() - alpha = 255 - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/LoseAggro() - ..() - alpha = 50 - -/obj/item/projectile/mega_arachnid - name = "flesh snare" - nodamage = 1 - damage = 0 - icon_state = "tentacle_end" - -/obj/item/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) - if(iscarbon(target) && blocked < 100) - var/obj/item/restraints/legcuffs/beartrap/mega_arachnid/B = new /obj/item/restraints/legcuffs/beartrap/mega_arachnid(get_turf(target)) - B.Crossed(target) - ..() - -/obj/item/restraints/legcuffs/beartrap/mega_arachnid - name = "fleshy restraints" - desc = "Used by mega arachnids to immobilize their prey." - flags_1 = DROPDEL_1 - icon_state = "tentacle_end" - icon = 'icons/obj/projectiles.dmi' - -////Leaper//// - -#define PLAYER_HOP_DELAY 25 - -/mob/living/simple_animal/hostile/jungle/leaper - 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("jungle") - weather_immunities = list("acid") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_WALLS - maxHealth = 300 - health = 300 - minbodytemp = 0 - maxbodytemp = 450 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" - status_flags = 0 - a_intent = INTENT_HARM - see_in_dark = 4 - ranged = TRUE - projectiletype = /obj/item/projectile/leaper - projectilesound = 'sound/weapons/pierce.ogg' - ranged_cooldown_time = 30 - pixel_x = -16 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "leaper" - icon_living = "leaper" - icon_dead = "leaper_dead" - layer = LARGE_MOB_LAYER - name = "leaper" - desc = "Commonly referred to as 'leapers', the Geron Toad is a massive beast that spits out highly pressurized bubbles containing a unique toxin, knocking down its prey and then crushing it with its girth." - speed = 10 - stat_attack = 1 - robust_searching = 1 - var/hopping = FALSE - var/hop_cooldown = 0 //Strictly for player controlled leapers - var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead - -/obj/item/projectile/leaper - name = "leaper bubble" - icon_state = "leaper" - knockdown = 50 - damage = 0 - range = 7 - hitsound = 'sound/effects/snap.ogg' - nondirectional_sprite = TRUE - impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact - -/obj/item/projectile/leaper/on_hit(atom/target, blocked = FALSE) - ..() - if(iscarbon(target)) - var/mob/living/carbon/C = target - C.reagents.add_reagent("leaper_venom", 5) - return - if(isanimal(target)) - var/mob/living/simple_animal/L = target - L.adjustHealth(25) - -/obj/item/projectile/leaper/on_range() - var/turf/T = get_turf(src) - ..() - new /obj/structure/leaper_bubble(T) - -/obj/effect/temp_visual/leaper_projectile_impact - name = "leaper bubble" - icon = 'icons/obj/projectiles.dmi' - icon_state = "leaper_bubble_pop" - layer = ABOVE_ALL_MOB_LAYER - duration = 3 - -/obj/effect/temp_visual/leaper_projectile_impact/Initialize() - . = ..() - new /obj/effect/decal/cleanable/leaper_sludge(get_turf(src)) - -/obj/effect/decal/cleanable/leaper_sludge - name = "leaper sludge" - desc = "A small pool of sludge, containing trace amounts of leaper venom" - icon = 'icons/effects/tomatodecal.dmi' - icon_state = "tomato_floor1" - -/obj/structure/leaper_bubble - name = "leaper bubble" - desc = "A floating bubble containing leaper venom, the contents are under a surprising amount of pressure." - icon = 'icons/obj/projectiles.dmi' - icon_state = "leaper" - max_integrity = 10 - density = FALSE - -/obj/structure/leaper_bubble/Initialize() - . = ..() - float(on = TRUE) - QDEL_IN(src, 100) - -/obj/structure/leaper_bubble/Destroy() - new /obj/effect/temp_visual/leaper_projectile_impact(get_turf(src)) - playsound(src,'sound/effects/snap.ogg',50, 1, -1) - return ..() - -/obj/structure/leaper_bubble/Crossed(atom/movable/AM) - if(isliving(AM)) - var/mob/living/L = AM - if(!istype(L, /mob/living/simple_animal/hostile/jungle/leaper)) - playsound(src,'sound/effects/snap.ogg',50, 1, -1) - L.Knockdown(50) - if(iscarbon(L)) - var/mob/living/carbon/C = L - C.reagents.add_reagent("leaper_venom", 5) - if(isanimal(L)) - var/mob/living/simple_animal/A = L - A.adjustHealth(25) - qdel(src) - return ..() - -/datum/reagent/toxin/leaper_venom - name = "Leaper venom" - id = "leaper_venom" - description = "A toxin spat out by leapers that while harmless in small doses, quickly creates a toxic reaction if too much is in the body." - color = "#801E28" // rgb: 128, 30, 40 - toxpwr = 0 - taste_description = "french cuisine" - taste_mult = 1.3 - -/datum/reagent/toxin/leaper_venom/on_mob_life(mob/living/M) - if(volume >= 10) - M.adjustToxLoss(5, 0) - ..() - -/obj/effect/temp_visual/leaper_crush - name = "Grim tidings" - desc = "Incoming leaper!" - icon = 'icons/effects/96x96.dmi' - icon_state = "lily_pad" - layer = BELOW_MOB_LAYER - pixel_x = -32 - pixel_y = -32 - duration = 30 - -/mob/living/simple_animal/hostile/jungle/leaper/Initialize() - . = ..() - verbs -= /mob/living/verb/pulled - -/mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) - face_atom(A) - target = A - if(!isturf(loc)) - return - if(next_move > world.time) - return - if(hopping) - return - if(isliving(A)) - var/mob/living/L = A - if(L.incapacitated()) - BellyFlop() - return - if(hop_cooldown <= world.time) - Hop(player_hop = TRUE) - -/mob/living/simple_animal/hostile/jungle/leaper/AttackingTarget() - if(isliving(target)) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/leaper/handle_automated_action() - if(hopping || projectile_ready) - return - . = ..() - if(target) - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - BellyFlop() - return - if(!hopping) - Hop() - -/mob/living/simple_animal/hostile/jungle/leaper/Life() - . = ..() - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - if(prob(33) && !ckey) - ranged_cooldown = 0 //Keeps em on their toes instead of a constant rotation - ..() - -/mob/living/simple_animal/hostile/jungle/leaper/OpenFire() - face_atom(target) - if(ranged_cooldown <= world.time) - if(ckey) - if(hopping) - return - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - return //No stunlocking. Hop on them after you stun them, you donk. - if(AIStatus == AI_ON && !projectile_ready && !ckey) - return - . = ..(target) - projectile_ready = FALSE - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/proc/Hop(player_hop = FALSE) - if(z != target.z) - return - hopping = TRUE - density = FALSE - pass_flags |= PASSMOB - notransform = TRUE - var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) - if(player_hop) - new_turf = get_turf(target) - hop_cooldown = world.time + PLAYER_HOP_DELAY - if(AIStatus == AI_ON && ranged_cooldown <= world.time) - projectile_ready = TRUE - update_icons() - throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() - density = TRUE - notransform = FALSE - pass_flags &= ~PASSMOB - hopping = FALSE - playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) - if(target && AIStatus == AI_ON && projectile_ready && !ckey) - face_atom(target) - addtimer(CALLBACK(src, .proc/OpenFire, target), 5) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() - var/turf/new_turf = get_turf(target) - hopping = TRUE - notransform = TRUE - new /obj/effect/temp_visual/leaper_crush(new_turf) - addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) - density = FALSE - throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() - hopping = FALSE - density = TRUE - notransform = FALSE - playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) - for(var/mob/living/L in orange(1, src)) - L.adjustBruteLoss(35) - if(!QDELETED(L)) // Some mobs are deleted on death - var/throw_dir = get_dir(src, L) - if(L.loc == loc) - throw_dir = pick(GLOB.alldirs) - var/throwtarget = get_edge_target_turf(src, throw_dir) - L.throw_at(throwtarget, 3, 1) - visible_message("[L] is thrown clear of [src]!") - if(ckey)//Lessens ability to chain stun as a player - ranged_cooldown = ranged_cooldown_time + world.time - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/Goto() - return - -/mob/living/simple_animal/hostile/jungle/leaper/throw_impact() - return - -/mob/living/simple_animal/hostile/jungle/leaper/update_icons() - . = ..() - if(stat) - icon_state = "leaper_dead" - return - if(ranged_cooldown <= world.time) - if(AIStatus == AI_ON && projectile_ready || ckey) - icon_state = "leaper_alert" - return - icon_state = "leaper" - -#undef PLAYER_HOP_DELAY - -////JUNGLE MOOK//// - -#define MOOK_ATTACK_NEUTRAL 0 -#define MOOK_ATTACK_WARMUP 1 -#define MOOK_ATTACK_ACTIVE 2 -#define MOOK_ATTACK_RECOVERY 3 - -#define ATTACK_INTERMISSION_TIME 5 - -/mob/living/simple_animal/hostile/jungle/mook - name = "wanderer" - desc = "This unhealthy looking primitive is wielding a rudimentary hatchet, swinging it with wild abandon. One isn't much of a threat, but in numbers they can quickly overwhelm a superior opponent." - maxHealth = 45 - health = 45 - melee_damage_lower = 30 - melee_damage_upper = 30 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "mook" - icon_living = "mook" - icon_dead = "mook_dead" - pixel_x = -16 - pixel_y = -8 - ranged = TRUE - ranged_cooldown_time = 10 - pass_flags = LETPASSTHROW - robust_searching = TRUE - stat_attack = UNCONSCIOUS - attack_sound = 'sound/weapons/rapierhit.ogg' - death_sound = 'sound/voice/mook_death.ogg' - aggro_vision_range = 15 //A little more aggressive once in combat to balance out their really low HP - var/attack_state = MOOK_ATTACK_NEUTRAL - var/struck_target_leap = FALSE - -/mob/living/simple_animal/hostile/jungle/mook/CanPass(atom/movable/O) - if(istype(O, /mob/living/simple_animal/hostile/jungle/mook)) - var/mob/living/simple_animal/hostile/jungle/mook/M = O - if(M.attack_state == MOOK_ATTACK_ACTIVE && M.throwing) - return TRUE - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/death() - desc = "A deceased primitive. Upon closer inspection, it was suffering from severe cellular degeneration and its garments are machine made..."//Can you guess the twist - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/AttackingTarget() - if(isliving(target)) - if(ranged_cooldown <= world.time && attack_state == MOOK_ATTACK_NEUTRAL) - var/mob/living/L = target - if(L.incapacitated()) - WarmupAttack(forced_slash_combo = TRUE) - return - WarmupAttack() - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/Goto() - if(attack_state != MOOK_ATTACK_NEUTRAL) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/Move() - if(attack_state == MOOK_ATTACK_WARMUP || attack_state == MOOK_ATTACK_RECOVERY) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/proc/WarmupAttack(forced_slash_combo = FALSE) - if(attack_state == MOOK_ATTACK_NEUTRAL && target) - attack_state = MOOK_ATTACK_WARMUP - walk(src,0) - update_icons() - if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) - addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) - return - attack_state = MOOK_ATTACK_RECOVERY - ResetNeutral() - -/mob/living/simple_animal/hostile/jungle/mook/proc/SlashCombo() - if(attack_state == MOOK_ATTACK_WARMUP && !stat) - attack_state = MOOK_ATTACK_ACTIVE - update_icons() - SlashAttack() - addtimer(CALLBACK(src, .proc/SlashAttack), 3) - addtimer(CALLBACK(src, .proc/SlashAttack), 6) - addtimer(CALLBACK(src, .proc/AttackRecovery), 9) - -/mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() - if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) - melee_damage_lower = 15 - melee_damage_upper = 15 - var/mob_direction = get_dir(src,target) - if(get_dist(src,target) > 1) - step(src,mob_direction) - if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from) && isliving(target)) - var/mob/living/L = target - L.attack_animal(src) - return - var/swing_turf = get_step(src,mob_direction) - new /obj/effect/temp_visual/kinetic_blast(swing_turf) - playsound(src, 'sound/weapons/slashmiss.ogg', 50, 1) - -/mob/living/simple_animal/hostile/jungle/mook/proc/LeapAttack() - if(target && !stat && attack_state == MOOK_ATTACK_WARMUP) - attack_state = MOOK_ATTACK_ACTIVE - density = FALSE - melee_damage_lower = 30 - melee_damage_upper = 30 - update_icons() - new /obj/effect/temp_visual/mook_dust(get_turf(src)) - playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1) - playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, 1) - var/target_turf = get_turf(target) - throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) - return - attack_state = MOOK_ATTACK_RECOVERY - ResetNeutral() - -/mob/living/simple_animal/hostile/jungle/mook/proc/AttackRecovery() - if(attack_state == MOOK_ATTACK_ACTIVE && !stat) - attack_state = MOOK_ATTACK_RECOVERY - density = TRUE - face_atom(target) - if(!struck_target_leap) - update_icons() - struck_target_leap = FALSE - if(prob(40)) - attack_state = MOOK_ATTACK_NEUTRAL - if(target) - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated() && L.stat != DEAD) - addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) - -/mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() - if(attack_state == MOOK_ATTACK_RECOVERY) - attack_state = MOOK_ATTACK_NEUTRAL - ranged_cooldown = world.time + ranged_cooldown_time - update_icons() - if(target && !stat) - update_icons() - Goto(target, move_to_delay, minimum_distance) - -/mob/living/simple_animal/hostile/jungle/mook/throw_impact(atom/hit_atom, throwingdatum) - . = ..() - if(isliving(hit_atom) && attack_state == MOOK_ATTACK_ACTIVE) - var/mob/living/L = hit_atom - if(CanAttack(L)) - L.attack_animal(src) - struck_target_leap = TRUE - density = TRUE - update_icons() - var/mook_under_us = FALSE - for(var/A in get_turf(src)) - if(struck_target_leap && mook_under_us) - break - if(A == src) - continue - if(isliving(A)) - var/mob/living/ML = A - if(!struck_target_leap && CanAttack(ML))//Check if some joker is attempting to use rest to evade us - struck_target_leap = TRUE - ML.attack_animal(src) - density = TRUE - struck_target_leap = TRUE - update_icons() - continue - if(istype(ML, /mob/living/simple_animal/hostile/jungle/mook) && !mook_under_us)//If we land on the same tile as another mook, spread out so we don't stack our sprite on the same tile - var/mob/living/simple_animal/hostile/jungle/mook/M = ML - if(!M.stat) - mook_under_us = TRUE - var/anydir = pick(GLOB.cardinals) - Move(get_step(src, anydir), anydir) - continue - -/mob/living/simple_animal/hostile/jungle/mook/handle_automated_action() - if(attack_state) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/OpenFire() - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - return - WarmupAttack() - -/mob/living/simple_animal/hostile/jungle/mook/update_icons() - . = ..() - if(!stat) - switch(attack_state) - if(MOOK_ATTACK_NEUTRAL) - icon_state = "mook" - if(MOOK_ATTACK_WARMUP) - icon_state = "mook_warmup" - if(MOOK_ATTACK_ACTIVE) - if(!density) - icon_state = "mook_leap" - return - if(struck_target_leap) - icon_state = "mook_strike" - return - icon_state = "mook_slash_combo" - if(MOOK_ATTACK_RECOVERY) - icon_state = "mook" - -/obj/effect/temp_visual/mook_dust - name = "dust" - desc = "it's just a dust cloud!" - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "mook_leap_cloud" - layer = BELOW_MOB_LAYER - pixel_x = -16 - pixel_y = -16 - duration = 10 - -#undef MOOK_ATTACK_NEUTRAL -#undef MOOK_ATTACK_WARMUP -#undef MOOK_ATTACK_ACTIVE -#undef MOOK_ATTACK_RECOVERY -#undef ATTACK_INTERMISSION_TIME - -////Jungle Seedling//// - -#define SEEDLING_STATE_NEUTRAL 0 -#define SEEDLING_STATE_WARMUP 1 -#define SEEDLING_STATE_ACTIVE 2 -#define SEEDLING_STATE_RECOVERY 3 - - -/mob/living/simple_animal/hostile/jungle/seedling - name = "seedling" - desc = "This oversized, predatory flower conceals what can only be described as an organic energy cannon, and it will not die until its hidden vital organs are sliced out. \ - The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." - maxHealth = 100 - health = 100 - melee_damage_lower = 30 - melee_damage_upper = 30 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "seedling" - icon_living = "seedling" - icon_dead = "seedling_dead" - pixel_x = -16 - pixel_y = -14 - minimum_distance = 3 - move_to_delay = 20 - vision_range = 9 - aggro_vision_range = 15 - ranged = TRUE - ranged_cooldown_time = 10 - projectiletype = /obj/item/projectile/seedling - projectilesound = 'sound/weapons/pierce.ogg' - robust_searching = TRUE - stat_attack = UNCONSCIOUS - anchored = TRUE - var/combatant_state = SEEDLING_STATE_NEUTRAL - var/obj/seedling_weakpoint/weak_point - var/mob/living/beam_debuff_target - var/solar_beam_identifier = 0 - -/obj/item/projectile/seedling - name = "solar energy" - icon_state = "seedling" - damage = 10 - damage_type = BURN - light_range = 2 - flag = "energy" - light_color = LIGHT_COLOR_YELLOW - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' - nondirectional_sprite = TRUE - -/obj/item/projectile/seedling/Collide(atom/A)//Stops seedlings from destroying other jungle mobs through FF - if(isliving(A)) - var/mob/living/L = A - if("jungle" in L.faction) - return FALSE - return ..() - -/obj/effect/temp_visual/solarbeam_killsat - name = "beam of solar energy" - icon_state = "solar_beam" - icon = 'icons/effects/beam.dmi' - layer = LIGHTING_LAYER - duration = 5 - randomdir = FALSE - -/datum/status_effect/seedling_beam_indicator - id = "seedling beam indicator" - duration = 30 - status_type = STATUS_EFFECT_MULTIPLE - alert_type = null - tick_interval = 1 - var/obj/screen/seedling/seedling_screen_object - var/atom/target - - -/datum/status_effect/seedling_beam_indicator/on_creation(mob/living/new_owner, target_plant) - . = ..() - if(.) - target = target_plant - tick() - -/datum/status_effect/seedling_beam_indicator/on_apply() - if(owner.client) - seedling_screen_object = new /obj/screen/seedling() - owner.client.screen += seedling_screen_object - tick() - return ..() - -/datum/status_effect/seedling_beam_indicator/Destroy() - if(owner) - if(owner.client) - owner.client.screen -= seedling_screen_object - return ..() - -/datum/status_effect/seedling_beam_indicator/tick() - var/target_angle = Get_Angle(owner, target) - var/matrix/final = matrix() - final.Turn(target_angle) - seedling_screen_object.transform = final - -/obj/screen/seedling - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "seedling_beam_indicator" - screen_loc = "CENTER:-16,CENTER:-16" - -/mob/living/simple_animal/hostile/jungle/seedling/Goto() - if(combatant_state != SEEDLING_STATE_NEUTRAL) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/AttackingTarget() - if(isliving(target)) - if(ranged_cooldown <= world.time && combatant_state == SEEDLING_STATE_NEUTRAL) - OpenFire(target) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/OpenFire() - WarmupAttack() - -/mob/living/simple_animal/hostile/jungle/seedling/proc/WarmupAttack() - if(combatant_state == SEEDLING_STATE_NEUTRAL) - combatant_state = SEEDLING_STATE_WARMUP - walk(src,0) - update_icons() - var/target_dist = get_dist(src,target) - var/living_target_check = isliving(target) - if(living_target_check) - if(target_dist > 7)//Offscreen check - SolarBeamStartup(target) - return - if(get_dist(src,target) >= 4 && prob(40)) - SolarBeamStartup(target) - return - addtimer(CALLBACK(src, .proc/Volley), 5) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark - if(combatant_state == SEEDLING_STATE_WARMUP && target) - combatant_state = SEEDLING_STATE_ACTIVE - living_target.apply_status_effect(/datum/status_effect/seedling_beam_indicator, src) - beam_debuff_target = living_target - playsound(src,'sound/effects/seedling_chargeup.ogg', 100, 0) - if(get_dist(src,living_target) > 7) - playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, 0) - solar_beam_identifier = world.time - addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) - if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) - if(living_target.z == z) - update_icons() - var/obj/effect/temp_visual/solarbeam_killsat/S = new (get_turf(src)) - var/matrix/starting = matrix() - starting.Scale(1,32) - starting.Translate(0,520) - S.transform = starting - var/obj/effect/temp_visual/solarbeam_killsat/K = new (get_turf(living_target)) - var/matrix/final = matrix() - final.Scale(1,32) - final.Translate(0,512) - K.transform = final - living_target.adjustFireLoss(30) - living_target.adjust_fire_stacks(0.2)//Just here for the showmanship - living_target.IgniteMob() - playsound(living_target,'sound/weapons/sear.ogg', 50, 1) - addtimer(CALLBACK(src, .proc/AttackRecovery), 5) - return - AttackRecovery() - -/mob/living/simple_animal/hostile/jungle/seedling/proc/Volley() - if(combatant_state == SEEDLING_STATE_WARMUP && target) - combatant_state = SEEDLING_STATE_ACTIVE - update_icons() - var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) - for(var/i in 1 to 13) - addtimer(cb, i) - addtimer(CALLBACK(src, .proc/AttackRecovery), 14) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() - if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) - if(get_dist(src,target) <= 3)//If they're close enough just aim straight at them so we don't miss at point blank ranges - Shoot(target) - return - var/turf/our_turf = get_turf(src) - var/obj/item/projectile/seedling/readied_shot = new /obj/item/projectile/seedling(our_turf) - readied_shot.current = our_turf - readied_shot.starting = our_turf - readied_shot.firer = src - readied_shot.original = target - readied_shot.yo = target.y - our_turf.y + rand(-1,1) - readied_shot.xo = target.x - our_turf.x + rand(-1,1) - readied_shot.fire() - playsound(src, projectilesound, 100, 1) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/AttackRecovery() - if(combatant_state == SEEDLING_STATE_ACTIVE) - combatant_state = SEEDLING_STATE_RECOVERY - update_icons() - ranged_cooldown = world.time + ranged_cooldown_time - if(target) - face_atom(target) - addtimer(CALLBACK(src, .proc/ResetNeutral), 10) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() - combatant_state = SEEDLING_STATE_NEUTRAL - if(target && !stat) - update_icons() - Goto(target, move_to_delay, minimum_distance) - -/mob/living/simple_animal/hostile/jungle/seedling/adjustHealth() - . = ..() - if(combatant_state == SEEDLING_STATE_ACTIVE && beam_debuff_target) - beam_debuff_target.remove_status_effect(/datum/status_effect/seedling_beam_indicator) - beam_debuff_target = null - solar_beam_identifier = 0 - AttackRecovery() - -/mob/living/simple_animal/hostile/jungle/seedling/update_icons() - . = ..() - if(!stat) - switch(combatant_state) - if(SEEDLING_STATE_NEUTRAL) - icon_state = "seedling" - if(SEEDLING_STATE_WARMUP) - icon_state = "seedling_charging" - if(SEEDLING_STATE_ACTIVE) - icon_state = "seedling_fire" - if(SEEDLING_STATE_RECOVERY) - icon_state = "seedling" - -/mob/living/simple_animal/hostile/jungle/seedling/GiveTarget() - if(target) - if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE)//So it doesn't 180 and blast you in the face while it's firing at someone else - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/LoseTarget() - if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE) - return - return ..() - -#undef SEEDLING_STATE_NEUTRAL -#undef SEEDLING_STATE_WARMUP -#undef SEEDLING_STATE_ACTIVE -#undef SEEDLING_STATE_RECOVERY \ No newline at end of file diff --git a/icons/mob/jungle/arachnid.dmi b/icons/mob/jungle/arachnid.dmi index ccd52eeb7df7701cc1b33a37468cedc8e4cc08e9..23482d00ebebf8323df1559cfdfa03070af75498 100644 GIT binary patch literal 20573 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�bTy@K?^}h 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 literal 66795 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 z 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 G=>GsXI47F` diff --git a/icons/mob/jungle/leaper.dmi b/icons/mob/jungle/leaper.dmi new file mode 100644 index 0000000000000000000000000000000000000000..39f807a191c2e89592dc9d53daffde7584e5419d GIT binary patch literal 6479 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 literal 0 HcmV?d00001 diff --git a/icons/mob/jungle/mook.dmi b/icons/mob/jungle/mook.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c9265b22a0ad201b5cfc7f102ff610268157245b GIT binary patch literal 23590 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 ZRB$MC*ufz(2#m#G7mQ2|3-ujw{{fJ{#Cre$ literal 0 HcmV?d00001 diff --git a/icons/mob/jungle/seedling.dmi b/icons/mob/jungle/seedling.dmi new file mode 100644 index 0000000000000000000000000000000000000000..01e91c6c292c27b9ef399988f323449a19776fce GIT binary patch literal 11385 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 T8=ru?#2`g^)o10hM)3aygn=(% literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3b58a075e4..c3775a64ec 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1784,7 +1784,6 @@ #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_mobs.dm" #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" diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..a5ff4dc3cb --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,13 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1746,6 +1745,11 @@ + #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" + #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" + #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" From a6cc400a4b66ef8850741de90ff1cbd349b42c18 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 28 Aug 2017 02:20:51 -0500 Subject: [PATCH 036/181] Fixes allinone tcomms machine --- .../telecomms/machines/allinone.dm.rej | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 code/game/machinery/telecomms/machines/allinone.dm.rej diff --git a/code/game/machinery/telecomms/machines/allinone.dm.rej b/code/game/machinery/telecomms/machines/allinone.dm.rej new file mode 100644 index 0000000000..98feaf1b33 --- /dev/null +++ b/code/game/machinery/telecomms/machines/allinone.dm.rej @@ -0,0 +1,49 @@ +diff a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm (rejected hunks) +@@ -12,7 +12,7 @@ + use_power = NO_POWER_USE + idle_power_usage = 0 + machinetype = 6 +- var/intercept = FALSE // if TRUE, broadcasts all (non-syndie) messages to syndicate channel ++ var/intercept = FALSE // if TRUE, broadcasts all syndie messages to syndicate channel + + /obj/machinery/telecomms/allinone/receive_signal(datum/signal/signal) + +@@ -32,17 +32,11 @@ + if(signal.data["slow"] > 0) + sleep(signal.data["slow"]) // simulate the network lag if necessary + +- /* ###### Broadcast a message using signal.data ###### */ +- Broadcast_Message(signal.data["mob"], +- signal.data["vmask"], +- signal.data["radio"], signal.data["message"], +- signal.data["name"], signal.data["job"], +- signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], +- signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"], +- signal.data["language"]) +- +- /* ###### Copy all non-syndie communications to the Syndicate Frequency ###### */ +- if(intercept && signal.frequency != GLOB.SYND_FREQ) ++ ++ ++ ++ /* ###### Copy all syndie communications to the Syndicate Frequency ###### */ ++ if(intercept && signal.frequency == GLOB.SYND_FREQ) + Broadcast_Message(signal.data["mob"], + signal.data["vmask"], + signal.data["radio"], signal.data["message"], +@@ -50,6 +44,15 @@ + signal.data["realname"],, signal.data["compression"], list(0, z), GLOB.SYND_FREQ, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"], + signal.data["language"]) ++ /* ###### Broadcast a message using signal.data ###### */ ++ else if(!intercept) ++ Broadcast_Message(signal.data["mob"], ++ signal.data["vmask"], ++ signal.data["radio"], signal.data["message"], ++ signal.data["name"], signal.data["job"], ++ signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], ++ signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"], ++ signal.data["language"]) + + /obj/machinery/telecomms/allinone/attackby(obj/item/P, mob/user, params) + From 472e39693f0ad4308e343a209a2bf3cd5fc372e5 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 28 Aug 2017 09:02:35 -0500 Subject: [PATCH 037/181] Update allinone.dm --- .../machinery/telecomms/machines/allinone.dm | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index 8c73b96932..f881e18d35 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -12,7 +12,7 @@ use_power = NO_POWER_USE idle_power_usage = 0 machinetype = 6 - var/intercept = 0 // if nonzero, broadcasts all messages to syndicate channel + var/intercept = FALSE // if TRUE, broadcasts all syndie messages to syndicate channel /obj/machinery/telecomms/allinone/receive_signal(datum/signal/signal) @@ -32,15 +32,27 @@ if(signal.data["slow"] > 0) sleep(signal.data["slow"]) // simulate the network lag if necessary - /* ###### Broadcast a message using signal.data ###### */ - if(signal.frequency == GLOB.SYND_FREQ) // if syndicate broadcast, just + + + + /* ###### Copy all syndie communications to the Syndicate Frequency ###### */ + if(intercept && signal.frequency == GLOB.SYND_FREQ) Broadcast_Message(signal.data["mob"], signal.data["vmask"], signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], - signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], + signal.data["realname"],, signal.data["compression"], list(0, z), GLOB.SYND_FREQ, signal.data["spans"], signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"], signal.data["language"]) + /* ###### Broadcast a message using signal.data ###### */ + else if(!intercept) + Broadcast_Message(signal.data["mob"], + signal.data["vmask"], + signal.data["radio"], signal.data["message"], + signal.data["name"], signal.data["job"], + signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"], + signal.data["language"]) /obj/machinery/telecomms/allinone/attackby(obj/item/P, mob/user, params) From 6c76ae23955e8f72a1ae3721cacd2a744305b171 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 28 Aug 2017 10:34:31 -0500 Subject: [PATCH 038/181] clean up --- SQL/database_changelog.txt.rej | 15 - .../lavaland_surface_xeno_nest.dmm.rej | 10 - code/__DEFINES/logging.dm.rej | 9 - code/datums/callback.dm.rej | 62 - code/datums/components/component.dm.rej | 1 - code/datums/riding.dm.rej | 10 - code/game/area/Space_Station_13_areas.dm.rej | 29 - code/game/area/areas.dm.rej | 10 - code/game/gamemodes/blob/powers.dm.rej | 10 - .../changeling/powers/mutations.dm.rej | 19 - .../clock_items/ratvarian_spear.dm.rej | 10 - code/game/gamemodes/cult/cult_items.dm.rej | 10 - code/game/gamemodes/cult/talisman.dm.rej | 10 - .../abduction/abduction_gear.dm.rej | 10 - .../abduction/abduction_outfits.dm.rej | 10 - .../machinery/computer/buildandrepair.dm.rej | 10 - code/game/machinery/doors/door.dm.rej | 10 - code/game/machinery/doors/windowdoor.dm.rej | 19 - code/game/machinery/firealarm.dm.rej | 16 - code/game/machinery/iv_drip.dm.rej | 10 - code/game/machinery/limbgrower.dm.rej | 10 - code/game/machinery/newscaster.dm.rej | 18 - .../porta_turret/portable_turret.dm.rej | 10 - code/game/machinery/recycler.dm.rej | 10 - code/game/machinery/shieldgen.dm.rej | 10 - code/game/objects/effects/mines.dm.rej | 10 - code/game/objects/items.dm.rej | 10 - .../objects/items/robot/robot_items.dm.rej | 10 - code/game/objects/items/stacks/wrap.dm.rej | 19 - code/game/objects/items/toys.dm.rej | 12 - .../objects/structures/beds_chairs/bed.dm.rej | 10 - .../structures/beds_chairs/chair.dm.rej | 10 - .../structures/crates_lockers/closets.dm.rej | 16 - .../objects/structures/displaycase.dm.rej | 19 - code/game/objects/structures/fireaxe.dm.rej | 10 - code/game/objects/structures/flora.dm.rej | 10 - code/game/objects/structures/janicart.dm.rej | 10 - .../objects/structures/manned_turret.dm.rej | 10 - code/game/objects/structures/mirror.dm.rej | 18 - code/game/objects/structures/signs.dm.rej | 11 - .../objects/structures/tables_racks.dm.rej | 37 - .../objects/structures/watercloset.dm.rej | 10 - code/game/objects/structures/window.dm.rej | 10 - code/game/sound.dm.rej | 9 - .../turfs/simulated/floor/fancy_floor.dm.rej | 10 - code/game/turfs/turf.dm.rej | 1 - code/modules/admin/admin_investigate.dm.rej | 1 - code/modules/assembly/bomb.dm.rej | 10 - .../atmospherics/machinery/airalarm.dm.rej | 10 - .../awaymissions/capture_the_flag.dm.rej | 18 - code/modules/cargo/console.dm.rej | 10 - code/modules/client/client_procs.dm.rej | 10 - .../client/preferences_savefile.dm.rej | 10 - code/modules/clothing/chameleon.dm.rej | 10 - code/modules/clothing/clothing.dm.rej | 10 - code/modules/clothing/glasses/glasses.dm.rej | 10 - code/modules/clothing/head/collectable.dm.rej | 9 - code/modules/clothing/head/misc.dm.rej | 16 - code/modules/clothing/suits/armor.dm.rej | 10 - code/modules/clothing/suits/bio.dm.rej | 10 - code/modules/clothing/suits/utility.dm.rej | 19 - code/modules/crafting/craft.dm.rej | 10 - code/modules/fields/turf_objects.dm.rej | 10 - code/modules/flufftext/Hallucination.dm.rej | 1151 ----------------- .../food_and_drinks/drinks/drinks.dm.rej | 10 - code/modules/food_and_drinks/food.dm.rej | 10 - .../food_and_drinks/food/snacks/meat.dm.rej | 13 - .../kitchen_machinery/deep_fryer.dm.rej | 10 - .../kitchen_machinery/food_cart.dm.rej | 10 - .../kitchen_machinery/icecream_vat.dm.rej | 10 - code/modules/goonchat/browserOutput.dm.rej | 137 -- .../mining/equipment/mining_tools.dm.rej | 19 - .../mining/equipment/survival_pod.dm.rej | 35 - code/modules/mob/living/bloodcrawl.dm.rej | 10 - code/modules/mob/living/carbon/carbon.dm.rej | 19 - .../mob/living/carbon/human/human.dm.rej | 91 -- .../mob/living/carbon/monkey/combat.dm.rej | 19 - code/modules/mob/living/living.dm.rej | 10 - .../living/silicon/robot/robot_modules.dm.rej | 10 - .../simple_animal/hostile/jungle_mobs.dm.rej | 10 - .../machinery/modular_computer.dm.rej | 10 - code/modules/paperwork/contract.dm.rej | 10 - code/modules/paperwork/paper_premade.dm.rej | 23 - code/modules/paperwork/pen.dm.rej | 10 - code/modules/paperwork/photography.dm.rej | 10 - code/modules/power/singularity/emitter.dm.rej | 12 - .../particle_control.dm.rej | 10 - .../power/supermatter/supermatter.dm.rej | 10 - .../projectiles/guns/beam_rifle.dm.rej | 10 - .../projectiles/guns/energy/pulse.dm.rej | 10 - code/modules/projectiles/projectile.dm.rej | 10 - .../chemistry/machinery/chem_dispenser.dm.rej | 10 - .../chemistry/machinery/chem_heater.dm.rej | 10 - .../chemistry/machinery/chem_master.dm.rej | 10 - .../chemistry/machinery/pandemic.dm.rej | 10 - .../chemistry/machinery/reagentgrinder.dm.rej | 10 - .../reagent_containers/dropper.dm.rej | 10 - .../reagents/reagent_containers/glass.dm.rej | 28 - .../reagent_containers/hypospray.dm.rej | 12 - .../reagent_containers/syringes.dm.rej | 10 - code/modules/research/circuitprinter.dm.rej | 10 - code/modules/research/protolathe.dm.rej | 10 - .../modules/spells/spell_types/godhand.dm.rej | 10 - code/world.dm.rej | 301 ----- html/changelogs/AutoChangeLog-pr-1986.yml | 14 - html/changelogs/AutoChangeLog-pr-1999.yml | 6 - html/changelogs/AutoChangeLog-pr-2000.yml | 4 - html/changelogs/AutoChangeLog-pr-2005.yml | 8 - html/changelogs/AutoChangeLog-pr-2008.yml | 4 - html/changelogs/AutoChangeLog-pr-2010.yml | 4 - html/changelogs/AutoChangeLog-pr-2015.yml | 5 - html/changelogs/AutoChangeLog-pr-2019.yml | 5 - html/changelogs/AutoChangeLog-pr-2020.yml | 4 - html/changelogs/AutoChangeLog-pr-2021.yml | 9 - html/changelogs/AutoChangeLog-pr-2027.yml | 4 - html/changelogs/AutoChangeLog-pr-2028.yml | 4 - html/changelogs/AutoChangeLog-pr-2031.yml | 4 - html/changelogs/AutoChangeLog-pr-2040.yml | 4 - html/changelogs/AutoChangeLog-pr-2043.yml | 4 - html/changelogs/AutoChangeLog-pr-2047.yml | 4 - html/changelogs/AutoChangeLog-pr-2051.yml | 5 - html/changelogs/AutoChangeLog-pr-2052.yml | 4 - html/changelogs/AutoChangeLog-pr-2054.yml | 4 - html/changelogs/AutoChangeLog-pr-2057.yml | 4 - html/changelogs/AutoChangeLog-pr-2065.yml | 6 - html/changelogs/AutoChangeLog-pr-2068.yml | 5 - html/changelogs/AutoChangeLog-pr-2069.yml | 4 - html/changelogs/AutoChangeLog-pr-2073.yml | 4 - html/changelogs/AutoChangeLog-pr-2075.yml | 4 - html/changelogs/AutoChangeLog-pr-2083.yml | 4 - html/changelogs/AutoChangeLog-pr-2085.yml | 4 - html/changelogs/AutoChangeLog-pr-2086.yml | 4 - html/changelogs/AutoChangeLog-pr-2088.yml | 4 - html/changelogs/AutoChangeLog-pr-2090.yml | 5 - html/changelogs/AutoChangeLog-pr-2091.yml | 4 - html/changelogs/AutoChangeLog-pr-2093.yml | 4 - html/changelogs/AutoChangeLog-pr-2094.yml | 5 - html/changelogs/AutoChangeLog-pr-2098.yml | 5 - html/changelogs/AutoChangeLog-pr-2099.yml | 4 - html/changelogs/AutoChangeLog-pr-2101.yml | 5 - html/changelogs/AutoChangeLog-pr-2106.yml | 4 - html/changelogs/AutoChangeLog-pr-2110.yml | 4 - html/changelogs/AutoChangeLog-pr-2111.yml | 5 - html/changelogs/AutoChangeLog-pr-2115.yml | 4 - html/changelogs/AutoChangeLog-pr-2119.yml | 5 - html/changelogs/AutoChangeLog-pr-2120.yml | 4 - html/changelogs/AutoChangeLog-pr-2130.yml | 4 - html/changelogs/AutoChangeLog-pr-2131.yml | 4 - html/changelogs/AutoChangeLog-pr-2132.yml | 4 - html/changelogs/AutoChangeLog-pr-2133.yml | 4 - html/changelogs/AutoChangeLog-pr-2134.yml | 4 - html/changelogs/AutoChangeLog-pr-2135.yml | 5 - html/changelogs/AutoChangeLog-pr-2139.yml | 5 - html/changelogs/AutoChangeLog-pr-2140.yml | 5 - html/changelogs/AutoChangeLog-pr-2142.yml | 4 - html/changelogs/AutoChangeLog-pr-2143.yml | 4 - html/changelogs/AutoChangeLog-pr-2145.yml | 4 - html/changelogs/AutoChangeLog-pr-2147.yml | 4 - html/changelogs/AutoChangeLog-pr-2151.yml | 4 - html/changelogs/AutoChangeLog-pr-2154.yml | 4 - html/changelogs/AutoChangeLog-pr-2161.yml | 4 - html/changelogs/AutoChangeLog-pr-2162.yml | 5 - html/changelogs/AutoChangeLog-pr-2167.yml | 4 - html/changelogs/AutoChangeLog-pr-2168.yml | 6 - html/changelogs/AutoChangeLog-pr-2169.yml | 4 - html/changelogs/AutoChangeLog-pr-2170.yml | 4 - html/changelogs/AutoChangeLog-pr-2172.yml | 6 - html/changelogs/AutoChangeLog-pr-2173.yml | 6 - html/changelogs/AutoChangeLog-pr-2180.yml | 4 - html/changelogs/AutoChangeLog-pr-2184.yml | 4 - html/changelogs/AutoChangeLog-pr-2186.yml | 4 - html/changelogs/AutoChangeLog-pr-2189.yml | 5 - html/changelogs/AutoChangeLog-pr-2190.yml | 4 - html/changelogs/AutoChangeLog-pr-2193.yml | 4 - html/changelogs/AutoChangeLog-pr-2196.yml | 4 - html/changelogs/AutoChangeLog-pr-2197.yml | 6 - html/changelogs/AutoChangeLog-pr-2209.yml | 4 - html/changelogs/AutoChangeLog-pr-2211.yml | 4 - html/changelogs/AutoChangeLog-pr-2215.yml | 5 - html/changelogs/AutoChangeLog-pr-2231.yml | 4 - html/changelogs/AutoChangeLog-pr-2232.yml | 8 - html/changelogs/AutoChangeLog-pr-2233.yml | 4 - html/changelogs/AutoChangeLog-pr-2242.yml | 5 - html/changelogs/AutoChangeLog-pr-2245.yml | 4 - html/changelogs/AutoChangeLog-pr-2249.yml | 4 - html/changelogs/AutoChangeLog-pr-2253.yml | 4 - html/changelogs/AutoChangeLog-pr-2266.yml | 4 - html/changelogs/AutoChangeLog-pr-2274.yml | 4 - html/changelogs/AutoChangeLog-pr-2278.yml | 4 - html/changelogs/AutoChangeLog-pr-2281.yml | 4 - html/changelogs/AutoChangeLog-pr-2287.yml | 4 - html/changelogs/AutoChangeLog-pr-2291.yml | 4 - html/changelogs/AutoChangeLog-pr-2295.yml | 4 - html/changelogs/AutoChangeLog-pr-2298.yml | 4 - html/changelogs/AutoChangeLog-pr-2299.yml | 4 - html/changelogs/AutoChangeLog-pr-2301.yml | 4 - html/changelogs/AutoChangeLog-pr-2305.yml | 4 - html/changelogs/AutoChangeLog-pr-2308.yml | 7 - html/changelogs/AutoChangeLog-pr-2309.yml | 4 - html/changelogs/AutoChangeLog-pr-2319.yml | 4 - html/changelogs/AutoChangeLog-pr-2320.yml | 4 - html/changelogs/AutoChangeLog-pr-2325.yml | 6 - html/changelogs/AutoChangeLog-pr-2329.yml | 6 - html/changelogs/AutoChangeLog-pr-2335.yml | 4 - html/changelogs/AutoChangeLog-pr-2339.yml | 4 - html/changelogs/AutoChangeLog-pr-2346.yml | 4 - html/changelogs/AutoChangeLog-pr-2350.yml | 4 - html/changelogs/AutoChangeLog-pr-2356.yml | 4 - html/changelogs/AutoChangeLog-pr-2357.yml | 8 - html/changelogs/AutoChangeLog-pr-2359.yml | 4 - html/changelogs/AutoChangeLog-pr-2362.yml | 4 - html/changelogs/AutoChangeLog-pr-2363.yml | 4 - html/changelogs/AutoChangeLog-pr-2371.yml | 4 - html/changelogs/AutoChangeLog-pr-2376.yml | 4 - html/changelogs/AutoChangeLog-pr-2377.yml | 4 - html/changelogs/AutoChangeLog-pr-2399.yml | 4 - html/changelogs/AutoChangeLog-pr-2402.yml | 5 - html/changelogs/AutoChangeLog-pr-2408.yml | 4 - html/changelogs/AutoChangeLog-pr-2428.yml | 4 - html/changelogs/AutoChangeLog-pr-2437.yml | 5 - html/changelogs/AutoChangeLog-pr-2438.yml | 4 - html/changelogs/AutoChangeLog-pr-2439.yml | 4 - html/changelogs/AutoChangeLog-pr-2447.yml | 5 - html/changelogs/AutoChangeLog-pr-2448.yml | 4 - html/changelogs/AutoChangeLog-pr-2461.yml | 4 - html/changelogs/AutoChangeLog-pr-2465.yml | 4 - html/changelogs/AutoChangeLog-pr-2471.yml | 7 - html/changelogs/AutoChangeLog-pr-2483.yml | 4 - html/changelogs/AutoChangeLog-pr-2487.yml | 7 - html/changelogs/AutoChangeLog-pr-2495.yml | 4 - html/changelogs/AutoChangeLog-pr-2498.yml | 4 - html/changelogs/AutoChangeLog-pr-2513.yml | 4 - html/changelogs/AutoChangeLog-pr-2517.yml | 4 - strings/brain_damage_lines.json.rej | 10 - tgstation.dme.rej | 102 -- tgui/assets/tgui.js.rej | 15 - 236 files changed, 3648 deletions(-) delete mode 100644 SQL/database_changelog.txt.rej delete mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm.rej delete mode 100644 code/__DEFINES/logging.dm.rej delete mode 100644 code/datums/callback.dm.rej delete mode 100644 code/datums/components/component.dm.rej delete mode 100644 code/datums/riding.dm.rej delete mode 100644 code/game/area/Space_Station_13_areas.dm.rej delete mode 100644 code/game/area/areas.dm.rej delete mode 100644 code/game/gamemodes/blob/powers.dm.rej delete mode 100644 code/game/gamemodes/changeling/powers/mutations.dm.rej delete mode 100644 code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm.rej delete mode 100644 code/game/gamemodes/cult/cult_items.dm.rej delete mode 100644 code/game/gamemodes/cult/talisman.dm.rej delete mode 100644 code/game/gamemodes/miniantags/abduction/abduction_gear.dm.rej delete mode 100644 code/game/gamemodes/miniantags/abduction/abduction_outfits.dm.rej delete mode 100644 code/game/machinery/computer/buildandrepair.dm.rej delete mode 100644 code/game/machinery/doors/door.dm.rej delete mode 100644 code/game/machinery/doors/windowdoor.dm.rej delete mode 100644 code/game/machinery/firealarm.dm.rej delete mode 100644 code/game/machinery/iv_drip.dm.rej delete mode 100644 code/game/machinery/limbgrower.dm.rej delete mode 100644 code/game/machinery/newscaster.dm.rej delete mode 100644 code/game/machinery/porta_turret/portable_turret.dm.rej delete mode 100644 code/game/machinery/recycler.dm.rej delete mode 100644 code/game/machinery/shieldgen.dm.rej delete mode 100644 code/game/objects/effects/mines.dm.rej delete mode 100644 code/game/objects/items.dm.rej delete mode 100644 code/game/objects/items/robot/robot_items.dm.rej delete mode 100644 code/game/objects/items/stacks/wrap.dm.rej delete mode 100644 code/game/objects/items/toys.dm.rej delete mode 100644 code/game/objects/structures/beds_chairs/bed.dm.rej delete mode 100644 code/game/objects/structures/beds_chairs/chair.dm.rej delete mode 100644 code/game/objects/structures/crates_lockers/closets.dm.rej delete mode 100644 code/game/objects/structures/displaycase.dm.rej delete mode 100644 code/game/objects/structures/fireaxe.dm.rej delete mode 100644 code/game/objects/structures/flora.dm.rej delete mode 100644 code/game/objects/structures/janicart.dm.rej delete mode 100644 code/game/objects/structures/manned_turret.dm.rej delete mode 100644 code/game/objects/structures/mirror.dm.rej delete mode 100644 code/game/objects/structures/signs.dm.rej delete mode 100644 code/game/objects/structures/tables_racks.dm.rej delete mode 100644 code/game/objects/structures/watercloset.dm.rej delete mode 100644 code/game/objects/structures/window.dm.rej delete mode 100644 code/game/sound.dm.rej delete mode 100644 code/game/turfs/simulated/floor/fancy_floor.dm.rej delete mode 100644 code/game/turfs/turf.dm.rej delete mode 100644 code/modules/admin/admin_investigate.dm.rej delete mode 100644 code/modules/assembly/bomb.dm.rej delete mode 100644 code/modules/atmospherics/machinery/airalarm.dm.rej delete mode 100644 code/modules/awaymissions/capture_the_flag.dm.rej delete mode 100644 code/modules/cargo/console.dm.rej delete mode 100644 code/modules/client/client_procs.dm.rej delete mode 100644 code/modules/client/preferences_savefile.dm.rej delete mode 100644 code/modules/clothing/chameleon.dm.rej delete mode 100644 code/modules/clothing/clothing.dm.rej delete mode 100644 code/modules/clothing/glasses/glasses.dm.rej delete mode 100644 code/modules/clothing/head/collectable.dm.rej delete mode 100644 code/modules/clothing/head/misc.dm.rej delete mode 100644 code/modules/clothing/suits/armor.dm.rej delete mode 100644 code/modules/clothing/suits/bio.dm.rej delete mode 100644 code/modules/clothing/suits/utility.dm.rej delete mode 100644 code/modules/crafting/craft.dm.rej delete mode 100644 code/modules/fields/turf_objects.dm.rej delete mode 100644 code/modules/flufftext/Hallucination.dm.rej delete mode 100644 code/modules/food_and_drinks/drinks/drinks.dm.rej delete mode 100644 code/modules/food_and_drinks/food.dm.rej delete mode 100644 code/modules/food_and_drinks/food/snacks/meat.dm.rej delete mode 100644 code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm.rej delete mode 100644 code/modules/food_and_drinks/kitchen_machinery/food_cart.dm.rej delete mode 100644 code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm.rej delete mode 100644 code/modules/goonchat/browserOutput.dm.rej delete mode 100644 code/modules/mining/equipment/mining_tools.dm.rej delete mode 100644 code/modules/mining/equipment/survival_pod.dm.rej delete mode 100644 code/modules/mob/living/bloodcrawl.dm.rej delete mode 100644 code/modules/mob/living/carbon/carbon.dm.rej delete mode 100644 code/modules/mob/living/carbon/human/human.dm.rej delete mode 100644 code/modules/mob/living/carbon/monkey/combat.dm.rej delete mode 100644 code/modules/mob/living/living.dm.rej delete mode 100644 code/modules/mob/living/silicon/robot/robot_modules.dm.rej delete mode 100644 code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm.rej delete mode 100644 code/modules/modular_computers/computers/machinery/modular_computer.dm.rej delete mode 100644 code/modules/paperwork/contract.dm.rej delete mode 100644 code/modules/paperwork/paper_premade.dm.rej delete mode 100644 code/modules/paperwork/pen.dm.rej delete mode 100644 code/modules/paperwork/photography.dm.rej delete mode 100644 code/modules/power/singularity/emitter.dm.rej delete mode 100644 code/modules/power/singularity/particle_accelerator/particle_control.dm.rej delete mode 100644 code/modules/power/supermatter/supermatter.dm.rej delete mode 100644 code/modules/projectiles/guns/beam_rifle.dm.rej delete mode 100644 code/modules/projectiles/guns/energy/pulse.dm.rej delete mode 100644 code/modules/projectiles/projectile.dm.rej delete mode 100644 code/modules/reagents/chemistry/machinery/chem_dispenser.dm.rej delete mode 100644 code/modules/reagents/chemistry/machinery/chem_heater.dm.rej delete mode 100644 code/modules/reagents/chemistry/machinery/chem_master.dm.rej delete mode 100644 code/modules/reagents/chemistry/machinery/pandemic.dm.rej delete mode 100644 code/modules/reagents/chemistry/machinery/reagentgrinder.dm.rej delete mode 100644 code/modules/reagents/reagent_containers/dropper.dm.rej delete mode 100644 code/modules/reagents/reagent_containers/glass.dm.rej delete mode 100644 code/modules/reagents/reagent_containers/hypospray.dm.rej delete mode 100644 code/modules/reagents/reagent_containers/syringes.dm.rej delete mode 100644 code/modules/research/circuitprinter.dm.rej delete mode 100644 code/modules/research/protolathe.dm.rej delete mode 100644 code/modules/spells/spell_types/godhand.dm.rej delete mode 100644 code/world.dm.rej delete mode 100644 html/changelogs/AutoChangeLog-pr-1986.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-1999.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2000.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2005.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2008.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2010.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2015.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2019.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2020.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2021.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2027.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2028.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2031.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2040.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2043.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2047.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2051.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2052.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2054.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2057.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2065.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2068.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2069.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2073.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2075.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2083.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2085.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2086.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2088.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2090.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2091.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2093.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2094.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2098.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2099.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2101.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2106.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2110.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2111.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2115.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2119.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2120.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2130.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2131.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2132.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2133.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2134.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2135.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2139.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2140.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2142.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2143.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2145.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2147.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2151.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2154.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2161.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2162.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2167.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2168.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2169.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2170.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2172.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2173.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2180.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2184.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2186.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2189.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2190.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2193.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2196.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2197.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2209.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2211.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2215.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2231.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2232.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2233.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2242.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2245.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2249.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2253.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2266.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2274.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2278.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2281.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2287.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2291.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2295.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2298.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2299.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2301.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2305.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2308.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2309.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2319.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2320.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2325.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2329.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2335.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2339.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2346.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2350.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2356.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2357.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2359.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2362.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2363.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2371.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2376.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2377.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2399.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2402.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2408.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2428.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2437.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2438.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2439.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2447.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2448.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2461.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2465.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2471.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2483.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2487.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2495.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2498.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2513.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2517.yml delete mode 100644 strings/brain_damage_lines.json.rej delete mode 100644 tgstation.dme.rej delete mode 100644 tgui/assets/tgui.js.rej diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej deleted file mode 100644 index 1b201ec4aa..0000000000 --- a/SQL/database_changelog.txt.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) -@@ -1,10 +1,10 @@ - Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. - --The latest database version is 3.1; The query to update the schema revision table is: -+The latest database version is 3.0; The query to update the schema revision table is: - --UPDATE `schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); - or --UPDATE `SS13_schema_revision` SET major = 3, minor = 1 LIMIT 1; -+INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); - - ---------------------------------------------------- - diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm.rej b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm.rej deleted file mode 100644 index 365cc7fdda..0000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm (rejected hunks) -@@ -269,7 +269,7 @@ - "W" = ( - /obj/structure/alien/weeds, - /obj/structure/alien/resin/wall, --/obj/effect/baseturf_helper, -+/obj/effect/baseturf_helper/lava_land/surface, - /turf/open/floor/plating/asteroid/basalt/lava_land_surface, - /area/ruin/unpowered/xenonest) - diff --git a/code/__DEFINES/logging.dm.rej b/code/__DEFINES/logging.dm.rej deleted file mode 100644 index 6a7a358a9c..0000000000 --- a/code/__DEFINES/logging.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm (rejected hunks) -@@ -9,6 +9,7 @@ - #define INVESTIGATE_SUPERMATTER "supermatter" - #define INVESTIGATE_TELESCI "telesci" - #define INVESTIGATE_WIRES "wires" -+#define INVESTIGATE_HALLUCINATIONS "hallucinations" - - //Individual logging defines - #define INDIVIDUAL_ATTACK_LOG "Attack log" diff --git a/code/datums/callback.dm.rej b/code/datums/callback.dm.rej deleted file mode 100644 index 14faac8412..0000000000 --- a/code/datums/callback.dm.rej +++ /dev/null @@ -1,62 +0,0 @@ -diff a/code/datums/callback.dm b/code/datums/callback.dm (rejected hunks) -@@ -100,60 +100,3 @@ - if (object == GLOBAL_PROC) - return call(delegate)(arglist(calling_arguments)) - return call(object, delegate)(arglist(calling_arguments)) -- -- --/datum/callback_select -- var/list/finished -- var/pendingcount -- var/total -- --/datum/callback_select/New(count, savereturns) -- total = count -- if (savereturns) -- finished = new(count) -- -- --/datum/callback_select/proc/invoke_callback(index, datum/callback/callback, list/callback_args, savereturn = TRUE) -- set waitfor = FALSE -- if (!callback || !istype(callback)) -- //This check only exists because the alternative is callback_select would block forever if given invalid data -- CRASH("invalid callback passed to invoke_callback") -- if (!length(callback_args)) -- callback_args = list() -- pendingcount++ -- debug_usr("calling callback") -- var/rtn = callback.Invoke(arglist(callback_args)) -- debug_usr("callback returned") -- pendingcount-- -- if (savereturn) -- finished[index] = rtn -- -- -- -- --//runs a list of callbacks asynchronously, returning once all of them return. --//callbacks can be repeated. --//callbacks-args is a optional list of argument lists, in the same order as the callbacks, --// the inner lists will be sent to the callbacks when invoked() as additional args. --//can optionly save and return a list of return values, in the same order as the original list of callbacks --//resolution is the number of byond ticks between checks. --/proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1) -- if (!callbacks) -- return -- var/count = length(callbacks) -- if (!count) -- return -- if (!callback_args) -- callback_args = list() -- -- callback_args.len = count -- -- var/datum/callback_select/CS = new(count, savereturns) -- for (var/i in 1 to count) -- CS.invoke_callback(i, callbacks[i], callback_args[i], savereturns) -- debug_usr("starting callbacks: [CS.pendingcount]") -- while(CS.pendingcount) -- debug_usr("callbacks: [CS.pendingcount]") -- sleep(resolution*world.tick_lag) -- return CS.finished -- diff --git a/code/datums/components/component.dm.rej b/code/datums/components/component.dm.rej deleted file mode 100644 index 3cf20d57b0..0000000000 --- a/code/datums/components/component.dm.rej +++ /dev/null @@ -1 +0,0 @@ -- \ No newline at end of file diff --git a/code/datums/riding.dm.rej b/code/datums/riding.dm.rej deleted file mode 100644 index 8fe1b7d2d9..0000000000 --- a/code/datums/riding.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/datums/riding.dm b/code/datums/riding.dm (rejected hunks) -@@ -419,7 +419,7 @@ - icon = 'icons/obj/items_and_weapons.dmi.dmi' - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE -- flags = ABSTRACT | DROPDEL | NOBLUDGEON -+ flags_1 = ABSTRACT_1 | DROPDEL_1 | NOBLUDGEON_1 - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/mob/living/carbon/rider - var/mob/living/ridden diff --git a/code/game/area/Space_Station_13_areas.dm.rej b/code/game/area/Space_Station_13_areas.dm.rej deleted file mode 100644 index 841a8a2b0a..0000000000 --- a/code/game/area/Space_Station_13_areas.dm.rej +++ /dev/null @@ -1,29 +0,0 @@ -diff a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm (rejected hunks) -@@ -535,15 +535,15 @@ NOTE: there are two lists of areas in the end of this file: centcom and station - /area/crew_quarters/toilet/fitness - name = "Fitness Toilets" - icon_state = "toilet" -- -+ - /area/crew_quarters/toilet/female - name = "Female Toilets" - icon_state = "toilet" -- -+ - /area/crew_quarters/toilet/male - name = "Male Toilets" - icon_state = "toilet" -- -+ - /area/crew_quarters/toilet/restrooms - name = "Restrooms" - icon_state = "toilet" -@@ -1009,7 +1009,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station - - /area/security/execution/transfer - name = "Transfer Centre" -- -+ - /area/security/execution/education - name = "Prisoner Education Chamber" - diff --git a/code/game/area/areas.dm.rej b/code/game/area/areas.dm.rej deleted file mode 100644 index 3c097d1229..0000000000 --- a/code/game/area/areas.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/area/areas.dm b/code/game/area/areas.dm (rejected hunks) -@@ -432,7 +432,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) - // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch - if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) - L.client.ambience_playing = 1 -- L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ) -+ SEND_SOUND(L, sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = CHANNEL_BUZZ)) - - if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) - return //General ambience check is below the ship ambience so one can play without the other diff --git a/code/game/gamemodes/blob/powers.dm.rej b/code/game/gamemodes/blob/powers.dm.rej deleted file mode 100644 index 27dc764a75..0000000000 --- a/code/game/gamemodes/blob/powers.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm (rejected hunks) -@@ -175,7 +175,7 @@ - SEND_SOUND(blobber, sound('sound/effects/attackblob.ogg')) - to_chat(blobber, "You are a blobbernaut!") - to_chat(blobber, "You are powerful, hard to kill, and slowly regenerate near nodes and cores, but will slowly die if not near the blob or if the factory that made you is killed.") -- to_chat(blobber, "You can communicate with other blobbernauts and GLOB.overminds via :b") -+ to_chat(blobber, "You can communicate with other blobbernauts and overminds via :b") - to_chat(blobber, "Your overmind's blob reagent is: [blob_reagent_datum.name]!") - to_chat(blobber, "The [blob_reagent_datum.name] reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]") - if(blobber) diff --git a/code/game/gamemodes/changeling/powers/mutations.dm.rej b/code/game/gamemodes/changeling/powers/mutations.dm.rej deleted file mode 100644 index 57ff20a0b4..0000000000 --- a/code/game/gamemodes/changeling/powers/mutations.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm (rejected hunks) -@@ -395,7 +395,7 @@ - /obj/item/shield/changeling - name = "shield-like mass" - desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield." -- flags = ABSTRACT | NODROP | DROPDEL -+ flags_1 = ABSTRACT_1 | NODROP_1 | DROPDEL_1 - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "ling_shield" - lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi' -@@ -443,7 +443,7 @@ - name = "flesh mass" - icon_state = "lingspacesuit" - desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." -- flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) -+ flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen) - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) //No armor at all. - diff --git a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm.rej b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm.rej deleted file mode 100644 index f97e3c8c1f..0000000000 --- a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm (rejected hunks) -@@ -6,6 +6,8 @@ - icon = 'icons/obj/clockwork_objects.dmi' - icon_state = "ratvarian_spear" - item_state = "ratvarian_spear" -+ lefthand_file = 'icons/mob/inhands/antag/clockwork_lefthand.dmi' -+ righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi' - force = 15 //Extra damage is dealt to targets in attack() - throwforce = 25 - armour_penetration = 10 diff --git a/code/game/gamemodes/cult/cult_items.dm.rej b/code/game/gamemodes/cult/cult_items.dm.rej deleted file mode 100644 index cb9c6324c1..0000000000 --- a/code/game/gamemodes/cult/cult_items.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm (rejected hunks) -@@ -31,7 +31,7 @@ - /obj/item/melee/cultblade/ghost - name = "eldritch sword" - force = 19 //can't break normal airlocks -- flags = NODROP|DROPDEL -+ flags_1 = NODROP_1|DROPDEL_1 - - /obj/item/melee/cultblade/pickup(mob/living/user) - ..() diff --git a/code/game/gamemodes/cult/talisman.dm.rej b/code/game/gamemodes/cult/talisman.dm.rej deleted file mode 100644 index b4f739b6fc..0000000000 --- a/code/game/gamemodes/cult/talisman.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm (rejected hunks) -@@ -343,7 +343,7 @@ - desc = "Shackles that bind the wrists with sinister magic." - trashtype = /obj/item/restraints/handcuffs/energy/used - origin_tech = "materials=2;magnets=5" -- flags = DROPDEL -+ flags_1 = DROPDEL_1 - - /obj/item/restraints/handcuffs/energy/cult/used/dropped(mob/user) - user.visible_message("[user]'s shackles shatter in a discharge of dark magic!", \ diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm.rej b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm.rej deleted file mode 100644 index 7e66243e36..0000000000 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm (rejected hunks) -@@ -499,7 +499,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} - - /obj/item/restraints/handcuffs/energy/used - desc = "energy discharge" -- flags = DROPDEL -+ flags_1 = DROPDEL_1 - - /obj/item/restraints/handcuffs/energy/used/dropped(mob/user) - user.visible_message("[user]'s [src] break in a discharge of energy!", \ diff --git a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm.rej b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm.rej deleted file mode 100644 index 3e8b7d8f67..0000000000 --- a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm (rejected hunks) -@@ -23,7 +23,7 @@ - var/obj/item/clothing/suit/armor/abductor/vest/V = locate() in H - if(V) - console.AddVest(V) -- V.flags |= NODROP -+ V.flags_1 |= NODROP_1 - - var/obj/item/storage/backpack/B = locate() in H - if(B) diff --git a/code/game/machinery/computer/buildandrepair.dm.rej b/code/game/machinery/computer/buildandrepair.dm.rej deleted file mode 100644 index f58657eeda..0000000000 --- a/code/game/machinery/computer/buildandrepair.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm (rejected hunks) -@@ -136,7 +136,7 @@ - - - /obj/structure/frame/computer/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - if(state == 4) - new /obj/item/shard(loc) - new /obj/item/shard(loc) diff --git a/code/game/machinery/doors/door.dm.rej b/code/game/machinery/doors/door.dm.rej deleted file mode 100644 index 7d3066935d..0000000000 --- a/code/game/machinery/doors/door.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm (rejected hunks) -@@ -163,7 +163,7 @@ - else if(istype(I, /obj/item/weldingtool)) - try_to_weld(I, user) - return 1 -- else if(!(I.flags & NOBLUDGEON) && user.a_intent != INTENT_HARM) -+ else if(!(I.flags_1 & NOBLUDGEON_1) && user.a_intent != INTENT_HARM) - try_to_activate_door(user) - return 1 - return ..() diff --git a/code/game/machinery/doors/windowdoor.dm.rej b/code/game/machinery/doors/windowdoor.dm.rej deleted file mode 100644 index 675a389de8..0000000000 --- a/code/game/machinery/doors/windowdoor.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm (rejected hunks) -@@ -11,7 +11,7 @@ - integrity_failure = 0 - armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 70, acid = 100) - visible = FALSE -- flags = ON_BORDER -+ flags_1 = ON_BORDER_1 - opacity = 0 - CanAtmosPass = ATMOS_PASS_PROC - var/obj/item/electronics/airlock/electronics = null -@@ -221,7 +221,7 @@ - return - - add_fingerprint(user) -- if(!(flags&NODECONSTRUCT)) -+ if(!(flags_1&NODECONSTRUCT_1)) - if(istype(I, /obj/item/screwdriver)) - if(density || operating) - to_chat(user, "You need to open the door to access the maintenance panel!") diff --git a/code/game/machinery/firealarm.dm.rej b/code/game/machinery/firealarm.dm.rej deleted file mode 100644 index 3b656ac7fa..0000000000 --- a/code/game/machinery/firealarm.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm (rejected hunks) -@@ -239,12 +239,12 @@ - alarm() - - /obj/machinery/firealarm/obj_break(damage_flag) -- if(!(stat & BROKEN) && !(flags & NODECONSTRUCT) && buildstage != 0) //can't break the electronics if there isn't any inside. -+ if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1) && buildstage != 0) //can't break the electronics if there isn't any inside. - stat |= BROKEN - update_icon() - - /obj/machinery/firealarm/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/metal(loc, 1) - if(!(stat & BROKEN)) - var/obj/item/I = new /obj/item/electronics/firealarm(loc) diff --git a/code/game/machinery/iv_drip.dm.rej b/code/game/machinery/iv_drip.dm.rej deleted file mode 100644 index 490beb519f..0000000000 --- a/code/game/machinery/iv_drip.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm (rejected hunks) -@@ -15,7 +15,7 @@ - /obj/item/reagent_containers/glass) - - /obj/machinery/iv_drip/Initialize() -- ..() -+ . = ..() - update_icon() - drip_containers = typecacheof(drip_containers) - diff --git a/code/game/machinery/limbgrower.dm.rej b/code/game/machinery/limbgrower.dm.rej deleted file mode 100644 index 6605f2e3da..0000000000 --- a/code/game/machinery/limbgrower.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm (rejected hunks) -@@ -10,7 +10,7 @@ - icon = 'icons/obj/machines/limbgrower.dmi' - icon_state = "limbgrower_idleoff" - density = TRUE -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - anchored = TRUE - use_power = IDLE_POWER_USE - idle_power_usage = 10 diff --git a/code/game/machinery/newscaster.dm.rej b/code/game/machinery/newscaster.dm.rej deleted file mode 100644 index 72b1edc08c..0000000000 --- a/code/game/machinery/newscaster.dm.rej +++ /dev/null @@ -1,18 +0,0 @@ -diff a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm (rejected hunks) -@@ -758,14 +758,14 @@ GLOBAL_LIST_EMPTY(allCasters) - - - /obj/machinery/newscaster/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/metal(loc, 2) - new /obj/item/shard(loc) - new /obj/item/shard(loc) - qdel(src) - - /obj/machinery/newscaster/obj_break() -- if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) -+ if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - stat |= BROKEN - playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1) - update_icon() diff --git a/code/game/machinery/porta_turret/portable_turret.dm.rej b/code/game/machinery/porta_turret/portable_turret.dm.rej deleted file mode 100644 index 0f16ca5ef3..0000000000 --- a/code/game/machinery/porta_turret/portable_turret.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm (rejected hunks) -@@ -664,7 +659,7 @@ - return ..() - - /obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets -- ..() -+ . = ..() - if(!mapload) - return - diff --git a/code/game/machinery/recycler.dm.rej b/code/game/machinery/recycler.dm.rej deleted file mode 100644 index 2903c4ce1d..0000000000 --- a/code/game/machinery/recycler.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm (rejected hunks) -@@ -187,7 +187,7 @@ - name = "dangerous old crusher" - emagged = TRUE - crush_damage = 120 -- flags = NODECONSTRUCT -+ flags_1 = NODECONSTRUCT_1 - - /obj/item/paper/guides/recycler - name = "paper - 'garbage duty instructions'" diff --git a/code/game/machinery/shieldgen.dm.rej b/code/game/machinery/shieldgen.dm.rej deleted file mode 100644 index 12ce2d21dc..0000000000 --- a/code/game/machinery/shieldgen.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm (rejected hunks) -@@ -12,7 +12,7 @@ - - /obj/structure/emergency_shield/Initialize() - . = ..() -- setDir(pick(1,2,3,4)) -+ setDir(pick(GLOB.cardinals)) - air_update_turf(1) - - /obj/structure/emergency_shield/Destroy() diff --git a/code/game/objects/effects/mines.dm.rej b/code/game/objects/effects/mines.dm.rej deleted file mode 100644 index d1d152fd06..0000000000 --- a/code/game/objects/effects/mines.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm (rejected hunks) -@@ -130,7 +130,7 @@ - new /datum/hallucination/delusion(victim, TRUE, "demon",duration,0) - - var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) -- chainsaw.flags |= NODROP -+ chainsaw.flags_1 |= NODROP_1 - victim.drop_all_held_items() - victim.put_in_hands(chainsaw) - chainsaw.attack_self(victim) diff --git a/code/game/objects/items.dm.rej b/code/game/objects/items.dm.rej deleted file mode 100644 index 546d2c394c..0000000000 --- a/code/game/objects/items.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items.dm b/code/game/objects/items.dm (rejected hunks) -@@ -135,7 +135,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) - hitsound = "swing_hit" - - /obj/item/Destroy() -- flags &= ~DROPDEL //prevent reqdels -+ flags_1 &= ~DROPDEL_1 //prevent reqdels - if(ismob(loc)) - var/mob/m = loc - m.temporarilyRemoveItemFromInventory(src, TRUE) diff --git a/code/game/objects/items/robot/robot_items.dm.rej b/code/game/objects/items/robot/robot_items.dm.rej deleted file mode 100644 index cfcbd37d1c..0000000000 --- a/code/game/objects/items/robot/robot_items.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm (rejected hunks) -@@ -151,7 +151,7 @@ - /obj/item/borg/charger - name = "power connector" - icon_state = "charger_draw" -- flags = NOBLUDGEON -+ flags_1 = NOBLUDGEON_1 - var/mode = "draw" - var/static/list/charge_machines = typecacheof(list(/obj/machinery/cell_charger, /obj/machinery/recharger, /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port)) - var/static/list/charge_items = typecacheof(list(/obj/item/stock_parts/cell, /obj/item/gun/energy)) diff --git a/code/game/objects/items/stacks/wrap.dm.rej b/code/game/objects/items/stacks/wrap.dm.rej deleted file mode 100644 index c8433b06fe..0000000000 --- a/code/game/objects/items/stacks/wrap.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm (rejected hunks) -@@ -9,7 +9,7 @@ - desc = "Wrap packages with this festive paper to make gifts." - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "wrap_paper" -- flags = NOBLUDGEON -+ flags_1 = NOBLUDGEON_1 - amount = 25 - max_amount = 25 - resistance_flags = FLAMMABLE -@@ -30,7 +30,7 @@ - desc = "You can use this to wrap items in." - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "deliveryPaper" -- flags = NOBLUDGEON -+ flags_1 = NOBLUDGEON_1 - amount = 25 - max_amount = 25 - resistance_flags = FLAMMABLE diff --git a/code/game/objects/items/toys.dm.rej b/code/game/objects/items/toys.dm.rej deleted file mode 100644 index 2885a32a69..0000000000 --- a/code/game/objects/items/toys.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm (rejected hunks) -@@ -244,8 +244,8 @@ - // Copied from /obj/item/melee/transforming/energy/sword/attackby - /obj/item/toy/sword/attackby(obj/item/W, mob/living/user, params) - if(istype(W, /obj/item/toy/sword)) -- if((W.flags & NODROP) || (flags & NODROP)) -- to_chat(user, "\the [flags & NODROP ? src : W] is stuck to your hand, you can't attach it to \the [flags & NODROP ? W : src]!") -+ if((W.flags_1 & NODROP_1) || (flags_1 & NODROP_1)) -+ to_chat(user, "\the [flags_1 & NODROP_1 ? src : W] is stuck to your hand, you can't attach it to \the [flags_1 & NODROP_1 ? W : src]!") - return - else - to_chat(user, "You attach the ends of the two plastic swords, making a single double-bladed toy! You're fake-cool.") diff --git a/code/game/objects/structures/beds_chairs/bed.dm.rej b/code/game/objects/structures/beds_chairs/bed.dm.rej deleted file mode 100644 index 818bce9711..0000000000 --- a/code/game/objects/structures/beds_chairs/bed.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm (rejected hunks) -@@ -31,7 +31,7 @@ - return attack_hand(user) - - /obj/structure/bed/attackby(obj/item/W, mob/user, params) -- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT)) -+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) - playsound(src.loc, W.usesound, 50, 1) - deconstruct(TRUE) - else diff --git a/code/game/objects/structures/beds_chairs/chair.dm.rej b/code/game/objects/structures/beds_chairs/chair.dm.rej deleted file mode 100644 index 4dee120e01..0000000000 --- a/code/game/objects/structures/beds_chairs/chair.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm (rejected hunks) -@@ -41,7 +41,7 @@ - qdel(src) - - /obj/structure/chair/attackby(obj/item/W, mob/user, params) -- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT)) -+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) - playsound(src.loc, W.usesound, 50, 1) - deconstruct() - else if(istype(W, /obj/item/assembly/shock_kit)) diff --git a/code/game/objects/structures/crates_lockers/closets.dm.rej b/code/game/objects/structures/crates_lockers/closets.dm.rej deleted file mode 100644 index 55cd62f8af..0000000000 --- a/code/game/objects/structures/crates_lockers/closets.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm (rejected hunks) -@@ -193,12 +193,12 @@ - return open(user) - - /obj/structure/closet/deconstruct(disassembled = TRUE) -- if(ispath(material_drop) && material_drop_amount && !(flags & NODECONSTRUCT)) -+ if(ispath(material_drop) && material_drop_amount && !(flags_1 & NODECONSTRUCT_1)) - new material_drop(loc, material_drop_amount) - qdel(src) - - /obj/structure/closet/obj_break(damage_flag) -- if(!broken && !(flags & NODECONSTRUCT)) -+ if(!broken && !(flags_1 & NODECONSTRUCT_1)) - bust_open() - - /obj/structure/closet/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/structures/displaycase.dm.rej b/code/game/objects/structures/displaycase.dm.rej deleted file mode 100644 index febee50d2c..0000000000 --- a/code/game/objects/structures/displaycase.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm (rejected hunks) -@@ -50,7 +50,7 @@ - playsound(src.loc, 'sound/items/welder.ogg', 100, 1) - - /obj/structure/displaycase/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - dump() - if(!disassembled) - new /obj/item/shard( src.loc ) -@@ -58,7 +58,7 @@ - qdel(src) - - /obj/structure/displaycase/obj_break(damage_flag) -- if(!broken && !(flags & NODECONSTRUCT)) -+ if(!broken && !(flags_1 & NODECONSTRUCT_1)) - density = FALSE - broken = 1 - new /obj/item/shard( src.loc ) diff --git a/code/game/objects/structures/fireaxe.dm.rej b/code/game/objects/structures/fireaxe.dm.rej deleted file mode 100644 index cfb3b8d8a8..0000000000 --- a/code/game/objects/structures/fireaxe.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm (rejected hunks) -@@ -91,7 +91,7 @@ - new /obj/item/shard(loc) - - /obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - if(fireaxe && loc) - fireaxe.forceMove(loc) - fireaxe = null diff --git a/code/game/objects/structures/flora.dm.rej b/code/game/objects/structures/flora.dm.rej deleted file mode 100644 index 328c71e5cb..0000000000 --- a/code/game/objects/structures/flora.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm (rejected hunks) -@@ -13,7 +13,7 @@ - var/log_amount = 10 - - /obj/structure/flora/tree/attackby(obj/item/W, mob/user, params) -- if(!cut && log_amount && (!(NODECONSTRUCT in flags))) -+ if(!cut && log_amount && (!(flags_1 & NODECONSTRUCT_1))) - if(W.sharpness && W.force > 0) - if(W.hitsound) - playsound(get_turf(src), W.hitsound, 100, 0, 0) diff --git a/code/game/objects/structures/janicart.dm.rej b/code/game/objects/structures/janicart.dm.rej deleted file mode 100644 index 04143253b3..0000000000 --- a/code/game/objects/structures/janicart.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm (rejected hunks) -@@ -5,7 +5,7 @@ - icon_state = "cart" - anchored = FALSE - density = TRUE -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - //copypaste sorry - var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/storage/bag/trash/mybag = null diff --git a/code/game/objects/structures/manned_turret.dm.rej b/code/game/objects/structures/manned_turret.dm.rej deleted file mode 100644 index a248573d17..0000000000 --- a/code/game/objects/structures/manned_turret.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm (rejected hunks) -@@ -177,7 +177,7 @@ - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE -- flags = ABSTRACT | NODROP | NOBLUDGEON | DROPDEL -+ flags_1 = ABSTRACT_1 | NODROP_1 | NOBLUDGEON_1 | DROPDEL_1 - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/obj/machinery/manned_turret/turret - diff --git a/code/game/objects/structures/mirror.dm.rej b/code/game/objects/structures/mirror.dm.rej deleted file mode 100644 index 28985dc2f1..0000000000 --- a/code/game/objects/structures/mirror.dm.rej +++ /dev/null @@ -1,18 +0,0 @@ -diff a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm (rejected hunks) -@@ -47,14 +47,14 @@ - ..() - - /obj/structure/mirror/obj_break(damage_flag) -- if(!broken && !(flags & NODECONSTRUCT)) -+ if(!broken && !(flags_1 & NODECONSTRUCT_1)) - icon_state = "mirror_broke" - playsound(src, "shatter", 70, 1) - desc = "Oh no, seven years of bad luck!" - broken = 1 - - /obj/structure/mirror/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - if(!disassembled) - new /obj/item/shard( src.loc ) - qdel(src) diff --git a/code/game/objects/structures/signs.dm.rej b/code/game/objects/structures/signs.dm.rej deleted file mode 100644 index 51eea8f290..0000000000 --- a/code/game/objects/structures/signs.dm.rej +++ /dev/null @@ -1,11 +0,0 @@ -diff a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm (rejected hunks) -@@ -326,6 +326,6 @@ - icon_state = "direction_bridge" - - /obj/structure/sign/logo -- name = "station logo" -- desc = "A sign: SPACE STATION 13." -+ name = "nanotrasen logo" -+ desc = "The Nanotrasen corporate logo." - icon_state = "nanotrasen_sign1" -\ No newline at end of file diff --git a/code/game/objects/structures/tables_racks.dm.rej b/code/game/objects/structures/tables_racks.dm.rej deleted file mode 100644 index 3b5d3235dd..0000000000 --- a/code/game/objects/structures/tables_racks.dm.rej +++ /dev/null @@ -1,37 +0,0 @@ -diff a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm (rejected hunks) -@@ -94,7 +94,7 @@ - - - /obj/structure/table/attackby(obj/item/I, mob/user, params) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - if(istype(I, /obj/item/screwdriver) && deconstruction_ready) - to_chat(user, "You start disassembling [src]...") - playsound(src.loc, I.usesound, 50, 1) -@@ -429,7 +429,7 @@ - - - /obj/structure/rack/attackby(obj/item/W, mob/user, params) -- if (istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT)) -+ if (istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) - playsound(src.loc, W.usesound, 50, 1) - deconstruct(TRUE) - return -@@ -466,7 +466,7 @@ - */ - - /obj/structure/rack/deconstruct(disassembled = TRUE) -- if(!(flags&NODECONSTRUCT)) -+ if(!(flags_1&NODECONSTRUCT_1)) - density = FALSE - var/obj/item/rack_parts/newparts = new(loc) - transfer_fingerprints_to(newparts) -@@ -482,7 +482,7 @@ - desc = "Parts of a rack." - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "rack_parts" -- flags = CONDUCT -+ flags_1 = CONDUCT_1 - materials = list(MAT_METAL=2000) - var/building = FALSE - diff --git a/code/game/objects/structures/watercloset.dm.rej b/code/game/objects/structures/watercloset.dm.rej deleted file mode 100644 index 6d2baac077..0000000000 --- a/code/game/objects/structures/watercloset.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm (rejected hunks) -@@ -462,7 +462,7 @@ - - if(istype(O, /obj/item/reagent_containers)) - var/obj/item/reagent_containers/RG = O -- if(RG.container_type & OPENCONTAINER) -+ if(RG.container_type & OPENCONTAINER_1) - if(!RG.reagents.holder_full()) - RG.reagents.add_reagent("[dispensedreagent]", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - to_chat(user, "You fill [RG] from [src].") diff --git a/code/game/objects/structures/window.dm.rej b/code/game/objects/structures/window.dm.rej deleted file mode 100644 index 6968784ec2..0000000000 --- a/code/game/objects/structures/window.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm (rejected hunks) -@@ -188,7 +188,7 @@ - to_chat(user, "[src] is already in good condition!") - return - -- if(!(flags&NODECONSTRUCT)) -+ if(!(flags_1&NODECONSTRUCT_1)) - if(istype(I, /obj/item/screwdriver)) - playsound(src, I.usesound, 75, 1) - if(reinf) diff --git a/code/game/sound.dm.rej b/code/game/sound.dm.rej deleted file mode 100644 index 003c8b9975..0000000000 --- a/code/game/sound.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/game/sound.dm b/code/game/sound.dm (rejected hunks) -@@ -145,7 +145,3 @@ - if ("can_open") - soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') - return soundin -- --/proc/playsound_global(file, repeat = 0, wait, channel, volume) -- for(var/V in GLOB.clients) -- V << sound(file, repeat, wait, channel, volume) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm.rej b/code/game/turfs/simulated/floor/fancy_floor.dm.rej deleted file mode 100644 index c310c1ab28..0000000000 --- a/code/game/turfs/simulated/floor/fancy_floor.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm (rejected hunks) -@@ -66,7 +66,7 @@ - icon_state = "grass" - floor_tile = /obj/item/stack/tile/grass - broken_states = list("sand") -- flags = NONE -+ flags_1 = NONE - var/ore_type = /obj/item/ore/glass - var/turfverb = "uproot" - diff --git a/code/game/turfs/turf.dm.rej b/code/game/turfs/turf.dm.rej deleted file mode 100644 index d58adb0f78..0000000000 --- a/code/game/turfs/turf.dm.rej +++ /dev/null @@ -1 +0,0 @@ -garbage \ No newline at end of file diff --git a/code/modules/admin/admin_investigate.dm.rej b/code/modules/admin/admin_investigate.dm.rej deleted file mode 100644 index d58adb0f78..0000000000 --- a/code/modules/admin/admin_investigate.dm.rej +++ /dev/null @@ -1 +0,0 @@ -garbage \ No newline at end of file diff --git a/code/modules/assembly/bomb.dm.rej b/code/modules/assembly/bomb.dm.rej deleted file mode 100644 index f3c0e1ff20..0000000000 --- a/code/modules/assembly/bomb.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm (rejected hunks) -@@ -8,7 +8,7 @@ - w_class = WEIGHT_CLASS_NORMAL - throw_speed = 2 - throw_range = 4 -- flags = CONDUCT -+ flags_1 = CONDUCT_1 - var/status = FALSE //0 - not readied //1 - bomb finished with welder - var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device - var/obj/item/tank/bombtank = null //the second part of the bomb is a plasma tank diff --git a/code/modules/atmospherics/machinery/airalarm.dm.rej b/code/modules/atmospherics/machinery/airalarm.dm.rej deleted file mode 100644 index bd403dcdff..0000000000 --- a/code/modules/atmospherics/machinery/airalarm.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm (rejected hunks) -@@ -734,7 +734,7 @@ - update_icon() - - /obj/machinery/airalarm/deconstruct(disassembled = TRUE) -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/metal(loc, 2) - var/obj/item/I = new /obj/item/electronics/airalarm(loc) - if(!disassembled) diff --git a/code/modules/awaymissions/capture_the_flag.dm.rej b/code/modules/awaymissions/capture_the_flag.dm.rej deleted file mode 100644 index 3cd73a1ae5..0000000000 --- a/code/modules/awaymissions/capture_the_flag.dm.rej +++ /dev/null @@ -1,18 +0,0 @@ -diff a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm (rejected hunks) -@@ -473,14 +473,14 @@ - W.registered_name = H.real_name - W.update_label(W.registered_name, W.assignment) - -- // The shielded hardsuit is already NODROP -+ // The shielded hardsuit is already NODROP_1 - no_drops += H.get_item_by_slot(slot_gloves) - no_drops += H.get_item_by_slot(slot_shoes) - no_drops += H.get_item_by_slot(slot_w_uniform) - no_drops += H.get_item_by_slot(slot_ears) - for(var/i in no_drops) - var/obj/item/I = i -- I.flags |= NODROP -+ I.flags_1 |= NODROP_1 - - /datum/outfit/ctf/instagib - r_hand = /obj/item/gun/energy/laser/instakill diff --git a/code/modules/cargo/console.dm.rej b/code/modules/cargo/console.dm.rej deleted file mode 100644 index e8798f179a..0000000000 --- a/code/modules/cargo/console.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm (rejected hunks) -@@ -145,7 +145,7 @@ - - var/reason = "" - if(requestonly) -- reason = stripped_input("Reason:", name, "") as text|null -+ reason = stripped_input("Reason:", name, "") - if(isnull(reason) || ..()) - return - diff --git a/code/modules/client/client_procs.dm.rej b/code/modules/client/client_procs.dm.rej deleted file mode 100644 index 2b656938c4..0000000000 --- a/code/modules/client/client_procs.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm (rejected hunks) -@@ -73,7 +73,7 @@ - return - - //Logs all hrefs, except chat pings -- if(href_list["proc"] != "ping") -+ if(!(href_list["_src_"] == "chat" && href_list["proc"] == "ping" && LAZYLEN(href_list) == 2)) - WRITE_FILE(GLOB.world_href_log, "[time_stamp(show_ds = TRUE)] [src] (usr:[usr]) || [hsrc ? "[hsrc] " : ""][href]
") - - // Admin PM diff --git a/code/modules/client/preferences_savefile.dm.rej b/code/modules/client/preferences_savefile.dm.rej deleted file mode 100644 index 3cdbf2cd44..0000000000 --- a/code/modules/client/preferences_savefile.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm (rejected hunks) -@@ -193,7 +193,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car - return 0 - S.cd = "/" - -- WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date) -+ WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date - - //general preferences - WRITE_FILE(S["ooccolor"], ooccolor) diff --git a/code/modules/clothing/chameleon.dm.rej b/code/modules/clothing/chameleon.dm.rej deleted file mode 100644 index 3825f8d9ff..0000000000 --- a/code/modules/clothing/chameleon.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm (rejected hunks) -@@ -384,7 +384,7 @@ - item_color = "black" - desc = "A pair of black shoes." - permeability_coefficient = 0.05 -- flags = NOSLIP -+ flags_1 = NOSLIP_1 - origin_tech = "syndicate=2" - resistance_flags = 0 - pockets = /obj/item/storage/internal/pocket/shoes diff --git a/code/modules/clothing/clothing.dm.rej b/code/modules/clothing/clothing.dm.rej deleted file mode 100644 index 38da963c2b..0000000000 --- a/code/modules/clothing/clothing.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm (rejected hunks) -@@ -494,7 +494,7 @@ BLIND // can't see anything - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.02 -- flags = STOPSPRESSUREDMAGE | THICKMATERIAL -+ flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals) - slowdown = 1 diff --git a/code/modules/clothing/glasses/glasses.dm.rej b/code/modules/clothing/glasses/glasses.dm.rej deleted file mode 100644 index df7958aaba..0000000000 --- a/code/modules/clothing/glasses/glasses.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm (rejected hunks) -@@ -331,7 +331,7 @@ - vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS - darkness_view = 8 - scan_reagents = 1 -- flags = NODROP -+ flags_1 = NODROP_1 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - - /obj/item/clothing/glasses/godeye/attackby(obj/item/W as obj, mob/user as mob, params) diff --git a/code/modules/clothing/head/collectable.dm.rej b/code/modules/clothing/head/collectable.dm.rej deleted file mode 100644 index 82a9962cb8..0000000000 --- a/code/modules/clothing/head/collectable.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm (rejected hunks) -@@ -4,7 +4,6 @@ - /obj/item/clothing/head/collectable - name = "collectable hat" - desc = "A rare collectable hat." -- dynamic_hair_suffix = "+detective" - - - /obj/item/clothing/head/collectable/petehat diff --git a/code/modules/clothing/head/misc.dm.rej b/code/modules/clothing/head/misc.dm.rej deleted file mode 100644 index df85f74b20..0000000000 --- a/code/modules/clothing/head/misc.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm (rejected hunks) -@@ -250,7 +250,7 @@ - name = "jester hat" - desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat" -- dynamic_hair_suffix = "null" -+ dynamic_hair_suffix = "" - - /obj/item/clothing/head/rice_hat - name = "rice hat" -@@ -302,4 +302,4 @@ - name = "jester hat" - desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat2" -- dynamic_hair_suffix = "null" -+ dynamic_hair_suffix = "" diff --git a/code/modules/clothing/suits/armor.dm.rej b/code/modules/clothing/suits/armor.dm.rej deleted file mode 100644 index 6f11586f40..0000000000 --- a/code/modules/clothing/suits/armor.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm (rejected hunks) -@@ -348,7 +348,7 @@ - w_class = WEIGHT_CLASS_BULKY - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/gun/energy, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals/emergency_oxygen) -- flags = THICKMATERIAL -+ flags_1 = THICKMATERIAL_1 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/suits/bio.dm.rej b/code/modules/clothing/suits/bio.dm.rej deleted file mode 100644 index d39f7fa08f..0000000000 --- a/code/modules/clothing/suits/bio.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm (rejected hunks) -@@ -18,7 +18,7 @@ - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 -- flags = THICKMATERIAL -+ flags_1 = THICKMATERIAL_1 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - slowdown = 1 - allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/pen, /obj/item/device/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) diff --git a/code/modules/clothing/suits/utility.dm.rej b/code/modules/clothing/suits/utility.dm.rej deleted file mode 100644 index 9570c7bb6c..0000000000 --- a/code/modules/clothing/suits/utility.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm (rejected hunks) -@@ -21,7 +21,7 @@ - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/extinguisher, /obj/item/crowbar) - slowdown = 1 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT -- flags = STOPSPRESSUREDMAGE | THICKMATERIAL -+ flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS -@@ -124,7 +124,7 @@ - w_class = WEIGHT_CLASS_BULKY - gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.50 -- flags = THICKMATERIAL -+ flags_1 = THICKMATERIAL_1 - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/device/geiger_counter) - slowdown = 1.5 diff --git a/code/modules/crafting/craft.dm.rej b/code/modules/crafting/craft.dm.rej deleted file mode 100644 index c1aa21cb9c..0000000000 --- a/code/modules/crafting/craft.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm (rejected hunks) -@@ -96,7 +96,7 @@ - else - if(istype(I, /obj/item/reagent_containers)) - var/obj/item/reagent_containers/RC = I -- if(RC.container_type & OPENCONTAINER) -+ if(RC.container_type & OPENCONTAINER_1) - for(var/datum/reagent/A in RC.reagents.reagent_list) - .[A.type] += A.volume - .[I.type] += 1 diff --git a/code/modules/fields/turf_objects.dm.rej b/code/modules/fields/turf_objects.dm.rej deleted file mode 100644 index de5d9adf07..0000000000 --- a/code/modules/fields/turf_objects.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/fields/turf_objects.dm b/code/modules/fields/turf_objects.dm (rejected hunks) -@@ -6,7 +6,7 @@ - icon_state = null - alpha = 0 - invisibility = INVISIBILITY_ABSTRACT -- flags = ABSTRACT|ON_BORDER -+ flags_1 = ABSTRACT_1|ON_BORDER_1 - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/datum/proximity_monitor/advanced/parent = null - diff --git a/code/modules/flufftext/Hallucination.dm.rej b/code/modules/flufftext/Hallucination.dm.rej deleted file mode 100644 index 3ea6505a61..0000000000 --- a/code/modules/flufftext/Hallucination.dm.rej +++ /dev/null @@ -1,1151 +0,0 @@ -/* -Ideas for the subtle effects of hallucination: - -Light up oxygen/plasma indicators (done) -Cause health to look critical/dead, even when standing (done) -Characters silently watching you -Brief flashes of fire/space/bombs/c4/dangerous shit (done) -Items that are rare/traitorous/don't exist appearing in your inventory slots (done) -Strange audio (should be rare) (done) -Gunshots/explosions/opening doors/less rare audio (done) - -*/ - -#define HAL_LINES_FILE "hallucination.json" - -/mob/living/carbon - var/image/halimage - var/image/halbody - var/obj/halitem - var/hal_screwyhud = SCREWYHUD_NONE - var/next_hallucination = 0 - -GLOBAL_LIST_INIT(hallucinations_minor, list( - /datum/hallucination/sounds, - /datum/hallucination/bolts, - /datum/hallucination/whispers, - /datum/hallucination/message, - /datum/hallucination/hudscrew)) - -GLOBAL_LIST_INIT(hallucinations_medium, list( - /datum/hallucination/fake_alert, - /datum/hallucination/items, - /datum/hallucination/items_other, - /datum/hallucination/dangerflash, - /datum/hallucination/bolts, - /datum/hallucination/fake_flood, - /datum/hallucination/husks, - /datum/hallucination/battle, - /datum/hallucination/fire, - /datum/hallucination/self_delusion)) - -GLOBAL_LIST_INIT(hallucinations_major, list( - /datum/hallucination/fakeattacker, - /datum/hallucination/death, - /datum/hallucination/xeno_attack, - /datum/hallucination/singularity_scare, - /datum/hallucination/delusion, - /datum/hallucination/oh_yeah)) - -/mob/living/carbon/proc/handle_hallucinations() - if(world.time < next_hallucination) - return - - if(hallucination) - var/list/current = GLOB.hallucinations_minor - if(prob(25) && hallucination > 100) - current = GLOB.hallucinations_medium - else if(prob(10) && hallucination > 200) - current = GLOB.hallucinations_major - var/halpick = pick(current) - new halpick(src, FALSE) - -/mob/living/carbon/proc/set_screwyhud(hud_type) - hal_screwyhud = hud_type - update_health_hud() - -/datum/hallucination - var/mob/living/carbon/target - var/cost = 5 //affects the amount of hallucination reduced, and cooldown until the next hallucination - var/feedback_details //extra info for investigate - -/datum/hallucination/New(mob/living/carbon/T, forced = TRUE) - set waitfor = 0 - target = T - if(!forced) - target.hallucination = max(0, target.hallucination - cost) - target.next_hallucination = world.time + (rand(cost * 0.5, cost * 3) * 10) - -/datum/hallucination/proc/wake_and_restore() - target.set_screwyhud(SCREWYHUD_NONE) - target.SetSleeping(0) - -/datum/hallucination/Destroy() - target.investigate_log("was afflicted with a hallucination of type [type]. [feedback_details]", INVESTIGATE_HALLUCINATIONS) - return ..() - -/obj/effect/hallucination - invisibility = INVISIBILITY_OBSERVER - var/mob/living/carbon/target = null - -/obj/effect/hallucination/simple - var/image_icon = 'icons/mob/alien.dmi' - var/image_state = "alienh_pounce" - var/px = 0 - var/py = 0 - var/col_mod = null - var/image/current_image = null - var/image_layer = MOB_LAYER - var/active = TRUE //qdelery - -/obj/effect/hallucination/simple/Initialize(mapload, var/mob/living/carbon/T) - ..() - target = T - current_image = GetImage() - if(target.client) - target.client.images |= current_image - -/obj/effect/hallucination/simple/proc/GetImage() - var/image/I = image(image_icon,src,image_state,image_layer,dir=src.dir) - I.pixel_x = px - I.pixel_y = py - if(col_mod) - I.color = col_mod - return I - -/obj/effect/hallucination/simple/proc/Show(update=1) - if(active) - if(target.client) - target.client.images.Remove(current_image) - if(update) - current_image = GetImage() - if(target.client) - target.client.images |= current_image - -/obj/effect/hallucination/simple/update_icon(new_state,new_icon,new_px=0,new_py=0) - image_state = new_state - if(new_icon) - image_icon = new_icon - else - image_icon = initial(image_icon) - px = new_px - py = new_py - Show() - -/obj/effect/hallucination/simple/Moved(atom/OldLoc, Dir) - Show() - -/obj/effect/hallucination/simple/Destroy() - if(target.client) - target.client.images.Remove(current_image) - active = FALSE - return ..() - -#define FAKE_FLOOD_EXPAND_TIME 20 -#define FAKE_FLOOD_MAX_RADIUS 10 - -/datum/hallucination/fake_flood - //Plasma starts flooding from the nearby vent - var/turf/center - var/list/flood_images = list() - var/list/turf/flood_turfs = list() - var/image_icon = 'icons/effects/tile_effects.dmi' - var/image_state = "plasma" - var/radius = 0 - var/next_expand = 0 - cost = 25 - -/datum/hallucination/fake_flood/New(mob/living/carbon/T, forced = TRUE) - ..() - for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) - if(!U.welded) - center = get_turf(U) - break - feedback_details += "Vent Coords: [center.x],[center.y],[center.z]" - flood_images += image(image_icon,center,image_state,MOB_LAYER) - flood_turfs += center - if(target.client) target.client.images |= flood_images - next_expand = world.time + FAKE_FLOOD_EXPAND_TIME - START_PROCESSING(SSobj, src) - -/datum/hallucination/fake_flood/process() - if(next_expand <= world.time) - radius++ - if(radius > FAKE_FLOOD_MAX_RADIUS) - qdel(src) - return - Expand() - if((get_turf(target) in flood_turfs) && !target.internal) - new /datum/hallucination/fake_alert(target, TRUE, "tox_in_air") - next_expand = world.time + FAKE_FLOOD_EXPAND_TIME - -/datum/hallucination/fake_flood/proc/Expand() - for(var/turf/FT in flood_turfs) - for(var/dir in GLOB.cardinals) - var/turf/T = get_step(FT, dir) - if((T in flood_turfs) || !FT.CanAtmosPass(T)) - continue - flood_images += image(image_icon,T,image_state,MOB_LAYER) - flood_turfs += T - if(target.client) - target.client.images |= flood_images - -/datum/hallucination/fake_flood/Destroy() - STOP_PROCESSING(SSobj, src) - qdel(flood_turfs) - flood_turfs = list() - if(target.client) - target.client.images.Remove(flood_images) - target = null - qdel(flood_images) - flood_images = list() - return ..() - -/obj/effect/hallucination/simple/xeno - image_icon = 'icons/mob/alien.dmi' - image_state = "alienh_pounce" - -/obj/effect/hallucination/simple/xeno/Initialize(mapload, mob/living/carbon/T) - ..() - name = "alien hunter ([rand(1, 1000)])" - -/obj/effect/hallucination/simple/xeno/throw_impact(A) - update_icon("alienh_pounce") - if(A == target && target.stat!=DEAD) - target.Knockdown(100) - target.visible_message("[target] flails around wildly.","[name] pounces on you!") - -/datum/hallucination/xeno_attack - //Xeno crawls from nearby vent,jumps at you, and goes back in - var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null - var/obj/effect/hallucination/simple/xeno/xeno = null - cost = 25 - -/datum/hallucination/xeno_attack/New(mob/living/carbon/T, forced = TRUE) - ..() - for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) - if(!U.welded) - pump = U - break - feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]" - if(pump) - xeno = new(pump.loc,target) - sleep(10) - xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) - xeno.throw_at(target,7,1, spin = 0, diagonals_first = 1) - sleep(10) - xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) - xeno.throw_at(pump,7,1, spin = 0, diagonals_first = 1) - sleep(10) - var/xeno_name = xeno.name - to_chat(target, "[xeno_name] begins climbing into the ventilation system...") - sleep(30) - qdel(xeno) - to_chat(target, "[xeno_name] scrambles into the ventilation ducts!") - qdel(src) - -/obj/effect/hallucination/simple/clown - image_icon = 'icons/mob/animal.dmi' - image_state = "clown" - -/obj/effect/hallucination/simple/clown/Initialize(mapload, mob/living/carbon/T, duration) - ..(loc, T) - name = pick(GLOB.clown_names) - QDEL_IN(src,duration) - -/obj/effect/hallucination/simple/clown/scary - image_state = "scary_clown" - -/obj/effect/hallucination/simple/bubblegum - name = "Bubblegum" - image_icon = 'icons/mob/lavaland/96x96megafauna.dmi' - image_state = "bubblegum" - px = -32 - -/datum/hallucination/oh_yeah - var/obj/effect/hallucination/simple/bubblegum/bubblegum - var/image/fakebroken - var/image/fakerune - cost = 75 - -/datum/hallucination/oh_yeah/New(mob/living/carbon/T, forced = TRUE) - . = ..() - var/turf/closed/wall/wall - for(var/turf/closed/wall/W in range(7,target)) - wall = W - break - if(!wall) - return INITIALIZE_HINT_QDEL - feedback_details += "Source: [wall.x],[wall.y],[wall.z]" - - fakebroken = image('icons/turf/floors.dmi', wall, "plating", layer = TURF_LAYER) - var/turf/landing = get_turf(target) - var/turf/landing_image_turf = get_step(landing, SOUTHWEST) //the icon is 3x3 - fakerune = image('icons/effects/96x96.dmi', landing_image_turf, "landing", layer = ABOVE_OPEN_TURF_LAYER) - fakebroken.override = TRUE - if(target.client) - target.client.images |= fakebroken - target.client.images |= fakerune - target.playsound_local(wall,'sound/effects/meteorimpact.ogg', 150, 1) - bubblegum = new(wall, target) - addtimer(CALLBACK(src, .proc/bubble_attack, landing), 10) - -/datum/hallucination/oh_yeah/proc/bubble_attack(turf/landing) - var/charged = FALSE //only get hit once - while(get_turf(bubblegum) != landing && target && target.stat != DEAD) - bubblegum.forceMove(get_step_towards(bubblegum, landing)) - bubblegum.setDir(get_dir(bubblegum, landing)) - target.playsound_local(get_turf(bubblegum), 'sound/effects/meteorimpact.ogg', 150, 1) - shake_camera(target, 2, 1) - if(bubblegum.Adjacent(target) && !charged) - charged = TRUE - target.Knockdown(80) - target.adjustStaminaLoss(40) - step_away(target, bubblegum) - shake_camera(target, 4, 3) - target.visible_message("[target] jumps backwards, falling on the ground!","[bubblegum] slams into you!") - sleep(2) - sleep(30) - qdel(src) - -/datum/hallucination/oh_yeah/Destroy() - if(target.client) - target.client.images.Remove(fakebroken) - target.client.images.Remove(fakerune) - QDEL_NULL(fakebroken) - QDEL_NULL(fakerune) - QDEL_NULL(bubblegum) - return ..() - -/datum/hallucination/singularity_scare - //Singularity moving towards you. - //todo Hide where it moved with fake space images - var/obj/effect/hallucination/simple/singularity/s = null - cost = 75 - -/datum/hallucination/singularity_scare/New(mob/living/carbon/T, forced = TRUE) - ..() - var/turf/start = get_turf(T) - var/screen_border = pick(SOUTH,EAST,WEST,NORTH) - for(var/i in 1 to 13) - start = get_step(start,screen_border) - feedback_details += "Source: [start.x],[start.y],[start.z]" - s = new(start,target) - s.parent = src - for(var/i in 1 to 13) - sleep(10) - s.forceMove(get_step(get_turf(s),get_dir(s,target))) - s.Show() - s.Eat() - qdel(s) - -/obj/effect/hallucination/simple/singularity - image_icon = 'icons/effects/224x224.dmi' - image_state = "singularity_s7" - image_layer = MASSIVE_OBJ_LAYER - px = -96 - py = -96 - var/datum/hallucination/singularity_scare/parent - -/obj/effect/hallucination/simple/singularity/proc/Eat(atom/OldLoc, Dir) - var/target_dist = get_dist(src,target) - if(target_dist<=3) //"Eaten" - target.set_screwyhud(SCREWYHUD_DEAD) - target.SetUnconscious(160) - addtimer(CALLBACK(parent, /datum/hallucination/.proc/wake_and_restore), rand(30, 50)) - -/datum/hallucination/battle - cost = 15 - -/datum/hallucination/battle/New(mob/living/carbon/T, forced = TRUE, battle_type) - ..() - var/hits = rand(3,6) - if(!battle_type) - battle_type = pick("laser","esword","gun","stunprod","bomb") - feedback_details += "Type: [battle_type]" - switch(battle_type) - if("laser") //Laser fight - for(var/i in 1 to hits) - target.playsound_local(null, 'sound/weapons/laser.ogg', 25, 1) - if(prob(50)) - addtimer(CALLBACK(target, /mob/.proc/playsound_local, null, 'sound/weapons/sear.ogg', 25, 1), rand(10,20)) - else - addtimer(CALLBACK(target, /mob/.proc/playsound_local, null, 'sound/weapons/effects/searwall.ogg', 25, 1), rand(10,20)) - sleep(rand(CLICK_CD_RANGE, CLICK_CD_RANGE + 8)) - target.playsound_local(null, get_sfx("bodyfall"), 25, 1) - if("esword") //Esword fight - target.playsound_local(null, 'sound/weapons/saberon.ogg',15, 1) - for(var/i=0,i...wabbajack...wabbajack...
") - target.playsound_local(target,'sound/magic/staff_change.ogg', 50, 1) - delusion = A - target.client.images |= A - QDEL_IN(src, duration) - -/datum/hallucination/self_delusion/Destroy() - if(target.client) - target.client.images.Remove(delusion) - return ..() - -/datum/hallucination/fakeattacker/New(mob/living/carbon/T, forced = TRUE) - ..() - var/mob/living/carbon/human/clone = null - var/clone_weapon = null - - for(var/mob/living/carbon/human/H in GLOB.living_mob_list) - if(H.stat || H.lying) - continue - clone = H - feedback_details += "Clone of: [H.real_name]" - break - - if(!clone) - return - - var/static/list/non_fakeattack_weapons = list(/obj/item/gun/ballistic, /obj/item/ammo_box/a357,\ - /obj/item/gun/energy/kinetic_accelerator/crossbow, /obj/item/melee/transforming/energy/sword/saber,\ - /obj/item/storage/box/syndicate, /obj/item/storage/box/emps,\ - /obj/item/cartridge/virus/syndicate, /obj/item/clothing/under/chameleon,\ - /obj/item/clothing/shoes/chameleon, /obj/item/card/id/syndicate,\ - /obj/item/clothing/mask/chameleon, /obj/item/clothing/glasses/thermal,\ - /obj/item/device/chameleon, /obj/item/card/emag, /obj/item/grenade/plastic/x4,\ - /obj/item/storage/toolbox/syndicate, /obj/item/aiModule,\ - /obj/item/device/radio/headset/syndicate, /obj/item/grenade/plastic/c4,\ - /obj/item/device/powersink, /obj/item/storage/box/syndie_kit,\ - /obj/item/toy/syndicateballoon, /obj/item/gun/energy/laser/captain,\ - /obj/item/hand_tele, /obj/item/construction/rcd, /obj/item/tank/jetpack,\ - /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ - /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/disk/nuclear,\ - /obj/item/clothing/suit/space/nasavoid, /obj/item/tank) - - var/obj/effect/fake_attacker/F = new/obj/effect/fake_attacker(get_turf(target),target) - - for(var/obj/item/I in clone.held_items) - if(!(locate(I) in non_fakeattack_weapons)) - clone_weapon = I.name - F.weap = I - - F.name = clone.name - F.my_target = target - F.weapon_name = clone_weapon - - F.left = image(clone,dir = WEST) - F.right = image(clone,dir = EAST) - F.up = image(clone,dir = NORTH) - F.down = image(clone,dir = SOUTH) - - F.updateimage() - qdel(src) - -/obj/effect/fake_attacker - icon = null - icon_state = null - name = "" - desc = "" - density = FALSE - anchored = TRUE - opacity = 0 - var/mob/living/carbon/human/my_target = null - var/weapon_name = null - var/obj/item/weap = null - var/image/stand_icon = null - var/image/currentimage = null - var/icon/base = null - var/skin_tone - var/mob/living/clone = null - var/image/left - var/image/right - var/image/up - var/collapse - var/image/down - - max_integrity = 100 - -/obj/effect/fake_attacker/attackby(obj/item/P, mob/living/user, params) - step_away(src,my_target,2) - user.changeNext_move(CLICK_CD_MELEE) - user.do_attack_animation(src) - my_target.playsound_local(src, P.hitsound, 1) - my_target.visible_message("[my_target] flails around wildly.", \ - "[my_target] has attacked [src]!") - - obj_integrity -= P.force - -/obj/effect/fake_attacker/Crossed(mob/M, somenumber) - if(M == my_target) - step_away(src,my_target,2) - if(prob(30)) - for(var/mob/O in oviewers(world.view , my_target)) - to_chat(O, "[my_target] stumbles around.") - -/obj/effect/fake_attacker/Initialize(mapload, mob/living/carbon/T) - ..() - my_target = T - QDEL_IN(src, 300) - step_away(src,my_target,2) - INVOKE_ASYNC(src, .proc/attack_loop) - - -/obj/effect/fake_attacker/proc/updateimage() -// del src.currentimage - if(src.dir == NORTH) - del src.currentimage - src.currentimage = new /image(up,src) - else if(src.dir == SOUTH) - del src.currentimage - src.currentimage = new /image(down,src) - else if(src.dir == EAST) - del src.currentimage - src.currentimage = new /image(right,src) - else if(src.dir == WEST) - del src.currentimage - src.currentimage = new /image(left,src) - SEND_IMAGE(my_target, currentimage) - - -/obj/effect/fake_attacker/proc/attack_loop() - while(1) - sleep(rand(5,10)) - if(obj_integrity < 0 || my_target.stat) - collapse() - continue - if(get_dist(src,my_target) > 1) - src.setDir(get_dir(src,my_target)) - step_towards(src,my_target) - updateimage() - else - if(prob(15)) - if(weapon_name) - my_target.playsound_local(my_target, weap.hitsound, weap.get_clamped_volume(), 1) - my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1) - my_target.staminaloss += 30 - if(prob(20)) - my_target.blur_eyes(3) - if(prob(33)) - if(!locate(/obj/effect/overlay) in my_target.loc) - fake_blood(my_target) - else - my_target.playsound_local(my_target, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 25, 1) - my_target.show_message("[src.name] has punched [my_target]!", 1) - my_target.staminaloss += 30 - if(prob(33)) - if(!locate(/obj/effect/overlay) in my_target.loc) - fake_blood(my_target) - - if(prob(15)) - step_away(src,my_target,2) - -/obj/effect/fake_attacker/proc/collapse() - collapse = 1 - updateimage() - qdel(src) - -/obj/effect/fake_attacker/proc/fake_blood(mob/target) - var/obj/effect/overlay/O = new/obj/effect/overlay(target.loc) - O.name = "blood" - var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) - SEND_IMAGE(target, I) - QDEL_IN(O, 300) - - -/datum/hallucination/bolts - var/list/doors = list() - cost = 25 - -/datum/hallucination/bolts/New(mob/living/carbon/T, forced, door_number=-1) //-1 for severe, 1-2 for subtle - ..() - var/image/I = null - var/count = 0 - feedback_details += "Door amount: [door_number]" - for(var/obj/machinery/door/airlock/A in range(7, target)) - if(count>door_number && door_number>0) - break - count++ - I = image(A.overlays_file, get_turf(A), "lights_bolts",layer=A.layer+0.1) - doors += I - if(target.client) - target.client.images |= I - target.playsound_local(get_turf(A), 'sound/machines/boltsdown.ogg',30,0,3) - sleep(rand(6,12)) - sleep(100) - for(var/image/B in doors) - if(target.client) - target.client.images.Remove(B) - target.playsound_local(get_turf(B), 'sound/machines/boltsup.ogg',30,0,3) - sleep(rand(6,12)) - qdel(src) - -/datum/hallucination/whispers - cost = 15 - -/datum/hallucination/whispers/New(mob/living/carbon/T, forced = TRUE) - ..() - var/speak_messages = list("[pick_list_replacements(HAL_LINES_FILE, "suspicion")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "greetings")][target.first_name()]!",\ - "[pick_list_replacements(HAL_LINES_FILE, "getout")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "weird")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "didyouhearthat")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "imatraitor")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "doubt")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "aggressive")]",\ - "[pick_list_replacements(HAL_LINES_FILE, "help")]!!",\ - "[pick_list_replacements(HAL_LINES_FILE, "escape")]",\ - "I'm infected, [pick_list_replacements(HAL_LINES_FILE, "infection_advice")]!") - - var/radio_messages = list("Set [target.first_name()] to arrest!",\ - "[pick_list_replacements(HAL_LINES_FILE, "people")] is [pick_list_replacements(HAL_LINES_FILE, "accusations")]!",\ - "Help!",\ - "[pick_list_replacements(HAL_LINES_FILE, "threat")] in [pick_list_replacements(HAL_LINES_FILE, "location")][prob(50)?"!":"!!"]",\ - "Where's [target.first_name()]?"\ - ,"[pick("C","Ai, c","Someone c","Rec")]all the shuttle!"\ - ,"AI [pick("rogue", "is dead")]!!") - - var/list/mob/living/carbon/people = list() - var/list/mob/living/carbon/person = null - var/datum/language/understood_language = target.get_random_understood_language() - for(var/mob/living/carbon/H in view(target)) - if(H == target) - continue - if(!person) - person = H - else - if(get_dist(target,H)The light burns you!
", \ - "You don't feel like yourself.", \ - "You hear something squeezing through the ducts...", \ - "You hear a distant scream.", \ - "You feel invincible, nothing can hurt you!", \ - "You feel a tiny prick!", \ - "[target] sneezes.", \ - //The truth, revealed - "You're hallucinating.", \ - //Direct advice - "[pick_list_replacements(HAL_LINES_FILE, "advice")]") - feedback_details += "Message: [chosen]" - to_chat(target, chosen) - qdel(src) - -/datum/hallucination/sounds - cost = 15 - -/datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) - ..() - if(!sound_type) - sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", - "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") - feedback_details += "Type: [sound_type]" - //Strange audio - switch(sound_type) - if("airlock") - target.playsound_local(null,'sound/machines/airlock.ogg', 15, 1) - if("explosion") - if(prob(50)) - target.playsound_local(null,'sound/effects/explosion1.ogg', 50, 1) - else - target.playsound_local(null, 'sound/effects/explosion2.ogg', 50, 1) - if("far_explosion") - target.playsound_local(null, 'sound/effects/explosionfar.ogg', 50, 1) - if("glass") - target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) - if("phone") - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - if("summon_guns") - target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) - if("alarm") - target.playsound_local(null, 'sound/machines/alarm.ogg', 100, 0) - if("beepsky") - target.playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0) - if("hallelujah") - target.playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50) - //Rare audio - if("creepy") - //These sounds are (mostly) taken from Hidden: Source - var/static/list/hallucinations_creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\ - 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ - 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ - 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ - 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') - target.playsound_local(null, pick(hallucinations_creepyasssounds), 50, 1) - if("ratvar") - target.playsound_local(null, 'sound/effects/ratvar_rises.ogg', 100) - sleep(150) - target.playsound_local(null, 'sound/effects/ratvar_reveal.ogg', 100) - if("shuttle_dock") - to_chat(target, "

Priority Announcement

") - to_chat(target, "

The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

") - target.playsound_local(null, 'sound/ai/shuttledock.ogg', 100) - //Deconstructing a wall - if("wall_decon") - target.playsound_local(null, 'sound/items/welder.ogg', 15, 1) - sleep(105) - target.playsound_local(null, 'sound/items/welder2.ogg', 15, 1) - sleep(15) - target.playsound_local(null, 'sound/items/ratchet.ogg', 15, 1) - //Hacking a door - if("door_hack") - target.playsound_local(null, 'sound/items/screwdriver.ogg', 15, 1) - sleep(rand(10,30)) - for(var/i = rand(1,3), i>0, i--) - target.playsound_local(null, 'sound/weapons/empty.ogg', 15, 1) - sleep(rand(10,30)) - target.playsound_local(null, 'sound/machines/airlockforced.ogg', 15, 1) - if("esword") - target.playsound_local(null, 'sound/weapons/saberon.ogg',35,1) - if("blob_alert") - to_chat(target, "

Biohazard Alert

") - to_chat(target, "

Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

") - target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) - if("tesla") //Tesla loose! - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) - sleep(20) - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) - sleep(20) - target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) - if("malf_ai") //AI is doomsdaying! - to_chat(target, "

Anomaly Alert

") - to_chat(target, "

Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

") - target.playsound_local(null, 'sound/ai/aimalf.ogg', 100, 0) - qdel(src) - -/datum/hallucination/hudscrew - cost = 10 - -/datum/hallucination/hudscrew/New(mob/living/carbon/T, forced = TRUE) - ..() - //Screwy HUD - target.set_screwyhud(pick(SCREWYHUD_CRIT,SCREWYHUD_DEAD,SCREWYHUD_HEALTHY)) - feedback_details += "Type: [target.hal_screwyhud]" - sleep(rand(100,250)) - target.set_screwyhud(SCREWYHUD_NONE) - qdel(src) - -/datum/hallucination/fake_alert - cost = 15 - -/datum/hallucination/fake_alert/New(mob/living/carbon/T, forced = TRUE, specific, duration = 150) - ..() - var/alert_type = pick("not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","weightless","fire","locked","hacked","temphot","tempcold","pressure") - if(specific) - alert_type = specific - feedback_details += "Type: [alert_type]" - switch(alert_type) - if("oxy") - target.throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy, override = TRUE) - if("not_enough_tox") - target.throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox, override = TRUE) - if("not_enough_co2") - target.throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2, override = TRUE) - if("too_much_oxy") - target.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy, override = TRUE) - if("too_much_co2") - target.throw_alert("too_much_co2", /obj/screen/alert/too_much_co2, override = TRUE) - if("tox_in_air") - target.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox, override = TRUE) - if("nutrition") - if(prob(50)) - target.throw_alert("nutrition", /obj/screen/alert/fat, override = TRUE) - else - target.throw_alert("nutrition", /obj/screen/alert/starving, override = TRUE) - if("weightless") - target.throw_alert("weightless", /obj/screen/alert/weightless, override = TRUE) - if("fire") - target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) - if("temphot") - target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) - if("tempcold") - target.throw_alert("temp", /obj/screen/alert/cold, 3, override = TRUE) - if("pressure") - if(prob(50)) - target.throw_alert("pressure", /obj/screen/alert/highpressure, 2, override = TRUE) - else - target.throw_alert("pressure", /obj/screen/alert/lowpressure, 2, override = TRUE) - //BEEP BOOP I AM A ROBOT - if("newlaw") - target.throw_alert("newlaw", /obj/screen/alert/newlaw, override = TRUE) - if("locked") - target.throw_alert("locked", /obj/screen/alert/locked, override = TRUE) - if("hacked") - target.throw_alert("hacked", /obj/screen/alert/hacked, override = TRUE) - if("charge") - target.throw_alert("charge",/obj/screen/alert/emptycell, override = TRUE) - sleep(duration) - target.clear_alert(alert_type, clear_override = TRUE) - qdel(src) - -/datum/hallucination/items - cost = 15 - -/datum/hallucination/items/New(mob/living/carbon/T, forced = TRUE) - ..() - //Strange items - if(!target.halitem) - target.halitem = new - var/obj/item/l_hand = target.get_item_for_held_index(1) - var/obj/item/r_hand = target.get_item_for_held_index(2) - var/l = ui_hand_position(target.get_held_index_of_item(l_hand)) - var/r = ui_hand_position(target.get_held_index_of_item(r_hand)) - var/list/slots_free = list(l,r) - if(l_hand) slots_free -= l - if(r_hand) slots_free -= r - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(!H.belt) slots_free += ui_belt - if(!H.l_store) slots_free += ui_storage1 - if(!H.r_store) slots_free += ui_storage2 - if(slots_free.len) - target.halitem.screen_loc = pick(slots_free) - target.halitem.layer = ABOVE_HUD_LAYER - target.halitem.plane = ABOVE_HUD_PLANE - switch(rand(1,6)) - if(1) //revolver - target.halitem.icon = 'icons/obj/guns/projectile.dmi' - target.halitem.icon_state = "revolver" - target.halitem.name = "Revolver" - if(2) //c4 - target.halitem.icon = 'icons/obj/grenade.dmi' - target.halitem.icon_state = "plastic-explosive0" - target.halitem.name = "C4" - if(prob(25)) - target.halitem.icon_state = "plasticx40" - if(3) //sword - target.halitem.icon = 'icons/obj/weapons.dmi' - target.halitem.icon_state = "sword0" - target.halitem.name = "Energy Sword" - if(4) //stun baton - target.halitem.icon = 'icons/obj/weapons.dmi' - target.halitem.icon_state = "stunbaton" - target.halitem.name = "Stun Baton" - if(5) //emag - target.halitem.icon = 'icons/obj/card.dmi' - target.halitem.icon_state = "emag" - target.halitem.name = "Cryptographic Sequencer" - if(6) //flashbang - target.halitem.icon = 'icons/obj/grenade.dmi' - target.halitem.icon_state = "flashbang1" - target.halitem.name = "Flashbang" - feedback_details += "Type: [target.halitem.name]" - if(target.client) target.client.screen += target.halitem - QDEL_IN(target.halitem, rand(150, 350)) - qdel(src) - -/datum/hallucination/dangerflash - cost = 15 - -/datum/hallucination/dangerflash/New(mob/living/carbon/T, forced = TRUE) - ..() - //Flashes of danger - if(!target.halimage) - var/list/possible_points = list() - for(var/turf/open/floor/F in view(target,world.view)) - possible_points += F - if(possible_points.len) - var/turf/open/floor/danger_point = pick(possible_points) - - switch(rand(1,5)) - if(1) - target.halimage = image('icons/turf/space.dmi',danger_point,"[rand(1,25)]",TURF_LAYER) - if(2) - target.halimage = image('icons/turf/floors/lava.dmi',danger_point,"smooth",TURF_LAYER) - if(3) - target.halimage = image('icons/turf/floors/Chasms.dmi',danger_point,"smooth",TURF_LAYER) - if(4) - target.halimage = image('icons/effects/effects.dmi',danger_point,"anom",OBJ_LAYER+0.01) - if(5) - target.halimage = image('icons/effects/effects.dmi',danger_point,"electricity2",OBJ_LAYER+0.01) - - - if(target.client) - target.client.images += target.halimage - sleep(rand(200,450)) - if(target.client) - target.client.images -= target.halimage - QDEL_NULL(target.halimage) - qdel(src) - -/datum/hallucination/death - cost = 40 - -/datum/hallucination/death/New(mob/living/carbon/T, forced = TRUE) - set waitfor = 0 - ..() - target.set_screwyhud(SCREWYHUD_DEAD) - target.Knockdown(300) - target.silent += 10 - var/area/area = get_area(target) - to_chat(target, "[target.mind.name] has died at [area.name].") - if(prob(50)) - var/mob/fakemob - var/list/dead_people = list() - for(var/mob/dead/observer/G in GLOB.player_list) - dead_people += G - if(LAZYLEN(dead_people)) - fakemob = pick(dead_people) - else - fakemob = target //ever been so lonely you had to haunt yourself? - if(fakemob) - sleep(rand(20, 50)) - to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","hey [target.first_name()]","you too?","is the AI rogue?",\ - "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "abductors","double agents","viruses","badmins","you")]")]\"") - sleep(rand(70,90)) - target.set_screwyhud(SCREWYHUD_NONE) - target.SetKnockdown(0) - target.silent = 0 - qdel(src) - -/datum/hallucination/fire - cost = 25 - -/datum/hallucination/fire/New(mob/living/carbon/T, forced = TRUE) - ..() - var/image/fire_overlay = image('icons/mob/OnFire.dmi', target, "Standing", ABOVE_MOB_LAYER) - if(target.client) - target.client.images += fire_overlay - to_chat(target, "You're set on fire!") - target.throw_alert("fire", /obj/screen/alert/fire, override = TRUE) - sleep(20) - target.throw_alert("temp", /obj/screen/alert/hot, 1, override = TRUE) - sleep(30) - target.clear_alert("temp", clear_override = TRUE) - target.throw_alert("temp", /obj/screen/alert/hot, 2, override = TRUE) - sleep(30) - target.clear_alert("temp", clear_override = TRUE) - target.throw_alert("temp", /obj/screen/alert/hot, 3, override = TRUE) - for(var/i in 1 to rand(5, 10)) - target.adjustStaminaLoss(15) - sleep(25) - target.clear_alert("fire", clear_override = TRUE) - target.clear_alert("temp", clear_override = TRUE) - if(target.client) - target.client.images -= fire_overlay - QDEL_NULL(fire_overlay) - qdel(src) - -/datum/hallucination/husks - cost = 20 - -/datum/hallucination/husks/New(mob/living/carbon/T, forced = TRUE) - ..() - if(!target.halbody) - var/list/possible_points = list() - for(var/turf/open/floor/F in view(target,world.view)) - possible_points += F - if(possible_points.len) - var/turf/open/floor/husk_point = pick(possible_points) - switch(rand(1,4)) - if(1) - var/image/body = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) - var/matrix/M = matrix() - M.Turn(90) - body.transform = M - target.halbody = body - if(2,3) - target.halbody = image('icons/mob/human.dmi',husk_point,"husk",TURF_LAYER) - if(4) - target.halbody = image('icons/mob/alien.dmi',husk_point,"alienother",TURF_LAYER) - - if(target.client) - target.client.images += target.halbody - sleep(rand(30,50)) //Only seen for a brief moment. - if(target.client) - target.client.images -= target.halbody - QDEL_NULL(target.halbody) - qdel(src) - -//hallucination projectile code in code/modules/projectiles/projectile/special.dm -/datum/hallucination/stray_bullet - cost = 15 - -/datum/hallucination/stray_bullet/New(mob/living/carbon/C, forced = TRUE) - ..() - var/list/turf/startlocs = list() - for(var/turf/open/T in view(world.view+1,target)-view(world.view,target)) - startlocs += T - var/turf/start = pick(startlocs) - var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) - feedback_details += "Type: [proj_type]" - var/obj/item/projectile/hallucination/H = new proj_type(start) - target.playsound_local(start, H.hal_fire_sound, 60, 1) - H.hal_target = target - H.current = start - H.starting = start - H.yo = target.y - start.y - H.xo = target.x - start.x - H.original = target - H.fire() - qdel(src) - diff --git a/code/modules/food_and_drinks/drinks/drinks.dm.rej b/code/modules/food_and_drinks/drinks/drinks.dm.rej deleted file mode 100644 index 966cb83aee..0000000000 --- a/code/modules/food_and_drinks/drinks/drinks.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm (rejected hunks) -@@ -357,7 +357,7 @@ - /obj/item/reagent_containers/food/drinks/soda_cans/attack_self(mob/user) - if(!is_open_container()) - to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - playsound(src, "can_open", 50, 1) - spillable = TRUE - return diff --git a/code/modules/food_and_drinks/food.dm.rej b/code/modules/food_and_drinks/food.dm.rej deleted file mode 100644 index 9d092f6aa3..0000000000 --- a/code/modules/food_and_drinks/food.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm (rejected hunks) -@@ -4,7 +4,7 @@ - /obj/item/reagent_containers/food - possible_transfer_amounts = list() - volume = 50 //Sets the default container amount for all food items. -- container_type = INJECTABLE -+ container_type = INJECTABLE_1 - resistance_flags = FLAMMABLE - var/foodtype = NONE - var/last_check_time diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm.rej b/code/modules/food_and_drinks/food/snacks/meat.dm.rej deleted file mode 100644 index 8884c9dab7..0000000000 --- a/code/modules/food_and_drinks/food/snacks/meat.dm.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm (rejected hunks) -@@ -225,6 +225,11 @@ - tastes = list("meat" = 1, "wheat" = 1) - foodtype = GRAIN - -+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/gorilla -+ name = "gorilla meat" -+ desc = "Much meatier than monkey meat." -+ list_reagents = list("nutriment" = 5, "vitamin" = 1) -+ - /obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon - name = "raw piece of bacon" - desc = "A raw piece of bacon." diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm.rej b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm.rej deleted file mode 100644 index aa16e6cb82..0000000000 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm (rejected hunks) -@@ -15,7 +15,7 @@ insert ascii eagle on american flag background here - anchored = TRUE - use_power = IDLE_POWER_USE - idle_power_usage = 5 -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - var/obj/item/frying = null //What's being fried RIGHT NOW? - var/cook_time = 0 - var/static/list/deepfry_blacklisted_items = typecacheof(list( diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm.rej b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm.rej deleted file mode 100644 index e9e750f51d..0000000000 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm (rejected hunks) -@@ -15,7 +15,7 @@ - var/portion = 10 - var/selected_drink - var/list/stored_food = list() -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - var/obj/item/reagent_containers/mixer - - /obj/machinery/food_cart/Initialize() diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm.rej b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm.rej deleted file mode 100644 index 5f4ec95f19..0000000000 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm (rejected hunks) -@@ -14,7 +14,7 @@ - anchored = FALSE - use_power = NO_POWER_USE - layer = BELOW_OBJ_LAYER -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - max_integrity = 300 - var/list/product_types = list() - var/dispense_flavour = ICECREAM_VANILLA diff --git a/code/modules/goonchat/browserOutput.dm.rej b/code/modules/goonchat/browserOutput.dm.rej deleted file mode 100644 index 231def1c9a..0000000000 --- a/code/modules/goonchat/browserOutput.dm.rej +++ /dev/null @@ -1,137 +0,0 @@ -diff a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm (rejected hunks) -@@ -166,135 +166,6 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic - - //Global chat procs - --//Converts an icon to base64. Operates by putting the icon in the iconCache savefile, --// exporting it as text, and then parsing the base64 from that. --// (This relies on byond automatically storing icons in savefiles as base64) --/proc/icon2base64(icon/icon, iconKey = "misc") -- if (!isicon(icon)) -- return FALSE -- WRITE_FILE(GLOB.iconCache[iconKey], icon) -- var/iconData = GLOB.iconCache.ExportText(iconKey) -- var/list/partial = splittext(iconData, "{") -- return replacetext(copytext(partial[2], 3, -5), "\n", "") -- --/proc/icon2html(thing, target, icon_state, dir, frame = 1, moving) -- if (!thing) -- return -- var/static/datum/callback/CB = CALLBACK(GLOBAL_PROC, .proc/send_asset) -- -- var/key -- var/icon/I = thing -- if (!target) -- return -- if (target == world) -- target = GLOB.clients -- -- var/list/targets -- if (!islist(target)) -- targets = list(target) -- else -- targets = target -- if (!targets.len) -- return -- debug_usr("start") -- if (!isicon(I)) -- debug_usr("not icon") -- if (isfile(thing)) //special snowflake -- debug_usr("file") -- var/name = sanitize_filename("bicon.[thing]") -- debug_usr("file:[name]") -- register_asset(name, thing) -- var/list/callbacks -- var/list/callback_args = list() -- for (var/thing2 in targets) -- callbacks += CB -- callback_args[++callback_args.len] = list(thing2, name, TRUE) -- callback_select(callbacks, callback_args, savereturns = FALSE) -- return "" -- debug_usr("not file") -- var/atom/A -- if (isnull(dir)) -- dir = A.dir -- if (isnull(icon_state)) -- icon_state = A.icon_state -- I = A.icon -- if (ishuman(thing)) // Shitty workaround for a BYOND issue. -- debug_usr("human") -- var/icon/temp = I -- I = icon() -- I.Insert(temp, dir = SOUTH) -- dir = SOUTH -- else -- debug_usr("icon") -- if (isnull(dir)) -- dir = SOUTH -- if (isnull(icon_state)) -- icon_state = "" -- -- I = icon(I, icon_state, dir, frame) -- -- key = sanitize_filename("bicon.[md5(icon2base64(I))].[icon_state].[dir].png") -- debug_usr("key:[key]") -- register_asset(key, I) -- var/list/callbacks = list() -- var/list/callback_args = list() -- for (var/thing2 in targets) -- callbacks += CB -- callback_args[++callback_args.len] = list(thing2, key, TRUE) -- -- callback_select(callbacks, callback_args, savereturns = FALSE) -- return "" -- --/proc/icon2base64html(thing) -- if (!thing) -- return -- var/static/list/bicon_cache = list() -- if (isicon(thing)) -- var/icon/I = thing -- var/icon_base64 = icon2base64(I) -- -- if (I.Height() > world.icon_size || I.Width() > world.icon_size) -- var/icon_md5 = md5(icon_base64) -- debug_admins(icon_md5) -- icon_base64 = bicon_cache[icon_md5] -- if (!icon_base64) // Doesn't exist yet, make it. -- I = icon(I) -- I.Scale(world.icon_size, world.icon_size) -- bicon_cache[icon_md5] = icon_base64 = icon2base64(I) -- -- -- return "" -- -- // Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with. -- var/atom/A = thing -- var/key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]" -- -- -- if (!bicon_cache[key]) // Doesn't exist, make it. -- var/icon/I = icon(A.icon, A.icon_state, SOUTH, 1) -- if (ishuman(thing)) // Shitty workaround for a BYOND issue. -- var/icon/temp = I -- I = icon() -- I.Insert(temp, dir = SOUTH) -- -- if (I.Height() > world.icon_size || I.Width() > world.icon_size) -- I.Scale(world.icon_size, world.icon_size) -- -- bicon_cache[key] = icon2base64(I, key) -- -- return "" -- --//Costlier version of icon2html() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs. --/proc/costly_icon2html(thing, target) -- if (!thing) -- return -- -- if (isicon(thing)) -- return icon2html(thing, target) -- -- var/icon/I = getFlatIcon(thing) -- return icon2html(I, target) -- - /proc/to_chat(target, message) - if(!target) - return diff --git a/code/modules/mining/equipment/mining_tools.dm.rej b/code/modules/mining/equipment/mining_tools.dm.rej deleted file mode 100644 index 646ed96851..0000000000 --- a/code/modules/mining/equipment/mining_tools.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm (rejected hunks) -@@ -62,7 +62,7 @@ - /obj/item/pickaxe/drill/cyborg - name = "cyborg mining drill" - desc = "An integrated electric mining drill." -- flags = NODROP -+ flags_1 = NODROP_1 - - /obj/item/pickaxe/drill/diamonddrill - name = "diamond-tipped mining drill" -@@ -72,7 +72,7 @@ - desc = "Yours is the drill that will pierce the heavens!" - - /obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! -- name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics. -+ name = "diamond-tipped cyborg mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics. - icon_state = "diamonddrill" - digspeed = 7 - diff --git a/code/modules/mining/equipment/survival_pod.dm.rej b/code/modules/mining/equipment/survival_pod.dm.rej deleted file mode 100644 index 3effe96e52..0000000000 --- a/code/modules/mining/equipment/survival_pod.dm.rej +++ /dev/null @@ -1,35 +0,0 @@ -diff a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm (rejected hunks) -@@ -167,7 +167,7 @@ - pixel_y = -32 - - /obj/item/device/gps/computer/attackby(obj/item/W, mob/user, params) -- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT)) -+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) - playsound(src.loc, W.usesound, 50, 1) - user.visible_message("[user] disassembles the gps.", \ - "You start to disassemble the gps...", "You hear clanking and banging noises.") -@@ -198,7 +198,7 @@ - light_color = "#DDFFD3" - max_n_of_items = 10 - pixel_y = -4 -- flags = NODECONSTRUCT -+ flags_1 = NODECONSTRUCT_1 - var/empty = FALSE - - /obj/machinery/smartfridge/survival_pod/Initialize(mapload) -@@ -237,13 +237,13 @@ - CanAtmosPass = ATMOS_PASS_NO - - /obj/structure/fans/deconstruct() -- if(!(flags & NODECONSTRUCT)) -+ if(!(flags_1 & NODECONSTRUCT_1)) - if(buildstacktype) - new buildstacktype(loc,buildstackamount) - qdel(src) - - /obj/structure/fans/attackby(obj/item/W, mob/user, params) -- if(istype(W, /obj/item/wrench) && !(flags&NODECONSTRUCT)) -+ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) - playsound(src.loc, W.usesound, 50, 1) - user.visible_message("[user] disassembles the fan.", \ - "You start to disassemble the fan...", "You hear clanking and banging noises.") diff --git a/code/modules/mob/living/bloodcrawl.dm.rej b/code/modules/mob/living/bloodcrawl.dm.rej deleted file mode 100644 index cf88bd660f..0000000000 --- a/code/modules/mob/living/bloodcrawl.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm (rejected hunks) -@@ -167,7 +167,7 @@ - if(iscarbon(src)) - var/mob/living/carbon/C = src - for(var/obj/item/bloodcrawl/BC in C) -- BC.flags = null -+ BC.flags_1 = null - qdel(BC) - qdel(src.holder) - src.holder = null diff --git a/code/modules/mob/living/carbon/carbon.dm.rej b/code/modules/mob/living/carbon/carbon.dm.rej deleted file mode 100644 index 23a1954a8f..0000000000 --- a/code/modules/mob/living/carbon/carbon.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm (rejected hunks) -@@ -213,7 +213,7 @@ - if(href_list["internal"]) - var/slot = text2num(href_list["internal"]) - var/obj/item/ITEM = get_item_by_slot(slot) -- if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.flags & MASKINTERNALS)) -+ if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.flags_1 & MASKINTERNALS_1)) - visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ - "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") - if(do_mob(usr, src, POCKET_STRIP_DELAY)) -@@ -221,7 +221,7 @@ - internal = null - update_internals_hud_icon(0) - else if(ITEM && istype(ITEM, /obj/item/tank)) -- if((wear_mask && (wear_mask.flags & MASKINTERNALS)) || getorganslot("breathing_tube")) -+ if((wear_mask && (wear_mask.flags_1 & MASKINTERNALS_1)) || getorganslot("breathing_tube")) - internal = ITEM - update_internals_hud_icon(1) - diff --git a/code/modules/mob/living/carbon/human/human.dm.rej b/code/modules/mob/living/carbon/human/human.dm.rej deleted file mode 100644 index 51e11c569e..0000000000 --- a/code/modules/mob/living/carbon/human/human.dm.rej +++ /dev/null @@ -1,91 +0,0 @@ -diff a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm (rejected hunks) -@@ -141,42 +141,42 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) - dat += "" - for(var/i in 1 to held_items.len) - var/obj/item/I = get_item_for_held_index(i) -- dat += "" -+ dat += "" - dat += "" - -- dat += "" - -- dat += "" -+ dat += "" - - if(slot_wear_mask in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if(slot_neck in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if(slot_glasses in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if(slot_ears in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - dat += "" - -- dat += "" -+ dat += "" - if(wear_suit) -- dat += "" -@@ -186,30 +186,30 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) - if(slot_shoes in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if(slot_gloves in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if(slot_w_uniform in obscured) - dat += "" - else -- dat += "" -+ dat += "" - - if((w_uniform == null && !(dna && dna.species.nojumpsuit)) || (slot_w_uniform in obscured)) - dat += "" - dat += "" - dat += "" - else -- dat += "" -- dat += "" -- dat += "" -+ dat += "" -+ dat += "" - - if(handcuffed) - dat += "" diff --git a/code/modules/mob/living/carbon/monkey/combat.dm.rej b/code/modules/mob/living/carbon/monkey/combat.dm.rej deleted file mode 100644 index 6a03552601..0000000000 --- a/code/modules/mob/living/carbon/monkey/combat.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm (rejected hunks) -@@ -153,7 +153,7 @@ - if(!locate(/obj/item) in held_items) - best_force = 0 - -- if(restrained() || blacklistItems[pickupTarget] || (pickupTarget && (pickupTarget.flags & NODROP))) -+ if(restrained() || blacklistItems[pickupTarget] || (pickupTarget && (pickupTarget.flags_1 & NODROP_1))) - pickupTarget = null - - if(!resisting && pickupTarget) -@@ -274,7 +274,7 @@ - // check if target has a weapon - var/obj/item/W - for(var/obj/item/I in target.held_items) -- if(!(I.flags & ABSTRACT)) -+ if(!(I.flags_1 & ABSTRACT_1)) - W = I - break - diff --git a/code/modules/mob/living/living.dm.rej b/code/modules/mob/living/living.dm.rej deleted file mode 100644 index 770cac6905..0000000000 --- a/code/modules/mob/living/living.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm (rejected hunks) -@@ -793,7 +793,7 @@ - else - to_chat(src, "You don't have the dexterity to do this!") - return --/mob/living/proc/can_use_guns(var/obj/item/weapon/gun/G) -+/mob/living/proc/can_use_guns(var/obj/item/weapon/G) - if (G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser()) - to_chat(src, "You don't have the dexterity to do this!") - return 0 diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm.rej b/code/modules/mob/living/silicon/robot/robot_modules.dm.rej deleted file mode 100644 index ad89ae720b..0000000000 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm (rejected hunks) -@@ -121,7 +121,7 @@ - if(I.loc != src) - I.forceMove(src) - modules += I -- I.flags |= NODROP -+ I.flags_1 |= NODROP_1 - I.mouse_opacity = MOUSE_OPACITY_OPAQUE - if(nonstandard) - added_modules += I diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm.rej b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm.rej deleted file mode 100644 index 9204780124..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm (rejected hunks) -@@ -80,7 +80,7 @@ - /obj/item/restraints/legcuffs/beartrap/mega_arachnid - name = "fleshy restraints" - desc = "Used by mega arachnids to immobilize their prey." -- flags = DROPDEL -+ flags_1 = DROPDEL_1 - icon_state = "tentacle_end" - icon = 'icons/obj/projectiles.dmi' - diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm.rej b/code/modules/modular_computers/computers/machinery/modular_computer.dm.rej deleted file mode 100644 index 375995bf60..0000000000 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm (rejected hunks) -@@ -125,7 +125,7 @@ - update_icon() - - /obj/machinery/modular_computer/attackby(var/obj/item/W as obj, mob/user) -- if(cpu && !(flags & NODECONSTRUCT)) -+ if(cpu && !(flags_1 & NODECONSTRUCT_1)) - return cpu.attackby(W, user) - return ..() - diff --git a/code/modules/paperwork/contract.dm.rej b/code/modules/paperwork/contract.dm.rej deleted file mode 100644 index 2cfb1cdcb1..0000000000 --- a/code/modules/paperwork/contract.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm (rejected hunks) -@@ -5,7 +5,7 @@ - throw_speed = 3 - var/signed = FALSE - var/datum/mind/target -- flags = NOBLUDGEON -+ flags_1 = NOBLUDGEON_1 - - /obj/item/paper/contract/proc/update_text() - return diff --git a/code/modules/paperwork/paper_premade.dm.rej b/code/modules/paperwork/paper_premade.dm.rej deleted file mode 100644 index 2372bba734..0000000000 --- a/code/modules/paperwork/paper_premade.dm.rej +++ /dev/null @@ -1,23 +0,0 @@ -diff a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm (rejected hunks) -@@ -91,18 +91,18 @@ - info = "...EMPTY HALLS...USELESS SPACE..." - - --/////////// Centcom -+/////////// CentCom - - /obj/item/paper/fluff/stations/centcom/disk_memo - name = "memo" - info = "GET DAT FUKKEN DISK" - - /obj/item/paper/fluff/stations/centcom/broken_evac -- info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologize for the inconvenience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services" -+ info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologize for the inconvenience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
CentCom Operations Demolitions Examination Retribution Bugfixing Underlining Services" - - /obj/item/paper/fluff/stations/centcom/bulletin - name = "paper- 'Official Bulletin'" -- info = "
Centcom Security
Port Division
Official Bulletin

Inspector,
There is an emergency shuttle arriving today.

Approval is restricted to Nanotrasen employees only. Deny all other entrants.

Centcom Port Commissioner" -+ info = "
CentCom Security
Port Division
Official Bulletin

Inspector,
There is an emergency shuttle arriving today.

Approval is restricted to Nanotrasen employees only. Deny all other entrants.

CentCom Port Commissioner" - - - /////////// Lavaland diff --git a/code/modules/paperwork/pen.dm.rej b/code/modules/paperwork/pen.dm.rej deleted file mode 100644 index 0f04a96950..0000000000 --- a/code/modules/paperwork/pen.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm (rejected hunks) -@@ -168,7 +168,7 @@ - */ - /obj/item/pen/sleepy - origin_tech = "engineering=4;syndicate=2" -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - - - /obj/item/pen/sleepy/attack(mob/living/M, mob/user) diff --git a/code/modules/paperwork/photography.dm.rej b/code/modules/paperwork/photography.dm.rej deleted file mode 100644 index eb8210739b..0000000000 --- a/code/modules/paperwork/photography.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm (rejected hunks) -@@ -497,7 +497,7 @@ - desc = "The perfect showcase for your favorite deathtrap memories." - icon = 'icons/obj/decals.dmi' - materials = list() -- flags = 0 -+ flags_1 = 0 - icon_state = "frame-empty" - result_path = /obj/structure/sign/picture_frame - var/obj/item/photo/displayed diff --git a/code/modules/power/singularity/emitter.dm.rej b/code/modules/power/singularity/emitter.dm.rej deleted file mode 100644 index 12ee0046bd..0000000000 --- a/code/modules/power/singularity/emitter.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm (rejected hunks) -@@ -445,8 +445,8 @@ - name = "turret controls" - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE -- flags = ABSTRACT | NODROP -- resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON -+ flags_1 = ABSTRACT_1 | NODROP_1 -+ resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF | NOBLUDGEON_1 - var/delay = 0 - - /obj/item/turret_control/afterattack(atom/targeted_atom, mob/user) diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm.rej b/code/modules/power/singularity/particle_accelerator/particle_control.dm.rej deleted file mode 100644 index c8e42a734f..0000000000 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm (rejected hunks) -@@ -17,7 +17,7 @@ - var/active = 0 - var/strength = 0 - var/powered = 0 -- mouse_opacity = 2 -+ mouse_opacity = MOUSE_OPACITY_OPAQUE - - /obj/machinery/particle_accelerator/control_box/Initialize() - . = ..() diff --git a/code/modules/power/supermatter/supermatter.dm.rej b/code/modules/power/supermatter/supermatter.dm.rej deleted file mode 100644 index 7360ec9fbb..0000000000 --- a/code/modules/power/supermatter/supermatter.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm (rejected hunks) -@@ -524,7 +524,7 @@ - R.receive_pulse(power * (1 + power_transmission_bonus)/10 * freon_transmit_modifier) - - /obj/machinery/power/supermatter_shard/attackby(obj/item/W, mob/living/user, params) -- if(!istype(W) || (W.flags & ABSTRACT) || !istype(user)) -+ if(!istype(W) || (W.flags_1 & ABSTRACT_1) || !istype(user)) - return - if(istype(W, /obj/item/scalpel/supermatter)) - playsound(src, W.usesound, 100, 1) diff --git a/code/modules/projectiles/guns/beam_rifle.dm.rej b/code/modules/projectiles/guns/beam_rifle.dm.rej deleted file mode 100644 index ecc9695fda..0000000000 --- a/code/modules/projectiles/guns/beam_rifle.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/projectiles/guns/beam_rifle.dm b/code/modules/projectiles/guns/beam_rifle.dm (rejected hunks) -@@ -715,7 +715,7 @@ - light_range = 2 - light_color = "#00ffff" - mouse_opacity = MOUSE_OPACITY_TRANSPARENT -- flags = ABSTRACT -+ flags_1 = ABSTRACT_1 - appearance_flags = 0 - - /obj/effect/projectile_beam/proc/scale_to(nx,ny,override=TRUE) diff --git a/code/modules/projectiles/guns/energy/pulse.dm.rej b/code/modules/projectiles/guns/energy/pulse.dm.rej deleted file mode 100644 index 1466e76076..0000000000 --- a/code/modules/projectiles/guns/energy/pulse.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm (rejected hunks) -@@ -6,7 +6,7 @@ - w_class = WEIGHT_CLASS_BULKY - force = 10 - modifystate = TRUE -- flags = CONDUCT -+ flags_1 = CONDUCT_1 - slot_flags = SLOT_BACK - ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) - cell_type = "/obj/item/stock_parts/cell/pulse" diff --git a/code/modules/projectiles/projectile.dm.rej b/code/modules/projectiles/projectile.dm.rej deleted file mode 100644 index 9c9e12e95a..0000000000 --- a/code/modules/projectiles/projectile.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm (rejected hunks) -@@ -4,7 +4,7 @@ - icon_state = "bullet" - density = FALSE - anchored = TRUE -- flags = ABSTRACT -+ flags_1 = ABSTRACT_1 - pass_flags = PASSTABLE - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - hitsound = 'sound/weapons/pierce.ogg' diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm.rej b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm.rej deleted file mode 100644 index 8803fd1086..0000000000 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm (rejected hunks) -@@ -178,7 +178,7 @@ - if(default_unfasten_wrench(user, I)) - return - -- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER)) -+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1)) - var/obj/item/reagent_containers/B = I - . = 1 //no afterattack - if(beaker) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm.rej b/code/modules/reagents/chemistry/machinery/chem_heater.dm.rej deleted file mode 100644 index d60e535a87..0000000000 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm (rejected hunks) -@@ -42,7 +42,7 @@ - if(default_deconstruction_crowbar(I)) - return - -- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER)) -+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1)) - . = 1 //no afterattack - if(beaker) - to_chat(user, "A beaker is already loaded into the machine!") diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm.rej b/code/modules/reagents/chemistry/machinery/chem_master.dm.rej deleted file mode 100644 index cd3de881dc..0000000000 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm (rejected hunks) -@@ -79,7 +79,7 @@ - if(default_unfasten_wrench(user, I)) - return - -- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER)) -+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1)) - . = 1 // no afterattack - if(panel_open) - to_chat(user, "You can't use the [src.name] while its panel is opened!") diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm.rej b/code/modules/reagents/chemistry/machinery/pandemic.dm.rej deleted file mode 100644 index 4aa7a64767..0000000000 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm (rejected hunks) -@@ -177,7 +177,7 @@ - . = TRUE - - /obj/machinery/computer/pandemic/attackby(obj/item/I, mob/user, params) -- if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER)) -+ if(istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1)) - . = TRUE //no afterattack - if(stat & (NOPOWER|BROKEN)) - return diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm.rej b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm.rej deleted file mode 100644 index 41ecfa55e8..0000000000 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm (rejected hunks) -@@ -116,7 +116,7 @@ - if(default_unfasten_wrench(user, I)) - return - -- if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER) ) -+ if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER_1) ) - if (!beaker) - if(!user.drop_item()) - return 1 diff --git a/code/modules/reagents/reagent_containers/dropper.dm.rej b/code/modules/reagents/reagent_containers/dropper.dm.rej deleted file mode 100644 index 672eff145d..0000000000 --- a/code/modules/reagents/reagent_containers/dropper.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm (rejected hunks) -@@ -6,7 +6,7 @@ - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list(1, 2, 3, 4, 5) - volume = 5 -- container_type = TRANSPARENT -+ container_type = TRANSPARENT_1 - - /obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity) - if(!proximity) return diff --git a/code/modules/reagents/reagent_containers/glass.dm.rej b/code/modules/reagents/reagent_containers/glass.dm.rej deleted file mode 100644 index fe8fd55da1..0000000000 --- a/code/modules/reagents/reagent_containers/glass.dm.rej +++ /dev/null @@ -1,28 +0,0 @@ -diff a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm (rejected hunks) -@@ -169,7 +169,7 @@ - volume = 100 - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100) -- flags = OPENCONTAINER -+ flags_1 = OPENCONTAINER_1 - - /obj/item/reagent_containers/glass/beaker/noreact - name = "cryostasis beaker" -@@ -180,7 +180,7 @@ - volume = 50 - amount_per_transfer_from_this = 10 - origin_tech = "materials=2;engineering=3;plasmatech=3" -- flags = OPENCONTAINER -+ flags_1 = OPENCONTAINER_1 - - /obj/item/reagent_containers/glass/beaker/noreact/Initialize() - . = ..() -@@ -196,7 +196,7 @@ - volume = 300 - amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) -- flags = OPENCONTAINER -+ flags_1 = OPENCONTAINER_1 - origin_tech = "bluespace=5;materials=4;plasmatech=4" - - /obj/item/reagent_containers/glass/beaker/cryoxadone diff --git a/code/modules/reagents/reagent_containers/hypospray.dm.rej b/code/modules/reagents/reagent_containers/hypospray.dm.rej deleted file mode 100644 index 03d17d2639..0000000000 --- a/code/modules/reagents/reagent_containers/hypospray.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm (rejected hunks) -@@ -77,8 +77,8 @@ - amount_per_transfer_from_this = 10 - volume = 10 - ignore_flags = 1 //so you can medipen through hardsuits -- container_type = DRAWABLE -- flags = null -+ container_type = DRAWABLE_1 -+ flags_1 = null - list_reagents = list("epinephrine" = 10) - - /obj/item/reagent_containers/hypospray/medipen/attack(mob/M, mob/user) diff --git a/code/modules/reagents/reagent_containers/syringes.dm.rej b/code/modules/reagents/reagent_containers/syringes.dm.rej deleted file mode 100644 index d184bef7fb..0000000000 --- a/code/modules/reagents/reagent_containers/syringes.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm (rejected hunks) -@@ -16,7 +16,7 @@ - var/busy = FALSE // needed for delayed drawing of blood - var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun - materials = list(MAT_METAL=10, MAT_GLASS=20) -- container_type = TRANSPARENT -+ container_type = TRANSPARENT_1 - - /obj/item/reagent_containers/syringe/Initialize() - . = ..() diff --git a/code/modules/research/circuitprinter.dm.rej b/code/modules/research/circuitprinter.dm.rej deleted file mode 100644 index 6bd06f6d69..0000000000 --- a/code/modules/research/circuitprinter.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm (rejected hunks) -@@ -8,7 +8,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). - name = "circuit imprinter" - desc = "Manufactures circuit boards for the construction of machines." - icon_state = "circuit_imprinter" -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - circuit = /obj/item/circuitboard/machine/circuit_imprinter - - var/datum/material_container/materials diff --git a/code/modules/research/protolathe.dm.rej b/code/modules/research/protolathe.dm.rej deleted file mode 100644 index fa39256713..0000000000 --- a/code/modules/research/protolathe.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm (rejected hunks) -@@ -11,7 +11,7 @@ Note: Must be placed west/left of and R&D console to function. - name = "protolathe" - desc = "Converts raw materials into useful objects." - icon_state = "protolathe" -- container_type = OPENCONTAINER -+ container_type = OPENCONTAINER_1 - circuit = /obj/item/circuitboard/machine/protolathe - - var/datum/material_container/materials diff --git a/code/modules/spells/spell_types/godhand.dm.rej b/code/modules/spells/spell_types/godhand.dm.rej deleted file mode 100644 index e7d133c6ab..0000000000 --- a/code/modules/spells/spell_types/godhand.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm (rejected hunks) -@@ -7,7 +7,7 @@ - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "syndballoon" - item_state = null -- flags = ABSTRACT | NODROP | DROPDEL -+ flags_1 = ABSTRACT_1 | NODROP_1 | DROPDEL_1 - w_class = WEIGHT_CLASS_HUGE - force = 0 - throwforce = 0 diff --git a/code/world.dm.rej b/code/world.dm.rej deleted file mode 100644 index e82c17e503..0000000000 --- a/code/world.dm.rej +++ /dev/null @@ -1,301 +0,0 @@ -diff a/code/world.dm b/code/world.dm (rejected hunks) -@@ -10,299 +13,3 @@ - #ifdef GC_FAILURE_HARD_LOOKUP - loop_checks = FALSE - #endif -- --/world/New() -- log_world("World loaded at [time_stamp()]") -- -- SetupExternalRSC() -- -- GLOB.config_error_log = GLOB.world_href_log = GLOB.world_runtime_log = GLOB.world_attack_log = GLOB.world_game_log = file("data/logs/config_error.log") //temporary file used to record errors with loading config, moved to log directory once logging is set bl -- -- make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) -- -- config = new -- -- CheckSchemaVersion() -- SetRoundID() -- -- SetupLogs() -- -- if(!RunningService()) //tgs2 support -- GLOB.revdata.DownloadPRDetails() -- -- load_motd() -- load_admins() -- LoadVerbs(/datum/verbs/menu) -- if(config.usewhitelist) -- load_whitelist() -- LoadBans() -- -- GLOB.timezoneOffset = text2num(time2text(0,"hh")) * 36000 -- -- Master.Initialize(10, FALSE) -- -- if(config.irc_announce_new_game) -- IRCBroadcast("New round starting on [SSmapping.config.map_name]!") -- --/world/proc/SetupExternalRSC() --#if (PRELOAD_RSC == 0) -- external_rsc_urls = world.file2list("config/external_rsc_urls.txt","\n") -- var/i=1 -- while(i<=external_rsc_urls.len) -- if(external_rsc_urls[i]) -- i++ -- else -- external_rsc_urls.Cut(i,i+1) --#endif -- --/world/proc/CheckSchemaVersion() -- if(config.sql_enabled) -- if(SSdbcore.Connect()) -- log_world("Database connection established.") -- var/datum/DBQuery/query_db_version = SSdbcore.NewQuery("SELECT major, minor FROM [format_table_name("schema_revision")] ORDER BY date DESC LIMIT 1") -- query_db_version.Execute() -- if(query_db_version.NextRow()) -- var/db_major = text2num(query_db_version.item[1]) -- var/db_minor = text2num(query_db_version.item[2]) -- if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) -- message_admins("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") -- log_sql("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") -- else -- message_admins("Could not get schema version from database") -- else -- log_world("Your server failed to establish a connection with the database.") -- --/world/proc/SetRoundID() -- if(config.sql_enabled) -- if(SSdbcore.Connect()) -- 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() -- if(query_round_last_id.NextRow()) -- GLOB.round_id = query_round_last_id.item[1] -- --/world/proc/SetupLogs() -- GLOB.log_directory = "data/logs/[time2text(world.realtime, "YYYY/MM/DD")]/round-" -- if(GLOB.round_id) -- GLOB.log_directory += "[GLOB.round_id]" -- else -- GLOB.log_directory += "[replacetext(time_stamp(), ":", ".")]" -- GLOB.world_game_log = file("[GLOB.log_directory]/game.log") -- GLOB.world_attack_log = file("[GLOB.log_directory]/attack.log") -- GLOB.world_runtime_log = file("[GLOB.log_directory]/runtime.log") -- GLOB.world_href_log = file("[GLOB.log_directory]/hrefs.html") -- GLOB.world_game_log << "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------" -- GLOB.world_attack_log << "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------" -- GLOB.world_runtime_log << "\n\nStarting up round ID [GLOB.round_id]. [time_stamp()]\n---------------------" -- GLOB.changelog_hash = md5('html/changelog.html') //used for telling if the changelog has changed recently -- if(fexists(GLOB.config_error_log)) -- fcopy(GLOB.config_error_log, "[GLOB.log_directory]/config_error.log") -- fdel(GLOB.config_error_log) -- -- if(GLOB.round_id) -- log_game("Round ID: [GLOB.round_id]") -- --/world/Topic(T, addr, master, key) -- var/list/input = params2list(T) -- -- var/pinging = ("ping" in input) -- var/playing = ("players" in input) -- -- if(!pinging && !playing && config && config.log_world_topic) -- GLOB.world_game_log << "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]" -- -- if(input[SERVICE_CMD_PARAM_KEY]) -- return ServiceCommand(input) -- var/key_valid = (global.comms_allowed && input["key"] == global.comms_key) -- -- if(pinging) -- var/x = 1 -- for (var/client/C in GLOB.clients) -- x++ -- return x -- -- else if(playing) -- var/n = 0 -- for(var/mob/M in GLOB.player_list) -- if(M.client) -- n++ -- return n -- -- else if("ircstatus" in input) //tgs2 support -- var/static/last_irc_status = 0 -- if(world.time - last_irc_status < 50) -- return -- var/list/adm = get_admin_counts() -- var/list/allmins = adm["total"] -- 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.name]." -- send2irc("Status", status) -- last_irc_status = world.time -- -- else if("status" in input) -- var/list/s = list() -- s["version"] = GLOB.game_version -- s["mode"] = GLOB.master_mode -- s["respawn"] = config ? GLOB.abandon_allowed : 0 -- s["enter"] = GLOB.enter_allowed -- s["vote"] = config.allow_vote_mode -- s["ai"] = config.allow_ai -- s["host"] = host ? host : null -- s["active_players"] = get_active_player_count() -- s["players"] = GLOB.clients.len -- s["revision"] = GLOB.revdata.commit -- s["revision_date"] = GLOB.revdata.date -- -- var/list/adm = get_admin_counts() -- var/list/presentmins = adm["present"] -- var/list/afkmins = adm["afk"] -- s["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho -- s["gamestate"] = SSticker.current_state -- -- s["map_name"] = SSmapping.config.map_name -- -- if(key_valid && SSticker.HasRoundStarted()) -- s["real_mode"] = SSticker.mode.name -- // Key-authed callers may know the truth behind the "secret" -- -- s["security_level"] = get_security_level() -- s["round_duration"] = SSticker ? round((world.time-SSticker.round_start_time)/10) : 0 -- // Amount of world's ticks in seconds, useful for calculating round duration -- -- if(SSshuttle && SSshuttle.emergency) -- s["shuttle_mode"] = SSshuttle.emergency.mode -- // Shuttle status, see /__DEFINES/stat.dm -- s["shuttle_timer"] = SSshuttle.emergency.timeLeft() -- // Shuttle timer, in seconds -- -- return list2params(s) -- -- else if("announce" in input) -- if(!key_valid) -- return "Bad Key" -- else -- AnnouncePR(input["announce"], json_decode(input["payload"])) -- -- else if("crossmessage" in input) -- if(!key_valid) -- return -- else -- if(input["crossmessage"] == "Ahelp") -- relay_msg_admins("HELP: [input["source"]] [input["message_sender"]]: [input["message"]]") -- if(input["crossmessage"] == "Comms_Console") -- minor_announce(input["message"], "Incoming message from [input["message_sender"]]") -- for(var/obj/machinery/computer/communications/CM in GLOB.machines) -- CM.overrideCooldown() -- if(input["crossmessage"] == "News_Report") -- minor_announce(input["message"], "Breaking Update From [input["message_sender"]]") -- -- else if("adminmsg" in input) //tgs2 support -- if(!key_valid) -- return "Bad Key" -- else -- return IrcPm(input["adminmsg"],input["msg"],input["sender"]) -- -- else if("namecheck" in input) //tgs2 support -- if(!key_valid) -- return "Bad Key" -- else -- log_admin("IRC Name Check: [input["sender"]] on [input["namecheck"]]") -- message_admins("IRC name checking on [input["namecheck"]] from [input["sender"]]") -- return keywords_lookup(input["namecheck"],1) -- else if("adminwho" in input) //tgs2 support -- if(!key_valid) -- return "Bad Key" -- else -- return ircadminwho() -- else if("server_hop" in input) -- show_server_hop_transfer_screen(input["server_hop"]) -- --#define PR_ANNOUNCEMENTS_PER_ROUND 5 //The number of unique PR announcements allowed per round -- //This makes sure that a single person can only spam 3 reopens and 3 closes before being ignored -- --/world/proc/AnnouncePR(announcement, list/payload) -- var/static/list/PRcounts = list() //PR id -> number of times announced this round -- var/id = "[payload["pull_request"]["id"]]" -- if(!PRcounts[id]) -- PRcounts[id] = 1 -- else -- ++PRcounts[id] -- if(PRcounts[id] > PR_ANNOUNCEMENTS_PER_ROUND) -- return -- -- var/final_composed = "PR: [announcement]" -- for(var/client/C in GLOB.clients) -- C.AnnouncePR(final_composed) -- --/world/Reboot(reason = 0, fast_track = FALSE) -- ServiceReboot() //handles alternative actions if necessary -- if (reason || fast_track) //special reboot, do none of the normal stuff -- if (usr) -- log_admin("[key_name(usr)] Has requested an immediate world restart via client side debugging tools") -- message_admins("[key_name_admin(usr)] Has requested an immediate world restart via client side debugging tools") -- to_chat(world, "Rebooting World immediately due to host request") -- else -- to_chat(world, "Rebooting world...") -- Master.Shutdown() //run SS shutdowns -- log_world("World rebooted at [time_stamp()]") -- ..() -- --/world/proc/load_motd() -- GLOB.join_motd = file2text("config/motd.txt") + "
" + GLOB.revdata.GetTestMergeInfo() -- --/world/proc/update_status() -- var/s = "" -- -- if (config && config.server_name) -- s += "[config.server_name] — " -- -- s += "[station_name()]"; -- s += " (" -- s += "" //Change this to wherever you want the hub to link to. -- s += "Default" //Replace this with something else. Or ever better, delete it and uncomment the game version. -- s += "" -- s += ")" -- -- var/list/features = list() -- -- if(GLOB.master_mode) -- features += GLOB.master_mode -- -- if (!GLOB.enter_allowed) -- features += "closed" -- -- features += GLOB.abandon_allowed ? "respawn" : "no respawn" -- -- if (config && config.allow_vote_mode) -- features += "vote" -- -- if (config && config.allow_ai) -- features += "AI allowed" -- -- var/n = 0 -- for (var/mob/M in GLOB.player_list) -- if (M.client) -- n++ -- -- if (n > 1) -- features += "~[n] players" -- else if (n > 0) -- features += "~[n] player" -- -- if (!host && config && config.hostedby) -- features += "hosted by [config.hostedby]" -- -- if (features) -- s += ": [jointext(features, ", ")]" -- -- status = s -- --/world/proc/update_hub_visibility(new_visibility) -- if(new_visibility == GLOB.hub_visibility) -- return -- GLOB.hub_visibility = new_visibility -- if(GLOB.hub_visibility) -- hub_password = "kMZy3U5jJHSiBQjr" -- else -- hub_password = "SORRYNOPASSWORD" diff --git a/html/changelogs/AutoChangeLog-pr-1986.yml b/html/changelogs/AutoChangeLog-pr-1986.yml deleted file mode 100644 index ad49c4159c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-1986.yml +++ /dev/null @@ -1,14 +0,0 @@ -author: "XDTM" -delete-after: True -changes: - - experiment: "Viruses and symptoms have been havily reworked." - - rscadd: "Symptoms now have statistic thresholds, that give them new properties or improve their existing ones if the overall virus statistic is above the threshold. Check the pull request in github or the wiki (soon) for the full list." - - rscdel: "Some symptoms no longer scale linearly with stats, and instead have thresholds." - - tweak: "The symptom limit is now 6." - - rscdel: "Viruses can no longer be made invisible to the Pandemic" - - tweak: "Symptoms no longer trigger with a 5% chance every second, but instead have a minimum and maximum number of seconds between each activation, making them more consistent." - - rscdel: "The symptoms Blood Vomit and Projectile Vomit have been removed, and are now bonuses for the base Vomit symptom." - - rscdel: "The Weakness symptom has been removed as it was completely useless." - - tweak: "The Sensory Destruction symptom has been reworked into Narcolepsy, which causes drowsiness and sleep." - - tweak: "Viral Aggressive Metabolism now has a timer before it starts decaying the virus. It scales with the highest between Resistance or Stage Speed." - - rscadd: "You can now neuter symptoms, making them inactive. They will still affect stats. Adding formaldehyde to a virus will neuter a random symptom. A bottle of formaldehyde starts in the virus fridge." diff --git a/html/changelogs/AutoChangeLog-pr-1999.yml b/html/changelogs/AutoChangeLog-pr-1999.yml deleted file mode 100644 index b2d382d973..0000000000 --- a/html/changelogs/AutoChangeLog-pr-1999.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Re-added cortical borers and syndi-borers, though NOT the cortical borer random event." - - bugfix: "Fixed traitors being able to spam the syndi-borer summon, which annoyed ghosts." - - imageadd: "Added borer icons to their own dmi instead of sharing the animal mob one." diff --git a/html/changelogs/AutoChangeLog-pr-2000.yml b/html/changelogs/AutoChangeLog-pr-2000.yml deleted file mode 100644 index b9b6702370..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2000.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - bugfix: "Fixes IV drips not properly injecting the right amount of blood" diff --git a/html/changelogs/AutoChangeLog-pr-2005.yml b/html/changelogs/AutoChangeLog-pr-2005.yml deleted file mode 100644 index 94226dda9d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2005.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Tacolizard and Cyberboss" -delete-after: True -changes: - - rscadd: "Added two new organs, the liver and stomach. Without them, you won't metabolize chemicals." - - rscadd: "The liver is responsible for processing all chemicals except nutrients. If your liver is removed, you will be unable to metabolize any drugs and will slowly die of toxin damage." - - rscadd: "Drinking too much alcohol or having too many toxins in you will damage your liver, if it becomes too damaged, it will undergo liver failure and you will slowly die of toxin damage. Your liver naturally heals a small amount of its damage. However, it doesn't heal enough to offset stronger alcohols or large amounts of toxins, at least until they are metabolized out of your body." - - rscadd: "to conduct a liver transplant, inject corazone into the patient. Corazone will prevent the patient from taking damage due to either not having a liver or undergoing liver failure. Corazone will metabolize out of the patient quickly, so at least 50u is recommended." - - rscadd: "The stomach is responsible for metabolizing nutrients. Without a stomach, you will be unable to get fat, but you will also be unable to process any nutrients, meaning you will eventually starve to death." diff --git a/html/changelogs/AutoChangeLog-pr-2008.yml b/html/changelogs/AutoChangeLog-pr-2008.yml deleted file mode 100644 index 3a32554dac..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2008.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Raeschen" -delete-after: True -changes: - - tweak: "Changed the avian say prefix of \"says\" to \"chirps\"" diff --git a/html/changelogs/AutoChangeLog-pr-2010.yml b/html/changelogs/AutoChangeLog-pr-2010.yml deleted file mode 100644 index 811519bc50..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2010.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "NewSta" -delete-after: True -changes: - - bugfix: "Fixes the maid apron being invisible when in-hand or attached to the maid outfit." diff --git a/html/changelogs/AutoChangeLog-pr-2015.yml b/html/changelogs/AutoChangeLog-pr-2015.yml deleted file mode 100644 index f91f0d144a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2015.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Icons" -delete-after: True -changes: - - rscadd: "new hunter hat" - - imageadd: "changed PDA sprites" diff --git a/html/changelogs/AutoChangeLog-pr-2019.yml b/html/changelogs/AutoChangeLog-pr-2019.yml deleted file mode 100644 index e9c0ee56ff..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2019.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Time stop is now fixed, finally!" - - soundadd: "Time stop's sound now plays in reverse when the effect ends." diff --git a/html/changelogs/AutoChangeLog-pr-2020.yml b/html/changelogs/AutoChangeLog-pr-2020.yml deleted file mode 100644 index 9615854516..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2020.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - rscdel: "Removed the Soul Vessel, Cogscarab, and Anima Fragment Scriptures." diff --git a/html/changelogs/AutoChangeLog-pr-2021.yml b/html/changelogs/AutoChangeLog-pr-2021.yml deleted file mode 100644 index 346e10f872..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2021.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - rscdel: "blood and gibs on turfs can no longer infect nearby people" - - tweak: "Tuberculosis bypasses species virus immunity (it's not a virus!)" - - tweak: "Disease and appendicitis events no longer infect clientless mobs" - - tweak: "Disease event will no longer pick virus immune mobs" - - tweak: "Appendicitis event will no longer pick mobs without an appendix" - - bugfix: "Fixed changeling panacea curing non-harmful viruses" diff --git a/html/changelogs/AutoChangeLog-pr-2027.yml b/html/changelogs/AutoChangeLog-pr-2027.yml deleted file mode 100644 index 0a54d8afb5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2027.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Enabled random borer event, increased minimum timer before borer event can happen, decreased possibility of borer event, down to default value, increased minimum living, non-AFK players required for event to happen." diff --git a/html/changelogs/AutoChangeLog-pr-2028.yml b/html/changelogs/AutoChangeLog-pr-2028.yml deleted file mode 100644 index 034de7f77f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2028.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "deathride58" -delete-after: True -changes: - - tweak: "The arousal meter is now invisible when arousal is disabled" diff --git a/html/changelogs/AutoChangeLog-pr-2031.yml b/html/changelogs/AutoChangeLog-pr-2031.yml deleted file mode 100644 index 6d46ce6102..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2031.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Missiles can no longer ricochet off of shuttle walls, etc." diff --git a/html/changelogs/AutoChangeLog-pr-2040.yml b/html/changelogs/AutoChangeLog-pr-2040.yml deleted file mode 100644 index 79dbec26db..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2040.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ninjanomnom" -delete-after: True -changes: - - experiment: "Thank you for updating your ShuttlSoft product! Your last update was -ERROR- years ago. A full changelog can be found at CYG10408.SHSO.b9 along with the EULA. This update lays a foundation for new things to come and a sample in the form of new and improved docking procedures." diff --git a/html/changelogs/AutoChangeLog-pr-2043.yml b/html/changelogs/AutoChangeLog-pr-2043.yml deleted file mode 100644 index 5103382514..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2043.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Winter coats now hold all flashlights properly, instead of seclites." diff --git a/html/changelogs/AutoChangeLog-pr-2047.yml b/html/changelogs/AutoChangeLog-pr-2047.yml deleted file mode 100644 index 0a819f5319..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2047.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - bugfix: "The Ark of the Clockwork Justicar will still forcibly take up a 3x3 area even if it still needs components to activate." diff --git a/html/changelogs/AutoChangeLog-pr-2051.yml b/html/changelogs/AutoChangeLog-pr-2051.yml deleted file mode 100644 index 65347e20a9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2051.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Borers can now inject aphrodisiac and anaphrodisiac." - - tweak: "Borer chemicals now sends flavour text to host when injected into them." diff --git a/html/changelogs/AutoChangeLog-pr-2052.yml b/html/changelogs/AutoChangeLog-pr-2052.yml deleted file mode 100644 index 802b5aca94..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2052.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterJay" -delete-after: True -changes: - - imagedel: "Removes the 'yiff in hell' graffiti tag" diff --git a/html/changelogs/AutoChangeLog-pr-2054.yml b/html/changelogs/AutoChangeLog-pr-2054.yml deleted file mode 100644 index 79c1892cf6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2054.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Dannno/Supermichael777/InsaneHyena" -delete-after: True -changes: - - rscadd: "You can now pick from a few different styles when augmenting someone with robot parts by putting them in the augment manipulator. Alt+click to take parts out." diff --git a/html/changelogs/AutoChangeLog-pr-2057.yml b/html/changelogs/AutoChangeLog-pr-2057.yml deleted file mode 100644 index 357a302f84..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2057.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - bugfix: "Fixed the refresher variant of the anomalous crystal making holodeck items real" diff --git a/html/changelogs/AutoChangeLog-pr-2065.yml b/html/changelogs/AutoChangeLog-pr-2065.yml deleted file mode 100644 index 0e2c4e9e65..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2065.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - tweak: "breathing plasma now causes direct tox damage" - - tweak: "breathing hot/cold air now warns you when you're doing so, again" - - tweak: "species heat/cold mod now impacts damage from breathing hot/cold gases" diff --git a/html/changelogs/AutoChangeLog-pr-2068.yml b/html/changelogs/AutoChangeLog-pr-2068.yml deleted file mode 100644 index 7f2b8243e7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2068.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Cyborgs now regenerate oxygen damage." - - bugfix: "If a cyborg somehow takes toxin damage, it can be healed with cables as though it was burn damage." diff --git a/html/changelogs/AutoChangeLog-pr-2069.yml b/html/changelogs/AutoChangeLog-pr-2069.yml deleted file mode 100644 index 124ecc2a87..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2069.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - spellcheck: "Picking up ores by walking over them now longer spams messages, instead showing one message per tile of ore picked up." diff --git a/html/changelogs/AutoChangeLog-pr-2073.yml b/html/changelogs/AutoChangeLog-pr-2073.yml deleted file mode 100644 index 11f89f7421..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2073.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis & MoreRobustThanYou" -delete-after: True -changes: - - imageadd: "Toolbelts now have overlays for crowbars, wirecutters, screwdrivers, multitools, and wrenches." diff --git a/html/changelogs/AutoChangeLog-pr-2075.yml b/html/changelogs/AutoChangeLog-pr-2075.yml deleted file mode 100644 index 9ab87e9f66..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2075.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Hijacking should now be possible again!" diff --git a/html/changelogs/AutoChangeLog-pr-2083.yml b/html/changelogs/AutoChangeLog-pr-2083.yml deleted file mode 100644 index 76f5b83aef..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2083.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - bugfix: "delayed chloral hydrate actually works now." diff --git a/html/changelogs/AutoChangeLog-pr-2085.yml b/html/changelogs/AutoChangeLog-pr-2085.yml deleted file mode 100644 index 5ff1020c4c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2085.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Re-enabled the custom emote for slimes." diff --git a/html/changelogs/AutoChangeLog-pr-2086.yml b/html/changelogs/AutoChangeLog-pr-2086.yml deleted file mode 100644 index 6511bed053..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2086.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "The blood-drunk miner will fire its KA a bit more often." diff --git a/html/changelogs/AutoChangeLog-pr-2088.yml b/html/changelogs/AutoChangeLog-pr-2088.yml deleted file mode 100644 index bc5d102b8c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2088.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "HAL 9000" -delete-after: True -changes: - - bugfix: "I'm sorry Dave, I'm afraid I can't do that" diff --git a/html/changelogs/AutoChangeLog-pr-2090.yml b/html/changelogs/AutoChangeLog-pr-2090.yml deleted file mode 100644 index be21f5c4d0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2090.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Jay" -delete-after: True -changes: - - imageadd: "New PDA icons" - - bugfix: "fixes missing icons for PDAs" diff --git a/html/changelogs/AutoChangeLog-pr-2091.yml b/html/changelogs/AutoChangeLog-pr-2091.yml deleted file mode 100644 index b2078a5377..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2091.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Reviving Stasis now consistently regenerates organs." diff --git a/html/changelogs/AutoChangeLog-pr-2093.yml b/html/changelogs/AutoChangeLog-pr-2093.yml deleted file mode 100644 index d7b4af9427..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2093.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Mining satchels no longer hold infinite amounts of ore." diff --git a/html/changelogs/AutoChangeLog-pr-2094.yml b/html/changelogs/AutoChangeLog-pr-2094.yml deleted file mode 100644 index e74ec9d15f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2094.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BeeSting12" -delete-after: True -changes: - - rscdel: "Water bottles from the sustenance vendor are gone. Wait for the ice in the ice cups melt, criminal scum." - - rscdel: "There is no longer a sink in gulag. Hygiene is for the moral members of society." diff --git a/html/changelogs/AutoChangeLog-pr-2098.yml b/html/changelogs/AutoChangeLog-pr-2098.yml deleted file mode 100644 index a1c9c0326c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2098.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "JStheguy" -delete-after: True -changes: - - imageadd: "Resprited the tablet, including completely redone screen sprites." - - rscadd: "Tablets can now come spawn in one of 5 colors; red, green, yellow, blue, and black." diff --git a/html/changelogs/AutoChangeLog-pr-2099.yml b/html/changelogs/AutoChangeLog-pr-2099.yml deleted file mode 100644 index d44b06e41d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2099.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Medibots now properly render the overlays of the medkits they are made from." diff --git a/html/changelogs/AutoChangeLog-pr-2101.yml b/html/changelogs/AutoChangeLog-pr-2101.yml deleted file mode 100644 index 8be6bd4e31..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2101.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "The Hierophant will now release a burst when melee attacking instead of actually hitting its target." - - bugfix: "The Hierophant Club's blasts will now properly aggro hostile mobs." diff --git a/html/changelogs/AutoChangeLog-pr-2106.yml b/html/changelogs/AutoChangeLog-pr-2106.yml deleted file mode 100644 index 27356cd378..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2106.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Increased minimum timer for xenomorph event from 20 to 40min. Also increased minimum living, non-afk players required from 10 to 20." diff --git a/html/changelogs/AutoChangeLog-pr-2110.yml b/html/changelogs/AutoChangeLog-pr-2110.yml deleted file mode 100644 index 14534a7ed6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2110.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "The latest batch of Syndicate screwdrivers fell into a vat of paint and were colored randomly. We have rinsed them off and they will no longer come in random colors." diff --git a/html/changelogs/AutoChangeLog-pr-2111.yml b/html/changelogs/AutoChangeLog-pr-2111.yml deleted file mode 100644 index e8fd2920c7..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2111.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - rscadd: "Pizza box stacks can now fall over" - - imageadd: "Pizza box inhands now stacks depending on how many you're holding." diff --git a/html/changelogs/AutoChangeLog-pr-2115.yml b/html/changelogs/AutoChangeLog-pr-2115.yml deleted file mode 100644 index b43817a7cf..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2115.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Supermatter slivers can now be stolen properly." diff --git a/html/changelogs/AutoChangeLog-pr-2119.yml b/html/changelogs/AutoChangeLog-pr-2119.yml deleted file mode 100644 index 6a412027d6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2119.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - tweak: "You can now control-click action buttons to lock them and prevent them from being moved. Alt-clicking the \"Show/Hide Actions\" button will unlock all buttons." - - tweak: "There is now a preference for if buttons should be locked by default or not." diff --git a/html/changelogs/AutoChangeLog-pr-2120.yml b/html/changelogs/AutoChangeLog-pr-2120.yml deleted file mode 100644 index 197c992c6f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2120.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "bandit" -delete-after: True -changes: - - rscadd: "New Cards against Spess cards are available!" diff --git a/html/changelogs/AutoChangeLog-pr-2130.yml b/html/changelogs/AutoChangeLog-pr-2130.yml deleted file mode 100644 index c464b9214b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2130.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Y0SH1_M4S73R" -delete-after: True -changes: - - bugfix: "Romerol zombies count as dead for assassinate and maroon objectives." diff --git a/html/changelogs/AutoChangeLog-pr-2131.yml b/html/changelogs/AutoChangeLog-pr-2131.yml deleted file mode 100644 index b9076f4a4a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2131.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - tweak: "Whenever you're trying to hack off your own limbs, you'll now always hit those limbs." diff --git a/html/changelogs/AutoChangeLog-pr-2132.yml b/html/changelogs/AutoChangeLog-pr-2132.yml deleted file mode 100644 index d788f4bee1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2132.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "PopNotes" -delete-after: True -changes: - - soundadd: "Nar-Sie now sounds like an eldritch abomination that obliterates worlds instead of a sweet maiden that gently whispers sweet nothings in your ear." diff --git a/html/changelogs/AutoChangeLog-pr-2133.yml b/html/changelogs/AutoChangeLog-pr-2133.yml deleted file mode 100644 index a3df9c0374..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2133.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "The Subtle emote now properly cancels empty or cancelled emotes." diff --git a/html/changelogs/AutoChangeLog-pr-2134.yml b/html/changelogs/AutoChangeLog-pr-2134.yml deleted file mode 100644 index f16e873b5a..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2134.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Rejoice deviants all over, as semen and other such... fluids now have a taste beyond \"Generic Food\"!" diff --git a/html/changelogs/AutoChangeLog-pr-2135.yml b/html/changelogs/AutoChangeLog-pr-2135.yml deleted file mode 100644 index 59b11f3982..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2135.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Tacolizard" -delete-after: True -changes: - - rscadd: "Added cybernetic organs to RnD, they can be used to replace organic organs. Remember to administer corazone during implantation though!" - - rscadd: "Added the upgraded cybernetic liver. It is exceptionally robust against toxins and alcohol poisoning." diff --git a/html/changelogs/AutoChangeLog-pr-2139.yml b/html/changelogs/AutoChangeLog-pr-2139.yml deleted file mode 100644 index d3136b9b6f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2139.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Raeschen" -delete-after: True -changes: - - rscadd: "Added goodbyemoonmen.ogg to /strings/round_start_sounds.txt" - - soundadd: "Added sound/music/goodbyemoonmen.ogg" diff --git a/html/changelogs/AutoChangeLog-pr-2140.yml b/html/changelogs/AutoChangeLog-pr-2140.yml deleted file mode 100644 index eefbf05f4b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2140.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "A new objective is now available for traitors, where their target to assassinate has not yet arrived at the station." - - bugfix: "Random objective target that used to not be random now is." diff --git a/html/changelogs/AutoChangeLog-pr-2142.yml b/html/changelogs/AutoChangeLog-pr-2142.yml deleted file mode 100644 index 79aed9e920..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2142.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Guns like sniper rifles now unzoom if you unequip them or move them to another hand." diff --git a/html/changelogs/AutoChangeLog-pr-2143.yml b/html/changelogs/AutoChangeLog-pr-2143.yml deleted file mode 100644 index ca4975e073..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2143.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "Lava rivers though the ash walker nest are now significantly less of a hassle for the ashwalkers." diff --git a/html/changelogs/AutoChangeLog-pr-2145.yml b/html/changelogs/AutoChangeLog-pr-2145.yml deleted file mode 100644 index e55ff2fbb5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2145.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BeeSting12" -delete-after: True -changes: - - tweak: "Janitor and service cyborgs now get pocket fire extinguishers for fire suppression and space propulsion." diff --git a/html/changelogs/AutoChangeLog-pr-2147.yml b/html/changelogs/AutoChangeLog-pr-2147.yml deleted file mode 100644 index 2f712f1b5b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2147.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "optional name here" -delete-after: True -changes: - - imageadd: "Updated PDA Icons as well as fix the missing ones/incorrectly used ones. (Art by Cecily & Toriate)" diff --git a/html/changelogs/AutoChangeLog-pr-2151.yml b/html/changelogs/AutoChangeLog-pr-2151.yml deleted file mode 100644 index 75db215b0c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2151.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - bugfix: "Informs a person about how bomb cores work" diff --git a/html/changelogs/AutoChangeLog-pr-2154.yml b/html/changelogs/AutoChangeLog-pr-2154.yml deleted file mode 100644 index bb61e5cf17..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2154.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "JStheguy" -delete-after: True -changes: - - imageadd: "Most alcohol bottles have been resprited, as well as a poster that used one of the current bottles as part of it's design." diff --git a/html/changelogs/AutoChangeLog-pr-2161.yml b/html/changelogs/AutoChangeLog-pr-2161.yml deleted file mode 100644 index 2a65d07cc2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2161.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "BeeSting12" -delete-after: True -changes: - - bugfix: "Crafting satchels from leather now makes a leather satchel rather than a regular satchel." diff --git a/html/changelogs/AutoChangeLog-pr-2162.yml b/html/changelogs/AutoChangeLog-pr-2162.yml deleted file mode 100644 index ce63047823..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2162.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - rscadd: "Nanotrasen has begun production of the Rapid Cable Layer, a tool that helps you lay down cables faster" - - rscadd: "You can now craft ghetto RCLs with metal, a screwdriver, welder, and wrench. They hold less cable, and may fall apart or jam!" diff --git a/html/changelogs/AutoChangeLog-pr-2167.yml b/html/changelogs/AutoChangeLog-pr-2167.yml deleted file mode 100644 index 6052615429..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2167.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Ashstorms no longer pierces the protected people to kill anyone/anything in them." diff --git a/html/changelogs/AutoChangeLog-pr-2168.yml b/html/changelogs/AutoChangeLog-pr-2168.yml deleted file mode 100644 index 90eb00b416..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2168.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "ShizCalev" -delete-after: True -changes: - - bugfix: "Robust coffee is now even more robust! No longer will you be drinking frozen hot coffee!" - - bugfix: "Clockwork covenants and Ratvar will no longer go invisible by releasing a canister of freon!" - - bugfix: "Ratvar's summoning portal will no longer be permanently broken by freon." diff --git a/html/changelogs/AutoChangeLog-pr-2169.yml b/html/changelogs/AutoChangeLog-pr-2169.yml deleted file mode 100644 index 1ec1927950..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2169.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "FuryMcFlurry" -delete-after: True -changes: - - rscadd: "Added mummy, scarecrow, skeleton, and jester costumes. They don't spawn on the map yet, so make sure to beg the admins for them!" diff --git a/html/changelogs/AutoChangeLog-pr-2170.yml b/html/changelogs/AutoChangeLog-pr-2170.yml deleted file mode 100644 index baa827e813..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2170.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - rscadd: "Sound should carry further, but should get quieter and quieter the further you are from it" diff --git a/html/changelogs/AutoChangeLog-pr-2172.yml b/html/changelogs/AutoChangeLog-pr-2172.yml deleted file mode 100644 index e11cce9cef..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2172.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - rscadd: "Badmins: Buildmode map generators have names in the list to select them, instead of paths." - - rscadd: "Also, a new map generator has been added, repair/reload station. Use it VERY sparingly, it deletes the block of the map and reloads it to roundstart. THIS CAN CAUSE ISSUES WITH MACHINES AND ATMOSPHERICS, SO DO NOT USE IT UNLESS YOU ABSOLUTELY HAVE TO!" - - experiment: "The reload station one tagged DO NOT USE shouldn't be used as it doesn't delete anything before loading, so if you use it you'll have two copies of things. That can result in a LOT of issues, so don't use it unless you're a codermin and know what you're doing/abusing!" diff --git a/html/changelogs/AutoChangeLog-pr-2173.yml b/html/changelogs/AutoChangeLog-pr-2173.yml deleted file mode 100644 index efceb122be..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2173.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "Sigils of Transmission can now drain power in a large area when activated by a Servant." - - rscdel: "Interdiction Lenses have been removed, as they were largely only used to drain power into Sigils of Transmission. -balance: Sigils can no longer directly be removed by Servants." diff --git a/html/changelogs/AutoChangeLog-pr-2180.yml b/html/changelogs/AutoChangeLog-pr-2180.yml deleted file mode 100644 index 3bb825e80e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2180.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Stun baton overlays now appear on security belts when active." diff --git a/html/changelogs/AutoChangeLog-pr-2184.yml b/html/changelogs/AutoChangeLog-pr-2184.yml deleted file mode 100644 index a98deab3b8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2184.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Syringes now properly inject targets wearing thick clothing on different slots." diff --git a/html/changelogs/AutoChangeLog-pr-2186.yml b/html/changelogs/AutoChangeLog-pr-2186.yml deleted file mode 100644 index 43bb2fef87..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2186.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - spellcheck: "Player-controlled medibots now receive a notice whenever they try to heal someone with too high health." diff --git a/html/changelogs/AutoChangeLog-pr-2189.yml b/html/changelogs/AutoChangeLog-pr-2189.yml deleted file mode 100644 index 2bdbc7d471..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2189.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Raeschen" -delete-after: True -changes: - - rscdel: "Removed a whole bunch of hivebots." - - rscadd: "Added stronger hivebots." diff --git a/html/changelogs/AutoChangeLog-pr-2190.yml b/html/changelogs/AutoChangeLog-pr-2190.yml deleted file mode 100644 index 901dde7c7b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2190.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "XDTM" -delete-after: True -changes: - - bugfix: "Eyes can now be properly damaged." diff --git a/html/changelogs/AutoChangeLog-pr-2193.yml b/html/changelogs/AutoChangeLog-pr-2193.yml deleted file mode 100644 index 46988eaee1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2193.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - spellcheck: "Removed an improper period from the supermatter sliver theft objective's name." diff --git a/html/changelogs/AutoChangeLog-pr-2196.yml b/html/changelogs/AutoChangeLog-pr-2196.yml deleted file mode 100644 index 736d98cb66..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2196.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "Colossus's shotgun is now a static-spread blast of 6 bolts, making it more predictable." diff --git a/html/changelogs/AutoChangeLog-pr-2197.yml b/html/changelogs/AutoChangeLog-pr-2197.yml deleted file mode 100644 index 6d4e8f4089..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2197.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - rscadd: "Surgical toolarm to protolathe and exofab" - - tweak: "Toolarm tools are less robust but more efficient at surgery" - - tweak: "Arm augments are no longer a huge item" diff --git a/html/changelogs/AutoChangeLog-pr-2209.yml b/html/changelogs/AutoChangeLog-pr-2209.yml deleted file mode 100644 index c65bfd79cc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2209.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Changed how borers win-conditions are displayed. Syndicate borers are now listed with other cortical borers, as they can count for their team-objective even if they don't share it." diff --git a/html/changelogs/AutoChangeLog-pr-2211.yml b/html/changelogs/AutoChangeLog-pr-2211.yml deleted file mode 100644 index 9852662933..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2211.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Borers of all kinds now have a HUD element to see other sentient borers and their hosts. (Hosts cannot see this HUD)" diff --git a/html/changelogs/AutoChangeLog-pr-2215.yml b/html/changelogs/AutoChangeLog-pr-2215.yml deleted file mode 100644 index f02f2d33cf..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2215.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xhuis and oranges" -delete-after: True -changes: - - bugfix: "Banana cream pies no longer splat when they're caught by someone." - - soundadd: "Throwing a pie in someone's face now has a splat sound." diff --git a/html/changelogs/AutoChangeLog-pr-2231.yml b/html/changelogs/AutoChangeLog-pr-2231.yml deleted file mode 100644 index c25b4b2b49..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2231.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - tweak: "Spell action buttons now have their description in a tooltip." diff --git a/html/changelogs/AutoChangeLog-pr-2232.yml b/html/changelogs/AutoChangeLog-pr-2232.yml deleted file mode 100644 index 8d82c65d9f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2232.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Floyd (and sprites by Maya from Yogstation13)" -delete-after: True -changes: - - rscadd: "Makes rat edible. Only lizards really enjoy eating them, though." - - rscadd: "Adds food types to all food, which means you can no longer eat whatever the hell you want." - - rscadd: "Adds a disgust system, currently only used with food." - - rscadd: "Pukonium, makes whoever it is injected to disgusted." - - rscadd: "Makes pod people vegan, or well, carnivores. It depends on how you look at it, really." diff --git a/html/changelogs/AutoChangeLog-pr-2233.yml b/html/changelogs/AutoChangeLog-pr-2233.yml deleted file mode 100644 index 4a8109664b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2233.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - rscadd: "Adds the \"seedling\" planetstation mob to the backend" diff --git a/html/changelogs/AutoChangeLog-pr-2242.yml b/html/changelogs/AutoChangeLog-pr-2242.yml deleted file mode 100644 index 69b47043d3..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2242.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Cloning and podding people no longer forgets to put the genitals back in you." - - bugfix: "Changeling and other DNA transformations now apply the appropriate genitalia." diff --git a/html/changelogs/AutoChangeLog-pr-2245.yml b/html/changelogs/AutoChangeLog-pr-2245.yml deleted file mode 100644 index 3f19f56d03..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2245.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Galactic Corgi Breeding Mills, LLC" -delete-after: True -changes: - - bugfix: "Fixed corgis being able to wear spacesuit helmets despite lacking the proper code and sprites for them." diff --git a/html/changelogs/AutoChangeLog-pr-2249.yml b/html/changelogs/AutoChangeLog-pr-2249.yml deleted file mode 100644 index 4cc75881bc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2249.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Alien hunters can no longer pounce through shields." diff --git a/html/changelogs/AutoChangeLog-pr-2253.yml b/html/changelogs/AutoChangeLog-pr-2253.yml deleted file mode 100644 index 142950f442..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2253.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Floyd" -delete-after: True -changes: - - bugfix: "No longer does everyone look like a sick, nauseated weirdo!" diff --git a/html/changelogs/AutoChangeLog-pr-2266.yml b/html/changelogs/AutoChangeLog-pr-2266.yml deleted file mode 100644 index 2a02edfb87..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2266.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Objects on shuttles now rotate in the correct directions." diff --git a/html/changelogs/AutoChangeLog-pr-2274.yml b/html/changelogs/AutoChangeLog-pr-2274.yml deleted file mode 100644 index ef5c537edd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2274.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Lexorion" -delete-after: True -changes: - - imageadd: "Hearty Punch has a new, fancier sprite." diff --git a/html/changelogs/AutoChangeLog-pr-2278.yml b/html/changelogs/AutoChangeLog-pr-2278.yml deleted file mode 100644 index 111ae24812..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2278.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - bugfix: "Fixed hair sticking through headgear." diff --git a/html/changelogs/AutoChangeLog-pr-2281.yml b/html/changelogs/AutoChangeLog-pr-2281.yml deleted file mode 100644 index 189f18a117..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2281.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Character preview now displays genitals again." diff --git a/html/changelogs/AutoChangeLog-pr-2287.yml b/html/changelogs/AutoChangeLog-pr-2287.yml deleted file mode 100644 index d6b77f9436..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2287.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Turning off APCs will no longer make the weather in that area invisible." diff --git a/html/changelogs/AutoChangeLog-pr-2291.yml b/html/changelogs/AutoChangeLog-pr-2291.yml deleted file mode 100644 index 4b87a21dfd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2291.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - soundadd: "The speakers in the ceiling have been upgraded, and many sounds are now less tinny." diff --git a/html/changelogs/AutoChangeLog-pr-2295.yml b/html/changelogs/AutoChangeLog-pr-2295.yml deleted file mode 100644 index c34d19ac6f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2295.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - tweak: "Mulligan and non-continuous completion checks will not consider afk/logged out people to be \"living crew\"." diff --git a/html/changelogs/AutoChangeLog-pr-2298.yml b/html/changelogs/AutoChangeLog-pr-2298.yml deleted file mode 100644 index 3d12cf9dee..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2298.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Preys being digested now get their digestion message" diff --git a/html/changelogs/AutoChangeLog-pr-2299.yml b/html/changelogs/AutoChangeLog-pr-2299.yml deleted file mode 100644 index 7f5e8730dc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2299.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "JStheguy" -delete-after: True -changes: - - imageadd: "Laptops now have actual sprites for using the supermatter monitoring instead of defaulting to a generic one." diff --git a/html/changelogs/AutoChangeLog-pr-2301.yml b/html/changelogs/AutoChangeLog-pr-2301.yml deleted file mode 100644 index 2924b5a5ad..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2301.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterJay" -delete-after: True -changes: - - rscadd: "Adds bear ears and bear tails (Sprites courtesy of LizziePup)" diff --git a/html/changelogs/AutoChangeLog-pr-2305.yml b/html/changelogs/AutoChangeLog-pr-2305.yml deleted file mode 100644 index fbd7208358..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2305.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - imageadd: "Belligerent now has a visible indicator over the caster." diff --git a/html/changelogs/AutoChangeLog-pr-2308.yml b/html/changelogs/AutoChangeLog-pr-2308.yml deleted file mode 100644 index 1d367c4d84..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2308.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Penises can now climax inside someone instead of only be used for masturbating. Use passive grab to be able to spill on the floor, aggressive or higher grab to not spill a drop." - - rscadd: "Hexacrocin and hexacamphor now adjusts your arousal up respectively down when overdosed. Hexacrocin overdoses can force orgasms at high arousal." - - bugfix: "Penises can now be used for masturbation without containers again." - - bugfix: "Citadel chems now sends you feedback messages properly when in effect." diff --git a/html/changelogs/AutoChangeLog-pr-2309.yml b/html/changelogs/AutoChangeLog-pr-2309.yml deleted file mode 100644 index 89ceed6223..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2309.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Cloner and other mind-transfer things now respect client arousal settings." diff --git a/html/changelogs/AutoChangeLog-pr-2319.yml b/html/changelogs/AutoChangeLog-pr-2319.yml deleted file mode 100644 index 4ca8998875..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2319.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Swarmer shells now have ghost notifications again." diff --git a/html/changelogs/AutoChangeLog-pr-2320.yml b/html/changelogs/AutoChangeLog-pr-2320.yml deleted file mode 100644 index 695f23e7de..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2320.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterJay" -delete-after: True -changes: - - tweak: "Adds the option for bear ears and tails for humans as well." diff --git a/html/changelogs/AutoChangeLog-pr-2325.yml b/html/changelogs/AutoChangeLog-pr-2325.yml deleted file mode 100644 index 5ad1b25324..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2325.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Pubby" -delete-after: True -changes: - - rscadd: "The Curator job is now available on PubbyStation" - - rscadd: "Beekeeping has been added to PubbyStation's monastery" - - tweak: "PubbyStation's bar has been rearranged" diff --git a/html/changelogs/AutoChangeLog-pr-2329.yml b/html/changelogs/AutoChangeLog-pr-2329.yml deleted file mode 100644 index 2950b70fbb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2329.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Adds flared, knotted or tapered dicks for Taur bodies." - - tweak: "Resized the cow-taur's over-extended belly to match the profile picture, no longer completely blocking the taur penises." - - bugfix: "Barbed, knotted penises and other such long-named cocks are now visible on the ground if dismembered." diff --git a/html/changelogs/AutoChangeLog-pr-2335.yml b/html/changelogs/AutoChangeLog-pr-2335.yml deleted file mode 100644 index 5681e3d5f9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2335.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Flavortext is now in the DNA of mobs who has that, meaning changelings, cloners and such things use it properly." diff --git a/html/changelogs/AutoChangeLog-pr-2339.yml b/html/changelogs/AutoChangeLog-pr-2339.yml deleted file mode 100644 index c7f3d42698..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2339.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - tweak: "His Grace now shows up on the orbit list" diff --git a/html/changelogs/AutoChangeLog-pr-2346.yml b/html/changelogs/AutoChangeLog-pr-2346.yml deleted file mode 100644 index c42300a173..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2346.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - tweak: "The wiki button now asks what page you want to be taken to" diff --git a/html/changelogs/AutoChangeLog-pr-2350.yml b/html/changelogs/AutoChangeLog-pr-2350.yml deleted file mode 100644 index 07e0f51b62..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2350.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "Minebots no longer lack icons for their action buttons." diff --git a/html/changelogs/AutoChangeLog-pr-2356.yml b/html/changelogs/AutoChangeLog-pr-2356.yml deleted file mode 100644 index 218da24865..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2356.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - imageadd: "Adds icon_states to the unused and used Eldritch whetstones. Sprites by Fury McFlurry." diff --git a/html/changelogs/AutoChangeLog-pr-2357.yml b/html/changelogs/AutoChangeLog-pr-2357.yml deleted file mode 100644 index f63277f66f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2357.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - rscadd: "Breasts can now be used to masturbate/milk yourselves." - - rscadd: "You can now expose genitals through clothing using a verb in the IC tab." - - tweak: "Pressing the Arousal HUD symbol will now bring up several options to use. Pull or be pulled by someone who's exposed to have them appear as an option." - - tweak: "Made hexacamphor/hexacrocin less verbose and trigger forced climaxes less often to avoid incredible spam." - - tweak: "Being forced to orgasm while pulled or pulling someone now counts them as your selected partner." diff --git a/html/changelogs/AutoChangeLog-pr-2359.yml b/html/changelogs/AutoChangeLog-pr-2359.yml deleted file mode 100644 index 8455963dc6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2359.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - imageadd: "Ported CEV-Eris's APC sprites." diff --git a/html/changelogs/AutoChangeLog-pr-2362.yml b/html/changelogs/AutoChangeLog-pr-2362.yml deleted file mode 100644 index 5bdc603b06..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2362.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - bugfix: "Fixes a typo in the blobbernaut spawn text" diff --git a/html/changelogs/AutoChangeLog-pr-2363.yml b/html/changelogs/AutoChangeLog-pr-2363.yml deleted file mode 100644 index e8f5b574ae..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2363.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - tweak: "Canisters don't flash red lights anymore when empty." diff --git a/html/changelogs/AutoChangeLog-pr-2371.yml b/html/changelogs/AutoChangeLog-pr-2371.yml deleted file mode 100644 index ec1810b8a6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2371.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - bugfix: "The Resurrect Cultist rune now works as intended." diff --git a/html/changelogs/AutoChangeLog-pr-2376.yml b/html/changelogs/AutoChangeLog-pr-2376.yml deleted file mode 100644 index 1d1a2007b5..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2376.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ShizCalev" -delete-after: True -changes: - - bugfix: "The Singularity, Tesla energy ball, tears in the fabric of reality, and Narsie will no longer be frozen by freon." diff --git a/html/changelogs/AutoChangeLog-pr-2377.yml b/html/changelogs/AutoChangeLog-pr-2377.yml deleted file mode 100644 index 4996a03563..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2377.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - bugfix: "Fixes mining hardsuit heat_protection" diff --git a/html/changelogs/AutoChangeLog-pr-2399.yml b/html/changelogs/AutoChangeLog-pr-2399.yml deleted file mode 100644 index 2d162a5edf..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2399.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - rscadd: "Blobs can now sense when they're being cuddled!" diff --git a/html/changelogs/AutoChangeLog-pr-2402.yml b/html/changelogs/AutoChangeLog-pr-2402.yml deleted file mode 100644 index 0ef97907fd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2402.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - imageadd: "Nanotrasen redesigned the area power controllers!" - - imageadd: "Thanks Xhuis for the contrast tweak on APCs" diff --git a/html/changelogs/AutoChangeLog-pr-2408.yml b/html/changelogs/AutoChangeLog-pr-2408.yml deleted file mode 100644 index 92f33a9292..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2408.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - soundadd: "The station's explosion now uses a new (or old) sound." diff --git a/html/changelogs/AutoChangeLog-pr-2428.yml b/html/changelogs/AutoChangeLog-pr-2428.yml deleted file mode 100644 index 76adf39bcd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2428.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xhuis" -delete-after: True -changes: - - spellcheck: "The chat message has been removed from *spin. I hope you're happy." diff --git a/html/changelogs/AutoChangeLog-pr-2437.yml b/html/changelogs/AutoChangeLog-pr-2437.yml deleted file mode 100644 index 1a54eed45e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2437.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BeeSting12" -delete-after: True -changes: - - bugfix: "Deltastation's N2O console has been renamed to be an N2O console." - - tweak: "Deltastation's atmos now has a fire axe." diff --git a/html/changelogs/AutoChangeLog-pr-2438.yml b/html/changelogs/AutoChangeLog-pr-2438.yml deleted file mode 100644 index 9195a11183..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2438.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "XDTM" -delete-after: True -changes: - - bugfix: "Viruses will now be able to affect more than one person at a time." diff --git a/html/changelogs/AutoChangeLog-pr-2439.yml b/html/changelogs/AutoChangeLog-pr-2439.yml deleted file mode 100644 index c92b5e2235..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2439.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ShizCalev" -delete-after: True -changes: - - tweak: "The singularity will now dig up asteroids when in proximity of them. Please watch for flying debris." diff --git a/html/changelogs/AutoChangeLog-pr-2447.yml b/html/changelogs/AutoChangeLog-pr-2447.yml deleted file mode 100644 index b520cf947b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2447.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Pubby" -delete-after: True -changes: - - rscadd: "Gorillas" - - rscadd: "Irradiating monkeys can now turn them into hostile gorillas" diff --git a/html/changelogs/AutoChangeLog-pr-2448.yml b/html/changelogs/AutoChangeLog-pr-2448.yml deleted file mode 100644 index 40610a2afe..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2448.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Taurs now rely on their taur-sprites to render legs, instead of rendering human legs on top of them. Mostly impacts driders and such uniquely legged individuals." diff --git a/html/changelogs/AutoChangeLog-pr-2461.yml b/html/changelogs/AutoChangeLog-pr-2461.yml deleted file mode 100644 index 4f33badb1b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2461.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - tweak: "Garbage collection happens less often now to reduce the lag caused by hard deletions." diff --git a/html/changelogs/AutoChangeLog-pr-2465.yml b/html/changelogs/AutoChangeLog-pr-2465.yml deleted file mode 100644 index 2b2c8bfc8b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2465.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - bugfix: "Boss tiles have been reconstructed out of an unstoppable force." diff --git a/html/changelogs/AutoChangeLog-pr-2471.yml b/html/changelogs/AutoChangeLog-pr-2471.yml deleted file mode 100644 index a7264612a1..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2471.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - bugfix: "Dogborgs now properly sends chat messages when using their unique modules." - - bugfix: "Medidogs now respect vore prefs." - - bugfix: "Dogborg modules now respect the laws of physics, in regards to only eating/cleaning people/things near them." - - bugfix: "Dogborg stuff now has that nice progress-bar show up when trying to do things." diff --git a/html/changelogs/AutoChangeLog-pr-2483.yml b/html/changelogs/AutoChangeLog-pr-2483.yml deleted file mode 100644 index f36e6c226c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2483.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - tweak: "The cooldown on communications console announcements is halved from 60 to 30 seconds." diff --git a/html/changelogs/AutoChangeLog-pr-2487.yml b/html/changelogs/AutoChangeLog-pr-2487.yml deleted file mode 100644 index c7e214e26e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2487.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "Joan" -delete-after: True -changes: - - tweak: "Geis bindings will decay slower when on a Sigil of Submission, and, if being pulled by a Servant when crossing a Sigil of Submission, will helpfully remove the pull." - - tweak: "Removing Geis bindings is no longer instant and can be done by any Servant with a slab, not just the initiator." - - wip: "Geis no longer prevents you from taking actions, but you remain unable to recite scripture while the target is bound. In addition, dealing damage to a bound target will cause the bindings to decay much more rapidly." - - rscadd: "You can now remove sigils by hitting them with a clockwork slab for a small refund." diff --git a/html/changelogs/AutoChangeLog-pr-2495.yml b/html/changelogs/AutoChangeLog-pr-2495.yml deleted file mode 100644 index 4fa1141424..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2495.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "More Robust Than You" -delete-after: True -changes: - - rscadd: "Holoparasite prompts now have a \"Never For This Round\" option" diff --git a/html/changelogs/AutoChangeLog-pr-2498.yml b/html/changelogs/AutoChangeLog-pr-2498.yml deleted file mode 100644 index 832084ac50..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2498.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CitadelStationBot" -delete-after: True -changes: - - rscadd: "Plasmamen now hallucinate with blackpowder in their system" diff --git a/html/changelogs/AutoChangeLog-pr-2513.yml b/html/changelogs/AutoChangeLog-pr-2513.yml deleted file mode 100644 index 53e3fcd985..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2513.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Heresy has come to the station, humans must now select custom skin colours! Specific RGB values can be enterred in order to get just the right tone of skin your special snowflake needs, just like you can for other humanoids!" diff --git a/html/changelogs/AutoChangeLog-pr-2517.yml b/html/changelogs/AutoChangeLog-pr-2517.yml deleted file mode 100644 index 3c3c7c5283..0000000000 --- a/html/changelogs/AutoChangeLog-pr-2517.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ktccd" -delete-after: True -changes: - - tweak: "Set all food preferences to NONE for all species." diff --git a/strings/brain_damage_lines.json.rej b/strings/brain_damage_lines.json.rej deleted file mode 100644 index 6d8e1cdb62..0000000000 --- a/strings/brain_damage_lines.json.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json (rejected hunks) -@@ -131,7 +131,7 @@ - "", - "IS TIS A BUG??", - "SI IST A BUGG/", -- "BUG!!!" -+ "BUG!!!" - ], - - "semicolon": [ diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index a2c791bc5b..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,102 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -765,73 +812,6 @@ - #include "code\game\objects\items\devices\radio\headset.dm" - #include "code\game\objects\items\devices\radio\intercom.dm" - #include "code\game\objects\items\devices\radio\radio.dm" --#include "code\game\objects\items\robot\ai_upgrades.dm" --#include "code\game\objects\items\robot\robot_items.dm" --#include "code\game\objects\items\robot\robot_parts.dm" --#include "code\game\objects\items\robot\robot_upgrades.dm" --#include "code\game\objects\items\stacks\bscrystal.dm" --#include "code\game\objects\items\stacks\cash.dm" --#include "code\game\objects\items\stacks\medical.dm" --#include "code\game\objects\items\stacks\rods.dm" --#include "code\game\objects\items\stacks\stack.dm" --#include "code\game\objects\items\stacks\telecrystal.dm" --#include "code\game\objects\items\stacks\wrap.dm" --#include "code\game\objects\items\stacks\sheets\glass.dm" --#include "code\game\objects\items\stacks\sheets\leather.dm" --#include "code\game\objects\items\stacks\sheets\light.dm" --#include "code\game\objects\items\stacks\sheets\mineral.dm" --#include "code\game\objects\items\stacks\sheets\sheet_types.dm" --#include "code\game\objects\items\stacks\sheets\sheets.dm" --#include "code\game\objects\items\stacks\tiles\light.dm" --#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" --#include "code\game\objects\items\stacks\tiles\tile_types.dm" --#include "code\game\objects\items\AI_modules.dm" --#include "code\game\objects\items\airlock_painter.dm" --#include "code\game\objects\items\cards_ids.dm" --#include "code\game\objects\items\charter.dm" --#include "code\game\objects\items\chrono_eraser.dm" --#include "code\game\objects\items\cigs_lighters.dm" --#include "code\game\objects\items\clown_items.dm" --#include "code\game\objects\items\cosmetics.dm" --#include "code\game\objects\items\courtroom.dm" --#include "code\game\objects\items\defib.dm" --#include "code\game\objects\items\dice.dm" --#include "code\game\objects\items\dna_injector.dm" --#include "code\game\objects\items\extinguisher.dm" --#include "code\game\objects\items\flamethrower.dm" --#include "code\game\objects\items\gift.dm" --#include "code\game\objects\items\handcuffs.dm" --#include "code\game\objects\items\his_grace.dm" --#include "code\game\objects\items\holosign_creator.dm" --#include "code\game\objects\items\holy_weapons.dm" --#include "code\game\objects\items\inducer.dm" --#include "code\game\objects\items\kitchen.dm" --#include "code\game\objects\items\manuals.dm" --#include "code\game\objects\items\miscellaneous.dm" --#include "code\game\objects\items\mop.dm" --#include "code\game\objects\items\paint.dm" --#include "code\game\objects\items\paiwire.dm" --#include "code\game\objects\items\pneumaticCannon.dm" --#include "code\game\objects\items\powerfist.dm" --#include "code\game\objects\items\RCD.dm" --#include "code\game\objects\items\RCL.dm" --#include "code\game\objects\items\RPD.dm" --#include "code\game\objects\items\RSF.dm" --#include "code\game\objects\items\scrolls.dm" --#include "code\game\objects\items\sharpener.dm" --#include "code\game\objects\items\shields.dm" --#include "code\game\objects\items\signs.dm" --#include "code\game\objects\items\singularityhammer.dm" --#include "code\game\objects\items\stunbaton.dm" --#include "code\game\objects\items\teleportation.dm" --#include "code\game\objects\items\teleprod.dm" --#include "code\game\objects\items\tools.dm" --#include "code\game\objects\items\twohanded.dm" --#include "code\game\objects\items\vending_items.dm" --#include "code\game\objects\items\weaponry.dm" --#include "code\game\objects\items\circuitboards\circuitboard.dm" --#include "code\game\objects\items\circuitboards\computer_circuitboards.dm" --#include "code\game\objects\items\circuitboards\machine_circuitboards.dm" - #include "code\game\objects\items\grenades\chem_grenade.dm" - #include "code\game\objects\items\grenades\clusterbuster.dm" - #include "code\game\objects\items\grenades\emgrenade.dm" -@@ -863,6 +843,26 @@ - #include "code\game\objects\items\melee\energy.dm" - #include "code\game\objects\items\melee\misc.dm" - #include "code\game\objects\items\melee\transforming.dm" -+#include "code\game\objects\items\robot\ai_upgrades.dm" -+#include "code\game\objects\items\robot\robot_items.dm" -+#include "code\game\objects\items\robot\robot_parts.dm" -+#include "code\game\objects\items\robot\robot_upgrades.dm" -+#include "code\game\objects\items\stacks\bscrystal.dm" -+#include "code\game\objects\items\stacks\cash.dm" -+#include "code\game\objects\items\stacks\medical.dm" -+#include "code\game\objects\items\stacks\rods.dm" -+#include "code\game\objects\items\stacks\stack.dm" -+#include "code\game\objects\items\stacks\telecrystal.dm" -+#include "code\game\objects\items\stacks\wrap.dm" -+#include "code\game\objects\items\stacks\sheets\glass.dm" -+#include "code\game\objects\items\stacks\sheets\leather.dm" -+#include "code\game\objects\items\stacks\sheets\light.dm" -+#include "code\game\objects\items\stacks\sheets\mineral.dm" -+#include "code\game\objects\items\stacks\sheets\sheet_types.dm" -+#include "code\game\objects\items\stacks\sheets\sheets.dm" -+#include "code\game\objects\items\stacks\tiles\light.dm" -+#include "code\game\objects\items\stacks\tiles\tile_mineral.dm" -+#include "code\game\objects\items\stacks\tiles\tile_types.dm" - #include "code\game\objects\items\storage\backpack.dm" - #include "code\game\objects\items\storage\bags.dm" - #include "code\game\objects\items\storage\belt.dm" diff --git a/tgui/assets/tgui.js.rej b/tgui/assets/tgui.js.rej deleted file mode 100644 index 7a19430f92..0000000000 --- a/tgui/assets/tgui.js.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/tgui/assets/tgui.js b/tgui/assets/tgui.js (rejected hunks) -@@ -7,10 +7,10 @@ return t.set(e,+a+n)}function O(t,e){return Jo(this,t,void 0===e?1:+e)}function - real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,"int":8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},sc=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],uc=RegExp("&(#?(?:x[\\w\\d]+|\\d+|"+Object.keys(oc).join("|")+"));?","g"),pc=//g,lc=/&/g;var gc=function(){return e(this.node)},bc=function(t){this.type=kp,this.text=t.template};bc.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createTextNode(this.text)),this.node},toString:function(t){return t?Ee(this.text):this.text},unrender:function(t){return t?this.detach():void 0}};var yc=bc,xc=Se,_c=Ce,wc=function(t,e,n){var a;this.ref=e,this.resolved=!1,this.root=t.root,this.parentFragment=t.parentFragment,this.callback=n,a=ls(t.root,e,t.parentFragment),void 0!=a?this.resolve(a):bs.addUnresolved(this)};wc.prototype={resolve:function(t){this.keypath&&!t&&bs.addUnresolved(this),this.resolved=!0,this.keypath=t,this.callback(t)},forceResolution:function(){this.resolve(E(this.ref))},rebind:function(t,e){var n;void 0!=this.keypath&&(n=this.keypath.replace(t,e),void 0!==n&&this.resolve(n))},unbind:function(){this.resolved||bs.removeUnresolved(this)}};var kc=wc,Ec=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,this.rebind()},Sc={"@keypath":{prefix:"c",prop:["context"]},"@index":{prefix:"i",prop:["index"]},"@key":{prefix:"k",prop:["key","index"]}};Ec.prototype={rebind:function(){var t,e=this.ref,n=this.parentFragment,a=Sc[e];if(!a)throw Error('Unknown special reference "'+e+'" - valid references are @index, @key and @keypath');if(this.cached)return this.callback(E("@"+a.prefix+Pe(this.cached,a)));if(-1!==a.prop.indexOf("index")||-1!==a.prop.indexOf("key"))for(;n;){if(n.owner.currentSubtype===Bp&&void 0!==(t=Pe(n,a)))return this.cached=n,n.registerIndexRef(this),this.callback(E("@"+a.prefix+t));n=!n.parent&&n.owner&&n.owner.component&&n.owner.component.parentFragment&&!n.owner.component.instance.isolated?n.owner.component.parentFragment:n.parent}else for(;n;){if(void 0!==(t=Pe(n,a)))return this.callback(E("@"+a.prefix+t.str));n=n.parent}},unbind:function(){this.cached&&this.cached.unregisterIndexRef(this)}};var Cc=Ec,Pc=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,e.ref.fragment.registerIndexRef(this),this.rebind()};Pc.prototype={rebind:function(){var t,e=this.ref.ref;t="k"===e.ref.t?"k"+e.fragment.key:"i"+e.fragment.index,void 0!==t&&this.callback(E("@"+t))},unbind:function(){this.ref.ref.fragment.unregisterIndexRef(this)}};var Ac=Pc,Oc=Ae;Ae.resolve=function(t){var e,n,a={};for(e in t.refs)n=t.refs[e],a[n.ref.n]="k"===n.ref.t?n.fragment.key:n.fragment.index;return a};var Tc,Mc=Oe,Rc=Te,jc={},Lc=Function.prototype.bind;Tc=function(t,e,n,a){var r,i=this;r=t.root,this.root=r,this.parentFragment=e,this.callback=a,this.owner=t,this.str=n.s,this.keypaths=[],this.pending=n.r.length,this.refResolvers=n.r.map(function(t,e){return Mc(i,t,function(t){i.resolve(e,t)})}),this.ready=!0,this.bubble()},Tc.prototype={bubble:function(){this.ready&&(this.uniqueString=Re(this.str,this.keypaths),this.keypath=je(this.uniqueString),this.createEvaluator(),this.callback(this.keypath))},unbind:function(){for(var t;t=this.refResolvers.pop();)t.unbind()},resolve:function(t,e){this.keypaths[t]=e,this.bubble()},createEvaluator:function(){var t,e,n,a,r,i=this;a=this.keypath,t=this.root.viewmodel.computations[a.str],t?this.root.viewmodel.mark(a):(r=Rc(this.str,this.refResolvers.length),e=this.keypaths.map(function(t){var e;return"undefined"===t?function(){}:t.isSpecial?(e=t.value,function(){return e}):function(){var e=i.root.viewmodel.get(t,{noUnwrap:!0,fullRootGet:!0});return"function"==typeof e&&(e=De(e,i.root)),e}}),n={deps:this.keypaths.filter(Le),getter:function(){var t=e.map(Me);return r.apply(null,t)}},t=this.root.viewmodel.compute(a,n))},rebind:function(t,e){this.refResolvers.forEach(function(n){return n.rebind(t,e)})}};var Dc=Tc,Nc=function(t,e,n){var a=this;this.resolver=e,this.root=e.root,this.parentFragment=n,this.viewmodel=e.root.viewmodel,"string"==typeof t?this.value=t:t.t===Np?this.refResolver=Mc(this,t.n,function(t){a.resolve(t)}):new Dc(e,n,t,function(t){a.resolve(t)})};Nc.prototype={resolve:function(t){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.keypath=t,this.value=this.viewmodel.get(t),this.bind(),this.resolver.bubble()},bind:function(){this.viewmodel.register(this.keypath,this)},rebind:function(t,e){this.refResolver&&this.refResolver.rebind(t,e)},setValue:function(t){this.value=t,this.resolver.bubble()},unbind:function(){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.refResolver&&this.refResolver.unbind()},forceResolution:function(){this.refResolver&&this.refResolver.forceResolution()}};var Fc=Nc,Ic=function(t,e,n){var a,r,i,o,s=this;this.parentFragment=o=t.parentFragment,this.root=a=t.root,this.mustache=t,this.ref=r=e.r,this.callback=n,this.unresolved=[],(i=ls(a,r,o))?this.base=i:this.baseResolver=new kc(this,r,function(t){s.base=t,s.baseResolver=null,s.bubble()}),this.members=e.m.map(function(t){return new Fc(t,s,o)}),this.ready=!0,this.bubble()};Ic.prototype={getKeypath:function(){var t=this.members.map(Ne);return!t.every(Fe)||this.baseResolver?null:this.base.join(t.join("."))},bubble:function(){this.ready&&!this.baseResolver&&this.callback(this.getKeypath())},unbind:function(){this.members.forEach(K)},rebind:function(t,e){var n;if(this.base){var a=this.base.replace(t,e);a&&a!==this.base&&(this.base=a,n=!0)}this.members.forEach(function(a){a.rebind(t,e)&&(n=!0)}),n&&this.bubble()},forceResolution:function(){this.baseResolver&&(this.base=E(this.ref),this.baseResolver.unbind(),this.baseResolver=null),this.members.forEach(Ie),this.bubble()}};var Bc=Ic,qc=Be,Uc=qe,Gc=Ue,Vc={getValue:_c,init:qc,resolve:Uc,rebind:Gc},zc=function(t){this.type=Ep,Vc.init(this,t)};zc.prototype={update:function(){this.node.data=void 0==this.value?"":this.value},resolve:Vc.resolve,rebind:Vc.rebind,detach:gc,unbind:xc,render:function(){return this.node||(this.node=document.createTextNode(n(this.value))),this.node},unrender:function(t){t&&e(this.node)},getValue:Vc.getValue,setValue:function(t){var e;this.keypath&&(e=this.root.viewmodel.wrapped[this.keypath.str])&&(t=e.get()),s(t,this.value)||(this.value=t,this.parentFragment.bubble(),this.node&&bs.addView(this))},firstNode:function(){return this.node},toString:function(t){var e=""+n(this.value);return t?Ee(e):e}};var Wc=zc,Hc=Ge,Kc=Ve,Qc=ze,$c=We,Yc=He,Jc=Ke,Xc=Qe,Zc=$e,tl=Ye,el=function(t,e){Vc.rebind.call(this,t,e)},nl=Xe,al=Ze,rl=ln,il=fn,ol=dn,sl=vn,ul=function(t){this.type=Cp,this.subtype=this.currentSubtype=t.template.n,this.inverted=this.subtype===Ip,this.pElement=t.pElement,this.fragments=[],this.fragmentsToCreate=[],this.fragmentsToRender=[],this.fragmentsToUnrender=[],t.template.i&&(this.indexRefs=t.template.i.split(",").map(function(t,e){return{n:t,t:0===e?"k":"i"}})),this.renderedFragments=[],this.length=0,Vc.init(this,t)};ul.prototype={bubble:Hc,detach:Kc,find:Qc,findAll:$c,findAllComponents:Yc,findComponent:Jc,findNextNode:Xc,firstNode:Zc,getIndexRef:function(t){if(this.indexRefs)for(var e=this.indexRefs.length;e--;){var n=this.indexRefs[e];if(n.n===t)return n}},getValue:Vc.getValue,shuffle:tl,rebind:el,render:nl,resolve:Vc.resolve,setValue:al,toString:rl,unbind:il,unrender:ol,update:sl};var pl,cl,ll=ul,fl=gn,dl=bn,hl=yn,ml=xn,vl={};try{co("table").innerHTML="foo"}catch(Ao){pl=!0,cl={TABLE:['
[get_held_index_name(i)]:[(I && !(I.flags & ABSTRACT)) ? I : "Empty"]
[get_held_index_name(i)]:[(I && !(I.flags_1 & ABSTRACT_1)) ? I : "Empty"]
 
Back:[(back && !(back.flags&ABSTRACT)) ? back : "Empty"]" -+ dat += "
Back:[(back && !(back.flags_1&ABSTRACT_1)) ? back : "Empty"]" - if(has_breathable_mask && istype(back, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" - - dat += "
 
Head:[(head && !(head.flags&ABSTRACT)) ? head : "Empty"]
Head:[(head && !(head.flags_1&ABSTRACT_1)) ? head : "Empty"]
Mask:Obscured
Mask:[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Empty"]
Mask:[(wear_mask && !(wear_mask.flags_1&ABSTRACT_1)) ? wear_mask : "Empty"]
Neck:Obscured
Neck:[(wear_neck && !(wear_neck.flags&ABSTRACT)) ? wear_neck : "Empty"]
Neck:[(wear_neck && !(wear_neck.flags_1&ABSTRACT_1)) ? wear_neck : "Empty"]
Eyes:Obscured
Eyes:[(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Empty"]
Eyes:[(glasses && !(glasses.flags_1&ABSTRACT_1)) ? glasses : "Empty"]
Ears:Obscured
Ears:[(ears && !(ears.flags&ABSTRACT)) ? ears : "Empty"]
Ears:[(ears && !(ears.flags_1&ABSTRACT_1)) ? ears : "Empty"]
 
Exosuit:[(wear_suit && !(wear_suit.flags&ABSTRACT)) ? wear_suit : "Empty"]
Exosuit:[(wear_suit && !(wear_suit.flags_1&ABSTRACT_1)) ? wear_suit : "Empty"]
 ↳Suit Storage:[(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "Empty"]" -+ dat += "
 ↳Suit Storage:[(s_store && !(s_store.flags_1&ABSTRACT_1)) ? s_store : "Empty"]" - if(has_breathable_mask && istype(s_store, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" - dat += "
Shoes:Obscured
Shoes:[(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Empty"]
Shoes:[(shoes && !(shoes.flags_1&ABSTRACT_1)) ? shoes : "Empty"]
Gloves:Obscured
Gloves:[(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Empty"]
Gloves:[(gloves && !(gloves.flags_1&ABSTRACT_1)) ? gloves : "Empty"]
Uniform:Obscured
Uniform:[(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Empty"]
Uniform:[(w_uniform && !(w_uniform.flags_1&ABSTRACT_1)) ? w_uniform : "Empty"]
 ↳Pockets:
 ↳ID:
 ↳Belt:
 ↳Belt:[(belt && !(belt.flags&ABSTRACT)) ? belt : "Empty"]" -+ dat += "
 ↳Belt:[(belt && !(belt.flags_1&ABSTRACT_1)) ? belt : "Empty"]" - if(has_breathable_mask && istype(belt, /obj/item/tank)) - dat += " [internal ? "Disable Internals" : "Set Internals"]" - dat += "
 ↳Pockets:[(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]" -- dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"]
 ↳ID:[(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"]
 ↳Pockets:[(l_store && !(l_store.flags_1&ABSTRACT_1)) ? "Left (Full)" : "Left (Empty)"]" -+ dat += " [(r_store && !(r_store.flags_1&ABSTRACT_1)) ? "Right (Full)" : "Right (Empty)"]
 ↳ID:[(wear_id && !(wear_id.flags_1&ABSTRACT_1)) ? wear_id : "Empty"]
Handcuffed: Remove
',"
"],THEAD:['',"
"],TBODY:['',"
"],TR:['',"
"],SELECT:['"]}}var gl=function(t,e,n){var a,r,i,o,s,u=[];if(null!=t&&""!==t){for(pl&&(r=cl[e.tagName])?(a=_n("DIV"),a.innerHTML=r[0]+t+r[1],a=a.querySelector(".x"),"SELECT"===a.tagName&&(i=a.options[a.selectedIndex])):e.namespaceURI===no.svg?(a=_n("DIV"),a.innerHTML=''+t+"",a=a.querySelector(".x")):(a=_n(e.tagName),a.innerHTML=t,"SELECT"===a.tagName&&(i=a.options[a.selectedIndex]));o=a.firstChild;)u.push(o),n.appendChild(o);if("SELECT"===e.tagName)for(s=u.length;s--;)u[s]!==i&&(u[s].selected=!1)}return u},bl=wn,yl=En,xl=Sn,_l=Cn,wl=Pn,kl=An,El=function(t){this.type=Sp,Vc.init(this,t)};El.prototype={detach:fl,find:dl,findAll:hl,firstNode:ml,getValue:Vc.getValue,rebind:Vc.rebind,render:yl,resolve:Vc.resolve,setValue:xl,toString:_l,unbind:xc,unrender:wl,update:kl};var Sl,Cl,Pl,Al,Ol=El,Tl=function(){this.parentFragment.bubble()},Ml=On,Rl=function(t){return this.node?lo(this.node,t)?this.node:this.fragment&&this.fragment.find?this.fragment.find(t):void 0:null},jl=function(t,e){e._test(this,!0)&&e.live&&(this.liveQueries||(this.liveQueries=[])).push(e),this.fragment&&this.fragment.findAll(t,e)},Ll=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},Dl=function(t){return this.fragment?this.fragment.findComponent(t):void 0},Nl=Tn,Fl=Mn,Il=Rn,Bl=/^true|on|yes|1$/i,ql=/^[0-9]+$/,Ul=function(t,e){var n,a,r;return r=e.a||{},a={},n=r.twoway,void 0!==n&&(a.twoway=0===n||Bl.test(n)),n=r.lazy,void 0!==n&&(0!==n&&ql.test(n)?a.lazy=parseInt(n):a.lazy=0===n||Bl.test(n)),a},Gl=jn;Sl="altGlyph altGlyphDef altGlyphItem animateColor animateMotion animateTransform clipPath feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence foreignObject glyphRef linearGradient radialGradient textPath vkern".split(" "),Cl="attributeName attributeType baseFrequency baseProfile calcMode clipPathUnits contentScriptType contentStyleType diffuseConstant edgeMode externalResourcesRequired filterRes filterUnits glyphRef gradientTransform gradientUnits kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY repeatCount repeatDur requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox viewTarget xChannelSelector yChannelSelector zoomAndPan".split(" "),Pl=function(t){for(var e={},n=t.length;n--;)e[t[n].toLowerCase()]=t[n];return e},Al=Pl(Sl.concat(Cl));var Vl=function(t){var e=t.toLowerCase();return Al[e]||e},zl=function(t,e){var n,a;if(n=e.indexOf(":"),-1===n||(a=e.substr(0,n),"xmlns"===a))t.name=t.element.namespace!==no.html?Vl(e):e;else if(e=e.substring(n+1),t.name=Vl(e),t.namespace=no[a.toLowerCase()],t.namespacePrefix=a,!t.namespace)throw'Unknown namespace ("'+a+'")'},Wl=Ln,Hl=Dn,Kl=Nn,Ql=Fn,$l={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor","class":"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName","for":"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},Yl=In,Jl=qn,Xl=Un,Zl=Gn,tf=Vn,ef=zn,nf=Wn,af=Hn,rf=Kn,of=Qn,sf=$n,uf=Yn,pf=Jn,cf=Xn,lf=Zn,ff=function(t){this.init(t)};ff.prototype={bubble:Gl,init:Hl,rebind:Kl,render:Ql,toString:Yl,unbind:Jl,update:lf};var df,hf=ff,mf=function(t,e){var n,a,r=[];for(n in e)"twoway"!==n&&"lazy"!==n&&e.hasOwnProperty(n)&&(a=new hf({element:t,name:n,value:e[n],root:t.root}),r[n]=a,"value"!==n&&r.push(a));return(a=r.value)&&r.push(a),r};"undefined"!=typeof document&&(df=co("div"));var vf=function(t,e){this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.attributes=[],this.fragment=new rv({root:t.root,owner:this,template:[e]})};vf.prototype={bubble:function(){this.node&&this.update(),this.element.bubble()},rebind:function(t,e){this.fragment.rebind(t,e)},render:function(t){this.node=t,this.isSvg=t.namespaceURI===no.svg,this.update()},unbind:function(){this.fragment.unbind()},update:function(){var t,e,n=this;t=""+this.fragment,e=ta(t,this.isSvg),this.attributes.filter(function(t){return ea(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e},toString:function(){return""+this.fragment}};var gf=vf,bf=function(t,e){return e?e.map(function(e){return new gf(t,e)}):[]},yf=function(t){var e,n,a,r;if(this.element=t,this.root=t.root,this.attribute=t.attributes[this.name||"value"],e=this.attribute.interpolator,e.twowayBinding=this,n=e.keypath){if("}"===n.str.slice(-1))return v("Two-way binding does not work with expressions (`%s` on <%s>)",e.resolver.uniqueString,t.name,{ractive:this.root}),!1;if(n.isSpecial)return v("Two-way binding does not work with %s",e.resolver.ref,{ractive:this.root}),!1}else{var i=e.template.r?"'"+e.template.r+"' reference":"expression";m("The %s being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",i,{ractive:this.root}),e.resolver.forceResolution(),n=e.keypath}this.attribute.isTwoway=!0,this.keypath=n,a=this.root.viewmodel.get(n),void 0===a&&this.getInitialValue&&(a=this.getInitialValue(),void 0!==a&&this.root.viewmodel.set(n,a)),(r=na(t))&&(this.resetValue=a,r.formBindings.push(this))};yf.prototype={handleChange:function(){var t=this;bs.start(this.root),this.attribute.locked=!0,this.root.viewmodel.set(this.keypath,this.getValue()),bs.scheduleTask(function(){return t.attribute.locked=!1}),bs.end()},rebound:function(){var t,e,n;e=this.keypath,n=this.attribute.interpolator.keypath,e!==n&&(N(this.root._twowayBindings[e.str],this),this.keypath=n,t=this.root._twowayBindings[n.str]||(this.root._twowayBindings[n.str]=[]),t.push(this))},unbind:function(){}},yf.extend=function(t){var e,n=this;return e=function(t){yf.call(this,t),this.init&&this.init()},e.prototype=Eo(n.prototype),a(e.prototype,t),e.extend=yf.extend,e};var xf,_f=yf,wf=aa;xf=_f.extend({getInitialValue:function(){return""},getValue:function(){return this.element.node.value},render:function(){var t,e=this.element.node,n=!1;this.rendered=!0,t=this.root.lazy,this.element.lazy===!0?t=!0:this.element.lazy===!1?t=!1:u(this.element.lazy)?(t=!1,n=+this.element.lazy):u(t||"")&&(n=+t,t=!1,this.element.lazy=n),this.handler=n?ia:wf,e.addEventListener("change",wf,!1),t||(e.addEventListener("input",this.handler,!1),e.attachEvent&&e.addEventListener("keyup",this.handler,!1)),e.addEventListener("blur",ra,!1)},unrender:function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",wf,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",ra,!1)}});var kf=xf,Ef=kf.extend({getInitialValue:function(){return this.element.fragment?""+this.element.fragment:""},getValue:function(){return this.element.node.innerHTML}}),Sf=Ef,Cf=oa,Pf={},Af=_f.extend({name:"checked",init:function(){this.siblings=Cf(this.root._guid,"radio",this.element.getAttribute("name")),this.siblings.push(this)},render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},handleChange:function(){bs.start(this.root),this.siblings.forEach(function(t){t.root.viewmodel.set(t.keypath,t.getValue())}),bs.end()},getValue:function(){return this.element.node.checked},unbind:function(){N(this.siblings,this)}}),Of=Af,Tf=_f.extend({name:"name",init:function(){this.siblings=Cf(this.root._guid,"radioname",this.keypath.str),this.siblings.push(this),this.radioName=!0},getInitialValue:function(){return this.element.getAttribute("checked")?this.element.getAttribute("value"):void 0},render:function(){var t=this.element.node;t.name="{{"+this.keypath.str+"}}",t.checked=this.root.viewmodel.get(this.keypath)==this.element.getAttribute("value"),t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){var t=this.element.node;return t._ractive?t._ractive.value:t.value},handleChange:function(){this.element.node.checked&&_f.prototype.handleChange.call(this)},rebound:function(t,e){var n;_f.prototype.rebound.call(this,t,e),(n=this.element.node)&&(n.name="{{"+this.keypath.str+"}}")},unbind:function(){N(this.siblings,this)}}),Mf=Tf,Rf=_f.extend({name:"name",getInitialValue:function(){return this.noInitialValue=!0,[]},init:function(){var t,e;this.checkboxName=!0,this.siblings=Cf(this.root._guid,"checkboxes",this.keypath.str),this.siblings.push(this),this.noInitialValue&&(this.siblings.noInitialValue=!0),this.siblings.noInitialValue&&this.element.getAttribute("checked")&&(t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),t.push(e))},unbind:function(){N(this.siblings,this)},render:function(){var t,e,n=this.element.node;t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),i(t)?this.isChecked=R(t,e):this.isChecked=t==e,n.name="{{"+this.keypath.str+"}}",n.checked=this.isChecked,n.addEventListener("change",wf,!1),n.attachEvent&&n.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},changed:function(){var t=!!this.isChecked;return this.isChecked=this.element.node.checked,this.isChecked===t},handleChange:function(){this.isChecked=this.element.node.checked,_f.prototype.handleChange.call(this)},getValue:function(){return this.siblings.filter(sa).map(ua)}}),jf=Rf,Lf=_f.extend({name:"checked",render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){return this.element.node.checked}}),Df=Lf,Nf=_f.extend({getInitialValue:function(){var t,e,n,a,r=this.element.options;if(void 0===this.element.getAttribute("value")&&(e=t=r.length,t)){for(;e--;)if(r[e].getAttribute("selected")){n=r[e].getAttribute("value"),a=!0;break}if(!a)for(;++ee;e+=1)if(a=t[e],t[e].selected)return r=a._ractive?a._ractive.value:a.value},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))}}),Ff=Nf,If=Ff.extend({getInitialValue:function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},render:function(){var t;this.element.node.addEventListener("change",wf,!1),t=this.root.viewmodel.get(this.keypath),void 0===t&&this.handleChange()},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},setValue:function(){throw Error("TODO not implemented yet")},getValue:function(){var t,e,n,a,r,i;for(t=[],e=this.element.node.options,a=e.length,n=0;a>n;n+=1)r=e[n],r.selected&&(i=r._ractive?r._ractive.value:r.value,t.push(i));return t},handleChange:function(){var t,e,n;return t=this.attribute,e=t.value,n=this.getValue(),void 0!==e&&j(n,e)||Ff.prototype.handleChange.call(this),this},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))},updateModel:function(){void 0!==this.attribute.value&&this.attribute.value.length||this.root.viewmodel.set(this.keypath,this.initialValue)}}),Bf=If,qf=_f.extend({render:function(){this.element.node.addEventListener("change",wf,!1)},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},getValue:function(){return this.element.node.files}}),Uf=qf,Gf=kf.extend({getInitialValue:function(){},getValue:function(){var t=parseFloat(this.element.node.value);return isNaN(t)?void 0:t}}),Vf=pa,zf=la,Wf=fa,Hf=da,Kf=ha,Qf=/^event(?:\.(.+))?/,$f=ba,Yf=ya,Jf={},Xf={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0,touchleave:!0},Zf=_a,td=wa,ed=ka,nd=Ea,ad=Sa,rd=function(t,e,n){this.init(t,e,n)};rd.prototype={bubble:zf,fire:Wf,getAction:Hf,init:Kf,listen:Yf,rebind:Zf,render:td,resolve:ed,unbind:nd,unrender:ad};var id=rd,od=function(t,e){var n,a,r,i,o=[];for(a in e)if(e.hasOwnProperty(a))for(r=a.split("-"),n=r.length;n--;)i=new id(t,r[n],e[a]),o.push(i);return o},sd=function(t,e){var n,a,r,i=this;this.element=t,this.root=n=t.root,a=e.n||e,("string"==typeof a||(r=new rv({template:a,root:n,owner:t}),a=""+r,r.unbind(),""!==a))&&(e.a?this.params=e.a:e.d&&(this.fragment=new rv({template:e.d,root:n,owner:t}),this.params=this.fragment.getArgsList(),this.fragment.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,i.params=this.getArgsList(),i.ready&&i.update()}),this.fn=g("decorators",n,a),this.fn||l(Io(a,"decorator")))};sd.prototype={init:function(){var t,e,n;if(t=this.element.node,this.params?(n=[t].concat(this.params),e=this.fn.apply(this.root,n)):e=this.fn.call(this.root,t),!e||!e.teardown)throw Error("Decorator definition must return an object with a teardown method");this.actual=e,this.ready=!0},update:function(){this.actual.update?this.actual.update.apply(this.root,this.params):(this.actual.teardown(!0),this.init())},rebind:function(t,e){this.fragment&&this.fragment.rebind(t,e)},teardown:function(t){this.torndown=!0,this.ready&&this.actual.teardown(),!t&&this.fragment&&this.fragment.unbind()}};var ud,pd,cd,ld=sd,fd=Ra,dd=ja,hd=Ba,md=function(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})};Xi?(pd={},cd=co("div").style,ud=function(t){var e,n,a;if(t=md(t),!pd[t])if(void 0!==cd[t])pd[t]=t;else for(a=t.charAt(0).toUpperCase()+t.substring(1),e=ro.length;e--;)if(n=ro[e],void 0!==cd[n+a]){pd[t]=n+a;break}return pd[t]}):ud=null;var vd,gd,bd=ud;Xi?(gd=window.getComputedStyle||Po.getComputedStyle,vd=function(t){var e,n,a,r,o;if(e=gd(this.node),"string"==typeof t)return o=e[bd(t)],"0px"===o&&(o=0),o;if(!i(t))throw Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(n={},a=t.length;a--;)r=t[a],o=e[bd(r)],"0px"===o&&(o=0),n[r]=o;return n}):vd=null;var yd=vd,xd=function(t,e){var n;if("string"==typeof t)this.node.style[bd(t)]=e;else for(n in t)t.hasOwnProperty(n)&&(this.node.style[bd(n)]=t[n]);return this},_d=function(t){var e;this.duration=t.duration,this.step=t.step,this.complete=t.complete,"string"==typeof t.easing?(e=t.root.easing[t.easing],e||(v(Io(t.easing,"easing")),e=qa)):e="function"==typeof t.easing?t.easing:qa,this.easing=e,this.start=ns(),this.end=this.start+this.duration,this.running=!0,_s.add(this)};_d.prototype={tick:function(t){var e,n;return this.running?t>this.end?(this.step&&this.step(1),this.complete&&this.complete(1),!1):(e=t-this.start,n=this.easing(e/this.duration),this.step&&this.step(n),!0):!1},stop:function(){this.abort&&this.abort(),this.running=!1}};var wd,kd,Ed,Sd,Cd,Pd,Ad,Od,Td=_d,Md=RegExp("^-(?:"+ro.join("|")+")-"),Rd=function(t){return t.replace(Md,"")},jd=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Ld=function(t){var e;return t?(jd.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},Dd={},Nd={};Xi?(kd=co("div").style,function(){void 0!==kd.transition?(Ed="transition",Sd="transitionend",Cd=!0):void 0!==kd.webkitTransition?(Ed="webkitTransition",Sd="webkitTransitionEnd",Cd=!0):Cd=!1}(),Ed&&(Pd=Ed+"Duration",Ad=Ed+"Property",Od=Ed+"TimingFunction"),wd=function(t,e,n,a,r){setTimeout(function(){var i,o,s,u,p;u=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Ad]=a.map(bd).map(Ld).join(","),t.node.style[Od]=Ld(n.easing||"linear"),t.node.style[Pd]=n.duration/1e3+"s",p=function(e){var n;n=a.indexOf(md(Rd(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},t.node.addEventListener(Sd,p,!1),setTimeout(function(){for(var r,c,l,f,d,h=a.length,v=[];h--;)f=a[h],r=i+f,Cd&&!Nd[r]&&(t.node.style[bd(f)]=e[f],Dd[r]||(c=t.getStyle(f),Dd[r]=t.getStyle(f)!=e[f],Nd[r]=!Dd[r],Nd[r]&&(t.node.style[bd(f)]=c))),(!Cd||Nd[r])&&(void 0===c&&(c=t.getStyle(f)),l=a.indexOf(f),-1===l?m("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):a.splice(l,1),d=/[^\d]*$/.exec(e[f])[0],v.push({name:bd(f),interpolator:qo(parseFloat(c),parseFloat(e[f])),suffix:d}));v.length?new Td({root:t.root,duration:n.duration,easing:md(n.easing||""),step:function(e){var n,a;for(a=v.length;a--;)n=v[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,u()}}):o=!0,a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},0)},n.delay||0)}):wd=null;var Fd,Id,Bd,qd,Ud,Gd=wd;if("undefined"!=typeof document){if(Fd="hidden",Ud={},Fd in document)Bd="";else for(qd=ro.length;qd--;)Id=ro[qd],Fd=Id+"Hidden",Fd in document&&(Bd=Id);void 0!==Bd?(document.addEventListener(Bd+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Ga),document.addEventListener("focusin",Va)):(window.addEventListener("pagehide",Ga),window.addEventListener("blur",Ga),window.addEventListener("pageshow",Va),window.addEventListener("focus",Va)),Ud.hidden=!1)}var Vd,zd,Wd,Hd=Ud;Xi?(zd=window.getComputedStyle||Po.getComputedStyle,Vd=function(t,e,n){var a,r=this;if(4===arguments.length)throw Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(Hd.hidden)return this.setStyle(t,e),Wd||(Wd=ps.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(v('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this);var i=new ps(function(t){var e,i,o,s,u,p,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zd(r.node),u={},p=e.length;p--;)c=e[p],s=o[bd(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bd(c)]=s);return i.length?void Gd(r,a,n,i,t):void t()});return i}):Vd=null;var Kd=Vd,Qd=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),r({},t,e)},$d=za,Yd=function(t,e,n){this.init(t,e,n)};Yd.prototype={init:hd,start:$d,getStyle:yd,setStyle:xd,animateStyle:Kd,processParams:Qd};var Jd,Xd,Zd=Yd,th=Ha;Jd=function(){var t=this.node,e=this.fragment.toString(!1);if(window&&window.appearsToBeIELessEqual8&&(t.type="text/css"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},Xd=function(){this.node.type&&"text/javascript"!==this.node.type||m("Script tag was updated. This does not cause the code to be re-evaluated!",{ractive:this.root}),this.node.text=this.fragment.toString(!1)};var eh=function(){var t,e;return this.template.y?"":(t="<"+this.template.e,t+=this.attributes.map(Xa).join("")+this.conditionalAttributes.map(Xa).join(""),"option"===this.name&&Ya(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Ee(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(t+=this.getAttribute("value")||""),this.fragment&&(e="script"!==this.name&&"style"!==this.name,t+=this.fragment.toString(e)),ic.test(this.template.e)||(t+=""),t)},nh=Za,ah=tr,rh=function(t){this.init(t)};rh.prototype={bubble:Tl,detach:Ml,find:Rl,findAll:jl,findAllComponents:Ll,findComponent:Dl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:fd,rebind:dd,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,uh=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=D(e),void 0!==a&&oh.test(a)&&e.pop(),r=e.reduce(nr,null),r&&(t=e.map(function(t){return t.replace(r,"")}).join("\n")),t},ph=ar,ch=function(t,e){var n;return e?n=t.split("\n").map(function(t,n){return n?e+t:t}).join("\n"):t},lh='Could not find template for partial "%s"',fh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Ap,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Vc.init(this,t),this.keypath||((n=ph(this.root,this.name,e))?(xc.call(this),this.isNamed=!0,this.setTemplate(n)):v(lh,this.name))};fh.prototype={bubble:function(){this.parentFragment.bubble()},detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},firstNode:function(){return this.fragment.firstNode()},findNextNode:function(){return this.parentFragment.findNextNode(this)},getPartialName:function(){return this.isNamed&&this.name?this.name:void 0===this.value?this.name:this.value},getValue:function(){return this.fragment.getValue()},rebind:function(t,e){this.isNamed||Gc.call(this,t,e),this.fragment&&this.fragment.rebind(t,e)},render:function(){return this.docFrag=document.createDocumentFragment(),this.update(),this.rendered=!0,this.docFrag},resolve:Vc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=ph(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=ph(this.root,this.name,this.parentFragment))&&(xc.call(this),this.isNamed=!0),e||v(lh,this.name,{ractive:this.root}),this.value=t,this.setTemplate(e||[]),this.bubble(),this.rendered&&bs.addView(this))},setTemplate:function(t){this.fragment&&(this.fragment.unbind(),this.rendered&&(this.fragmentToUnrender=this.fragment)),this.fragment=new rv({template:t,root:this.root,owner:this,pElement:this.parentFragment.pElement}),this.fragmentToRender=this.fragment},toString:function(t){var e,n,a,r;return e=this.fragment.toString(t),n=this.parentFragment.items[this.index-1],n&&n.type===kp?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||xc.call(this),this.fragment&&this.fragment.unbind()},unrender:function(t){this.rendered&&(this.fragment&&this.fragment.unrender(t),this.rendered=!1)},update:function(){var t,e;this.fragmentToUnrender&&(this.fragmentToUnrender.unrender(!0),this.fragmentToUnrender=null),this.fragmentToRender&&(this.docFrag.appendChild(this.fragmentToRender.render()),this.fragmentToRender=null), - this.rendered&&(t=this.parentFragment.getNode(),e=this.parentFragment.findNextNode(this),t.insertBefore(this.docFrag,e))}};var dh,hh,mh,vh=fh,gh=ur,bh=pr,yh=new is("detach"),xh=cr,_h=lr,wh=fr,kh=dr,Eh=hr,Sh=mr,Ch=function(t,e,n,a){var r=t.root,i=t.keypath;a?r.viewmodel.smartUpdate(i,e,a):r.viewmodel.mark(i)},Ph=[],Ah=["pop","push","reverse","shift","sort","splice","unshift"];Ah.forEach(function(t){var e=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];var r,i,o,s;for(r=bu(this,t,n),i=Array.prototype[t].apply(this,arguments),bs.start(),this._ractive.setting=!0,s=this._ractive.wrappers.length;s--;)o=this._ractive.wrappers[s],bs.addRactive(o.root),Ch(o,this,t,r);return bs.end(),this._ractive.setting=!1,i};So(Ph,t,{value:e})}),dh={},dh.__proto__?(hh=function(t){t.__proto__=Ph},mh=function(t){t.__proto__=Array.prototype}):(hh=function(t){var e,n;for(e=Ah.length;e--;)n=Ah[e],So(t,n,{value:Ph[n],configurable:!0})},mh=function(t){var e;for(e=Ah.length;e--;)delete t[Ah[e]]}),hh.unpatch=mh;var Oh,Th,Mh,Rh=hh;Oh={filter:function(t){return i(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Th(t,e,n)}},Th=function(t,e,n){this.root=t,this.value=e,this.keypath=E(n),e._ractive||(So(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Rh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)},Th.prototype={get:function(){return this.value},teardown:function(){var t,e,n,a,r;if(t=this.value,e=t._ractive,n=e.wrappers,a=e.instances,e.setting)return!1;if(r=n.indexOf(this),-1===r)throw Error(Mh);if(n.splice(r,1),n.length){if(a[this.root._guid]-=1,!a[this.root._guid]){if(r=a.indexOf(this.root),-1===r)throw Error(Mh);a.splice(r,1)}}else delete t._ractive,Rh.unpatch(this.value)}},Mh="Something went wrong in a rather interesting way";var jh,Lh,Dh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),jh={filter:function(t,e,n){var a,r;return e?(e=E(e),(a=n.viewmodel.wrapped[e.parent.str])&&!a.magic?!1:(r=n.viewmodel.get(e.parent),i(r)&&/^[0-9]+$/.test(e.lastKey)?!1:r&&("object"==typeof r||"function"==typeof r))):!1},wrap:function(t,e,n){return new Lh(t,e,n)}},Lh=function(t,e,n){var a,r,i;return n=E(n),this.magic=!0,this.ractive=t,this.keypath=n,this.value=e,this.prop=n.lastKey,a=n.parent,this.obj=a.isRoot?t.viewmodel.data:t.viewmodel.get(a),r=this.originalDescriptor=Object.getOwnPropertyDescriptor(this.obj,this.prop),r&&r.set&&(i=r.set._ractiveWrappers)?void(-1===i.indexOf(this)&&i.push(this)):void vr(this,e,r)},Lh.prototype={get:function(){return this.value},reset:function(t){return this.updating?void 0:(this.updating=!0,this.obj[this.prop]=t,bs.addRactive(this.ractive),this.ractive.viewmodel.mark(this.keypath,{keepExistingWrapper:!0}),this.updating=!1,!0)},set:function(t,e){this.updating||(this.obj[this.prop]||(this.updating=!0,this.obj[this.prop]=Fh(t),this.updating=!1),this.obj[this.prop][t]=e)},teardown:function(){var t,e,n,a,r;return this.updating?!1:(t=Object.getOwnPropertyDescriptor(this.obj,this.prop),e=t&&t.set,void(e&&(a=e._ractiveWrappers,r=a.indexOf(this),-1!==r&&a.splice(r,1),a.length||(n=this.obj[this.prop],Object.defineProperty(this.obj,this.prop,this.originalDescriptor||{writable:!0,enumerable:!0,configurable:!0}),this.obj[this.prop]=n))))}}}catch(Ao){jh=!1}var Ih,Bh,qh=jh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&Dh.filter(t)},wrap:function(t,e,n){return new Bh(t,e,n)}},Bh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=qh.wrap(t,e,n),this.arrayWrapper=Dh.wrap(t,e,n)},Bh.prototype={get:function(){return this.value},teardown:function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},reset:function(t){return this.magicWrapper.reset(t)}});var Uh=Ih,Gh=gr,Vh={},zh=xr,Wh=_r,Hh=Er,Kh=Or,Qh=Tr,$h=function(t,e){this.computation=t,this.viewmodel=t.viewmodel,this.ref=e,this.root=this.viewmodel.ractive,this.parentFragment=this.root.component&&this.root.component.parentFragment};$h.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var Yh=$h,Jh=function(t,e){this.key=t,this.getter=e.getter,this.setter=e.setter,this.hardDeps=e.deps||[],this.softDeps=[],this.unresolvedDeps={},this.depValues={},this._dirty=this._firstRun=!0};Jh.prototype={constructor:Jh,init:function(t){var e,n=this;this.viewmodel=t,this.bypass=!0,e=t.get(this.key),t.clearCache(this.key.str),this.bypass=!1,this.setter&&void 0!==e&&this.set(e),this.hardDeps&&this.hardDeps.forEach(function(e){return t.register(e,n,"computed")})},invalidate:function(){this._dirty=!0},get:function(){var t,e,n=this,a=!1;if(this.getting){var r="The "+this.key.str+" computation indirectly called itself. This probably indicates a bug in the computation. It is commonly caused by `array.sort(...)` - if that's the case, clone the array first with `array.slice().sort(...)`";return h(r),this.value}if(this.getting=!0,this._dirty){if(this._firstRun||!this.hardDeps.length&&!this.softDeps.length?a=!0:[this.hardDeps,this.softDeps].forEach(function(t){var e,r,i;if(!a)for(i=t.length;i--;)if(e=t[i],r=n.viewmodel.get(e),!s(r,n.depValues[e.str]))return n.depValues[e.str]=r,void(a=!0)}),a){this.viewmodel.capture();try{this.value=this.getter()}catch(i){m('Failed to compute "%s"',this.key.str),f(i.stack||i),this.value=void 0}t=this.viewmodel.release(),e=this.updateDependencies(t),e&&[this.hardDeps,this.softDeps].forEach(function(t){t.forEach(function(t){n.depValues[t.str]=n.viewmodel.get(t)})})}this._dirty=!1}return this.getting=this._firstRun=!1,this.value},set:function(t){if(this.setting)return void(this.value=t);if(!this.setter)throw Error("Computed properties without setters are read-only. (This may change in a future version of Ractive!)");this.setter(t)},updateDependencies:function(t){var e,n,a,r,i;for(n=this.softDeps,e=n.length;e--;)a=n[e],-1===t.indexOf(a)&&(r=!0,this.viewmodel.unregister(a,this,"computed"));for(e=t.length;e--;)a=t[e],-1!==n.indexOf(a)||this.hardDeps&&-1!==this.hardDeps.indexOf(a)||(r=!0,Mr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new Yh(this,a.str),t.splice(e,1),this.unresolvedDeps[a.str]=i,bs.addUnresolved(i)):this.viewmodel.register(a,this,"computed"));return r&&(this.softDeps=t.slice()),r}};var Xh=Jh,Zh=Rr,tm={FAILED_LOOKUP:!0},em=jr,nm={},am=Dr,rm=Nr,im=function(t,e){this.localKey=t,this.keypath=e.keypath,this.origin=e.origin,this.deps=[],this.unresolved=[],this.resolved=!1};im.prototype={forceResolution:function(){this.keypath=this.localKey,this.setup()},get:function(t,e){return this.resolved?this.origin.get(this.map(t),e):void 0},getValue:function(){return this.keypath?this.origin.get(this.keypath):void 0},initViewmodel:function(t){this.local=t,this.setup()},map:function(t){return void 0===typeof this.keypath?this.localKey:t.replace(this.localKey,this.keypath)},register:function(t,e,n){this.deps.push({keypath:t,dep:e,group:n}),this.resolved&&this.origin.register(this.map(t),e,n)},resolve:function(t){void 0!==this.keypath&&this.unbind(!0),this.keypath=t,this.setup()},set:function(t,e){this.resolved||this.forceResolution(),this.origin.set(this.map(t),e)},setup:function(){var t=this;void 0!==this.keypath&&(this.resolved=!0,this.deps.length&&(this.deps.forEach(function(e){var n=t.map(e.keypath);if(t.origin.register(n,e.dep,e.group),e.dep.setValue)e.dep.setValue(t.origin.get(n));else{if(!e.dep.invalidate)throw Error("An unexpected error occurred. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");e.dep.invalidate()}}),this.origin.mark(this.keypath)))},setValue:function(t){if(!this.keypath)throw Error("Mapping does not have keypath, cannot set value. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");this.origin.set(this.keypath,t)},unbind:function(t){var e=this;t||delete this.local.mappings[this.localKey],this.resolved&&(this.deps.forEach(function(t){e.origin.unregister(e.map(t.keypath),t.dep,t.group)}),this.tracker&&this.origin.unregister(this.keypath,this.tracker))},unregister:function(t,e,n){var a,r;if(this.resolved){for(a=this.deps,r=a.length;r--;)if(a[r].dep===e){a.splice(r,1);break}this.origin.unregister(this.map(t),e,n)}}};var om=Fr,sm=function(t,e){var n,a,r,i;return n={},a=0,r=t.map(function(t,r){var o,s,u;s=a,u=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&u>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},um=Ir,pm={},cm=Ur,lm=Vr,fm=zr,dm=Wr,hm=Kr,mm={implicit:!0},vm={noCascade:!0},gm=$r,bm=Yr,ym=function(t){var e,n,a=t.adapt,r=t.data,i=t.ractive,o=t.computed,s=t.mappings;this.ractive=i,this.adaptors=a,this.onchange=t.onchange,this.cache={},this.cacheMap=Eo(null),this.deps={computed:Eo(null),"default":Eo(null)},this.depsMap={computed:Eo(null),"default":Eo(null)},this.patternObservers=[],this.specials=Eo(null),this.wrapped=Eo(null),this.computations=Eo(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=Eo(null);for(e in s)this.map(E(e),s[e]);if(r)for(e in r)(n=this.mappings[e])&&void 0===n.getValue()&&n.setValue(r[e]);for(e in o)s&&e in s&&l("Cannot map to a computed property ('%s')",e),this.compute(E(e),o[e]);this.ready=!0};ym.prototype={adapt:Gh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:um,register:cm,release:lm,reset:fm,set:dm,smartUpdate:hm,teardown:gm,unregister:bm};var xm=ym;Xr.prototype={constructor:Xr,begin:function(t){this.inProcess[t._guid]=!0},end:function(t){var e=t.parent;e&&this.inProcess[e._guid]?Zr(this.queue,e).push(t):ti(this,t),delete this.inProcess[t._guid]}};var _m=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Em=new is("construct"),Sm=new is("config"),Cm=new _m("init"),Pm=0,Am=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Om=ii,Tm=ci;ci.prototype={bubble:function(){this.dirty||(this.dirty=!0,bs.addView(this))},update:function(){this.callback(this.fragment.getValue()),this.dirty=!1},rebind:function(t,e){this.fragment.rebind(t,e)},unbind:function(){this.fragment.unbind()}};var Mm=function(t,e,n,r,o){var s,u,p,c,l,f,d={},h={},v={},g=[];for(u=t.parentFragment,p=t.root,o=o||{},a(d,o),o.content=r||[],d[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=u;c;){if(c.owner.type===Rp){l=c.owner.container;break}c=c.parent}return n&&Object.keys(n).forEach(function(e){var a,r,o=n[e];if("string"==typeof o)a=fc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");fi(o)?(v[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?f?s.set(e,t.value):(h[e]=t.value,delete v[e]):f?s.viewmodel.mappings[e].resolve(t):v[e].keypath=t})):r=new Tm(t,o,function(t){f?s.set(e,t):h[e]=t}),g.push(r)}}),s=Eo(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:p.magic||e.defaults.magic,modifyArrays:p.modifyArrays,adapt:p.adapt},{parent:p,component:t,container:l,mappings:v,inlinePartials:d,cssIds:u.cssIds}),f=!0,t.resolvers=g,s},Rm=di,jm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Lm=mi,Dm=vi,Nm=gi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=_i,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:xh,findAll:_h,findAllComponents:wh,findComponent:kh,findNextNode:Eh,firstNode:Sh,init:Lm,rebind:Dm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Gm=Um,Vm=function(t){this.type=Op,this.value=t.template.c};Vm.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createComment(this.value)),this.node},toString:function(){return""},unrender:function(t){t&&this.node.parentNode.removeChild(this.node)}};var zm=Vm,Wm=function(t){var e,n;this.type=Rp,this.container=e=t.parentFragment.root,this.component=n=e.component,this.container=e,this.containerFragment=t.parentFragment,this.parentFragment=n.parentFragment;var a=this.name=t.template.n||"",r=e._inlinePartials[a];r||(m('Could not find template for partial "'+a+'"',{ractive:t.root}),r=[]),this.fragment=new rv({owner:this,root:e.parent,template:r,pElement:this.containerFragment.pElement}),i(n.yielders[a])?n.yielders[a].push(this):n.yielders[a]=[this],bs.scheduleTask(function(){if(n.yielders[a].length>1)throw Error("A component template can only have one {{yield"+(a?" "+a:"")+"}} declaration at a time")})};Wm.prototype={detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},findNextNode:function(){return this.containerFragment.findNextNode(this)},firstNode:function(){return this.fragment.firstNode()},getValue:function(t){return this.fragment.getValue(t)},render:function(){return this.fragment.render()},unbind:function(){this.fragment.unbind()},unrender:function(t){this.fragment.unrender(t),N(this.component.yielders[this.name],this)},rebind:function(t,e){this.fragment.rebind(t,e)},toString:function(){return""+this.fragment}};var Hm=Wm,Km=function(t){this.declaration=t.template.a};Km.prototype={init:ko,render:ko,unrender:ko,teardown:ko,toString:function(){return""}};var Qm=Km,$m=wi,Ym=Ei,Jm=Si,Xm=Ci,Zm=Oi,tv=Mi,ev=function(t){this.init(t)};ev.prototype={bubble:cp,detach:lp,find:fp,findAll:dp,findAllComponents:hp,findComponent:mp,findNextNode:vp,firstNode:gp,getArgsList:hc,getNode:mc,getValue:vc,init:$m,rebind:Ym,registerIndexRef:function(t){var e=this.registeredIndexRefs;-1===e.indexOf(t)&&e.push(t)},render:Jm,toString:Xm,unbind:Zm,unregisterIndexRef:function(t){var e=this.registeredIndexRefs;e.splice(e.indexOf(t),1)},unrender:tv};var nv,av,rv=ev,iv=Ri,ov=["template","partials","components","decorators","events"],sv=new is("reset"),uv=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Ap&&e.getPartialName()===t&&a.push(e),e.fragment&&n(e.fragment.items,a,r),i(e.fragments)?n(e.fragments,a,r):i(e.items)?n(e.items,a,r):e.type===Mp&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pp&&(i(e.attributes)&&n(e.attributes,a,r),i(e.conditionalAttributes)&&n(e.conditionalAttributes,a,r))})}var a,r=[];return n(this.fragment.items,r),this.partials[t]=e,a=bs.start(this,!0),r.forEach(function(e){e.value=void 0,e.setValue(t)}),bs.end(),a},pv=ji,cv=xu("reverse"),lv=Li,fv=xu("shift"),dv=xu("sort"),hv=xu("splice"),mv=Ni,vv=Fi,gv=new is("teardown"),bv=Bi,yv=qi,xv=Ui,_v=new is("unrender"),wv=xu("unshift"),kv=Gi,Ev=new is("update"),Sv=Vi,Cv={add:Zo,animate:Es,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:Ys,observe:lu,observeOnce:fu,off:mu,on:vu,once:gu,pop:_u,push:wu,render:Tu,reset:iv,resetPartial:uv,resetTemplate:pv,reverse:cv,set:lv,shift:fv,sort:dv,splice:hv,subtract:mv,teardown:vv,toggle:bv,toHTML:yv,toHtml:yv,unrender:xv,unshift:wv,update:kv,updateModel:Sv},Pv=function(t,e,n){return n||Wi(t,e)?function(){var n,a="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),a&&(this._super=r),n}:t},Av=Hi,Ov=Yi,Tv=function(t){var e,n,a={};return t&&(e=t._ractive)?(a.ractive=e.root,a.keypath=e.keypath.str,a.index={},(n=Oc(e.proxy.parentFragment))&&(a.index=Oc.resolve(n)),a):a};nv=function(t){return this instanceof nv?void Om(this,t):new nv(t)},av={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Ov},getNodeInfo:{value:Tv},parse:{value:Hu},Promise:{value:ps},svg:{value:ao},magic:{value:eo},VERSION:{value:"0.7.3"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:uo},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Go},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(nv,av),nv.prototype=a(Cv,so),nv.prototype.constructor=nv,nv.defaults=nv.prototype;var Mv="function";if(typeof Date.now!==Mv||typeof String.prototype.trim!==Mv||typeof Object.keys!==Mv||typeof Array.prototype.indexOf!==Mv||typeof Array.prototype.forEach!==Mv||typeof Array.prototype.map!==Mv||typeof Array.prototype.filter!==Mv||"undefined"!=typeof window&&typeof window.addEventListener!==Mv)throw Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");var Rv=nv;return Rv})},{}],206:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.observe("value",function(e,n,a){var r=t.get(),i=r.min,o=r.max,s=Math.clamp(i,o,e);t.animate("percentage",Math.round((s-i)/(o-i)*100))})}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,305],t:7,e:"div",a:{"class":"bar"},f:[{p:[14,3,326],t:7,e:"div",a:{"class":["barFill ",{t:2,r:"state",p:[14,23,346]}],style:["width: ",{t:2,r:"percentage",p:[14,48,371]},"%"]}}," ",{p:[15,3,398],t:7,e:"span",a:{"class":"barText"},f:[{t:16,p:[15,25,420]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],207:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309);e.exports={computed:{clickable:function(){return!this.get("enabled")||this.get("state")&&"toggle"!=this.get("state")?!1:!0},enabled:function(){return this.get("config.status")===n.UI_INTERACTIVE?!0:!1},styles:function(){var t="";if(this.get("class")&&(t+=" "+this.get("class")),this.get("tooltip-side")&&(t=" tooltip-"+this.get("tooltip-side")),this.get("grid")&&(t+=" gridable"),this.get("enabled")){var e=this.get("state"),n=this.get("style");return e?"inactive "+e+" "+t:"active normal "+n+" "+t}return"inactive disabled "+t}},oninit:function(){var t=this;this.on("press",function(e){var n=t.get(),r=n.action,i=n.params;(0,a.act)(t.get("config.ref"),r,i),e.node.blur()})},data:{iconStackToHTML:function(t){var e="",n=t.split(",");if(n.length){e+='';for(var a=n,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var o;if(r){if(i>=a.length)break;o=a[i++]}else{if(i=a.next(),i.done)break;o=i.value}var s=o,u=/([\w\-]+)\s*(\dx)/g,p=u.exec(s),c=p[1],l=p[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,2015],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,2035]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2120]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2071]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2213]}],d:[]}},f:[{t:4,f:[{p:[78,5,2261],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2277]}]}}],n:50,r:"icon",p:[77,3,2243]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2331]}],n:50,r:"icon_stack",p:[80,3,2306]}," ",{t:16,p:[83,3,2379]}]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310}],208:[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":"display"},f:[{t:4,f:[{p:[3,5,44],t:7,e:"header",f:[{p:[4,7,60],t:7,e:"h3",f:[{t:2,r:"title",p:[4,11,64]}]}," ",{t:4,f:[{p:[6,9,110],t:7,e:"div",a:{"class":"buttonRight"},f:[{t:16,n:"button",p:[6,34,135]}]}],n:50,r:"button",p:[5,7,86]}]}],n:50,r:"title",p:[2,3,25]}," ",{p:[10,3,202],t:7,e:"article",f:[{t:16,p:[11,5,217]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],209:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.on("clear",function(){t.set("value",""),t.find("input").focus()})}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,170],t:7,e:"input",a:{type:"text",value:[{t:2,r:"value",p:[12,27,196]}],placeholder:[{t:2,r:"placeholder",p:[12,51,220]}]}}," ",{p:[13,1,240],t:7,e:"ui-button",a:{icon:"refresh"},v:{press:"clear"}}]},e.exports=a.extend(r.exports)},{205:205}],210:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(201),xaccessor:function(t){return t.x},yaccessor:function(t){return t.y}},computed:{size:function(){var t=this.get("points");return t[0].length},scale:function(){var t=this.get("points");return Math.max.apply(Math,Array.map(t,function(t){return Math.max.apply(Math,Array.map(t,function(t){return t.y}))}))},xaxis:function(){var t=this.get("xinc"),e=this.get("size");return Array.from(Array(e).keys()).filter(function(e){return e&&e%t==0})},yaxis:function(){var t=this.get("yinc"),e=this.get("scale");return Array.from(Array(t).keys()).map(function(t){return Math.round(e*(++t/100)*10)})}},oninit:function(){var t=this;this.on({enter:function(t){this.set("selected",t.index.count)},exit:function(t){this.set("selected")}}),window.addEventListener("resize",function(e){t.set("width",t.el.clientWidth)})},onrender:function(){this.set("width",this.el.clientWidth)}}}(r),r.exports.template={v:3,t:[" ",{p:[47,1,1269],t:7,e:"svg",a:{"class":"linegraph",width:"100%",height:[{t:2,x:{r:["height"],s:"_0+10"},p:[47,45,1313]}]},f:[{p:[48,3,1334],t:7,e:"g",a:{transform:"translate(0, 5)"},f:[{t:4,f:[{t:4,f:[{p:[51,9,1504],t:7,e:"line",a:{x1:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,19,1514]}],x2:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,38,1533]}],y1:"0",y2:[{t:2,r:"height",p:[51,64,1559]}],stroke:"darkgray"}}," ",{t:4,f:[{p:[53,11,1635],t:7,e:"text",a:{x:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[53,20,1644]}],y:[{t:2,x:{r:["height"],s:"_0-5"},p:[53,38,1662]}],"text-anchor":"middle",fill:"white"},f:[{t:2,x:{r:["size",".","xfactor"],s:"(_0-_1)*_2"},p:[53,88,1712]}," ",{t:2,r:"xunit",p:[53,113,1737]}]}],n:50,x:{r:["@index"],s:"_0%2==0"},p:[52,9,1600]}],n:52,r:"xaxis",p:[50,7,1479]}," ",{t:4,f:[{p:[57,9,1820],t:7,e:"line",a:{x1:"0",x2:[{t:2,r:"width",p:[57,26,1837]}],y1:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,41,1852]}],y2:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,60,1871]}],stroke:"darkgray"}}," ",{p:[58,9,1915],t:7,e:"text",a:{x:"0",y:[{t:2,x:{r:["yscale","."],s:"_0(_1)-5"},p:[58,24,1930]}],"text-anchor":"begin",fill:"white"},f:[{t:2,x:{r:[".","yfactor"],s:"_0*_1"},p:[58,76,1982]}," ",{t:2,r:"yunit",p:[58,92,1998]}]}],n:52,r:"yaxis",p:[56,7,1795]}," ",{t:4,f:[{p:[61,9,2071],t:7,e:"path",a:{d:[{t:2,x:{r:["area.path"],s:"_0.print()"},p:[61,18,2080]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[61,47,2109]}],opacity:"0.1"}}],n:52,i:"curve",r:"curves",p:[60,7,2039]}," ",{t:4,f:[{p:[64,9,2200],t:7,e:"path",a:{d:[{t:2,x:{r:["line.path"],s:"_0.print()"},p:[64,18,2209]}],stroke:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[64,49,2240]}],fill:"none"}}],n:52,i:"curve",r:"curves",p:[63,7,2168]}," ",{t:4,f:[{t:4,f:[{p:[68,11,2375],t:7,e:"circle",a:{transform:["translate(",{t:2,r:".",p:[68,40,2404]},")"],r:[{t:2,x:{r:["selected","count"],s:"_0==_1?10:4"},p:[68,51,2415]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[68,89,2453]}]},v:{mouseenter:"enter",mouseleave:"exit"}}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[67,9,2329]}],n:52,i:"curve",r:"curves",p:[66,7,2297]}," ",{t:4,f:[{t:4,f:[{t:4,f:[{p:[74,13,2678],t:7,e:"text",a:{transform:["translate(",{t:2,r:".",p:[74,40,2705]},") ",{t:2,x:{r:["count","size"],s:'_0<=_1/2?"translate(15, 4)":"translate(-15, 4)"'},p:[74,47,2712]}],"text-anchor":[{t:2,x:{r:["count","size"],s:'_0<=_1/2?"start":"end"'},p:[74,126,2791]}],fill:"white"},f:[{t:2,x:{r:["count","item","yfactor"],s:"_1[_0].y*_2"},p:[75,15,2861]}," ",{t:2,r:"yunit",p:[75,43,2889]}," @ ",{t:2,x:{r:["size","count","item","xfactor"],s:"(_0-_2[_1].x)*_3"},p:[75,55,2901]}," ",{t:2,r:"xunit",p:[75,92,2938]}]}],n:50,x:{r:["selected","count"],s:"_0==_1"},p:[73,11,2638]}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[72,9,2592]}],n:52,i:"curve",r:"curves",p:[71,7,2560]}," ",{t:4,f:[{p:[81,9,3063],t:7,e:"g",a:{transform:["translate(",{t:2,x:{r:["width","curves.length","@index"],s:"(_0/(_1+1))*(_2+1)"},p:[81,33,3087]},", 10)"]},f:[{p:[82,11,3154],t:7,e:"circle",a:{r:"4",fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[82,31,3174]}]}}," ",{p:[83,11,3206],t:7,e:"text",a:{x:"8",y:"4",fill:"white"},f:[{t:2,rx:{r:"legend",m:[{t:30,n:"curve"}]},p:[83,42,3237]}]}]}],n:52,i:"curve",r:"curves",p:[80,7,3031]}],x:{r:["graph","points","xaccessor","yaccessor","width","height"],s:"_0({data:_1,xaccessor:_2,yaccessor:_3,width:_4,height:_5})"},p:[49,5,1371]}]}]}]},e.exports=a.extend(r.exports)},{201:201,205:205}],211:[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":"notice"},f:[{t:16,p:[2,3,24]}]}]},e.exports=a.extend(r.exports)},{205:205}],212:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);e.exports={oninit:function(){var t=this,e=a.resize.bind(this),r=function(){return t.set({resize:!1,x:null,y:null})};this.observe("config.fancy",function(a,i,o){(0,n.winset)(t.get("config.window"),"can-resize",!a),a?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r))}),this.on("resize",function(){return t.toggle("resize")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[28,3,766],t:7,e:"div",a:{"class":"resize"},v:{mousedown:"resize"}}],n:50,r:"config.fancy",p:[27,1,742]}]},e.exports=a.extend(r.exports)},{205:205,309:309,311:311}],213:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"section",a:{"class":[{t:4,f:["candystripe"],r:"candystripe",p:[1,17,16]}]},f:[{t:4,f:[{p:[3,5,84],t:7,e:"span",a:{"class":"label",style:[{t:4,f:["color:",{t:2,r:"labelcolor",p:[3,53,132]}],r:"labelcolor",p:[3,32,111]}]},f:[{t:2,r:"label",p:[3,84,163]},":"]}],n:50,r:"label",p:[2,3,65]}," ",{t:4,f:[{t:16,p:[6,5,215]}],n:50,r:"nowrap",p:[5,3,195]},{t:4,n:51,f:[{p:[8,5,242],t:7,e:"div",a:{"class":"content",style:[{t:4,f:["float:right;"],r:"right",p:[8,33,270]}]},f:[{t:16,p:[9,7,312]}]}],r:"nowrap"}]}]},e.exports=a.extend(r.exports)},{205:205}],214:[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":"subdisplay"},f:[{t:4,f:[{p:[3,5,47],t:7,e:"header",f:[{p:[4,7,63],t:7,e:"h4",f:[{t:2,r:"title",p:[4,11,67]}]}," ",{t:4,f:[{t:16,n:"button",p:[5,21,103]}],n:50,r:"button",p:[5,7,89]}]}],n:50,r:"title",p:[2,3,28]}," ",{p:[8,3,156],t:7,e:"article",f:[{t:16,p:[9,5,171]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],215:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.set("active",this.findComponent("tab").get("name")),this.on("switch",function(e){t.set("active",e.node.textContent.trim())}),this.observe("active",function(e,n,a){for(var r=t.findAllComponents("tab"),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;u.set("shown",u.get("name")===e)}})}}}(r),r.exports.template={v:3,t:[" "," ",{p:[20,1,524],t:7,e:"header",f:[{t:4,f:[{p:[22,5,556],t:7,e:"ui-button",a:{pane:[{t:2,r:".",p:[22,22,573]}]},v:{press:"switch"},f:[{t:2,r:".",p:[22,47,598]}]}],n:52,r:"tabs",p:[21,3,536]}]}," ",{p:[25,1,641],t:7,e:"ui-display",f:[{t:8,r:"content",p:[26,3,657]}]}]},r.exports.components=r.exports.components||{};var i={tab:t(216)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,216:216}],216:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:16,p:[2,3,17]}],n:50,r:"shown",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],217:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309),r=t(311);e.exports={computed:{visualStatus:function(){switch(this.get("config.status")){case n.UI_INTERACTIVE:return"good";case n.UI_UPDATE:return"average";case n.UI_DISABLED:return"bad";default:return"bad"}}},oninit:function(){var t=this,e=r.drag.bind(this),n=function(e){return t.set({drag:!1,x:null,y:null})};this.observe("config.fancy",function(r,i,o){(0,a.winset)(t.get("config.window"),"titlebar",!r&&t.get("config.titlebar")),r?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n))}),this.on({drag:function(){this.toggle("drag")},close:function(){(0,a.winset)(this.get("config.window"),"is-visible",!1),window.location.href=(0,a.href)({command:"uiclose "+this.get("config.ref")},"winset")},minimize:function(){(0,a.winset)(this.get("config.window"),"is-minimized",!0)}})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[50,3,1440],t:7,e:"header",a:{"class":"titlebar"},v:{mousedown:"drag"},f:[{p:[51,5,1491],t:7,e:"i",a:{"class":["statusicon fa fa-eye fa-2x ",{t:2,r:"visualStatus",p:[51,42,1528]}]}}," ",{p:[52,5,1556],t:7,e:"span",a:{"class":"title"},f:[{t:16,p:[52,25,1576]}]}," ",{t:4,f:[{p:[54,7,1626],t:7,e:"i",a:{"class":"minimize fa fa-minus fa-2x"},v:{click:"minimize"}}," ",{p:[55,7,1696],t:7,e:"i",a:{"class":"close fa fa-close fa-2x"},v:{click:"close"}}],n:50,r:"config.fancy",p:[53,5,1598]}]}],n:50,r:"config.titlebar",p:[49,1,1413]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310,311:311}],218:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";var e=[11,10,9,8];t.exports={data:{userAgent:navigator.userAgent},computed:{ie:function(){if(document.documentMode)return document.documentMode;for(var t in e){var n=document.createElement("div");if(n.innerHTML="",n.getElementsByTagName("span").length)return t}}},oninit:function(){var t=this;this.on("debug",function(){return t.toggle("debug")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[27,3,662],t:7,e:"ui-notice",f:[{p:[28,5,679],t:7,e:"span",f:["You have an old (IE",{t:2,r:"ie",p:[28,30,704]},"), end-of-life (click 'EOL Info' for more information) version of Internet Explorer installed."]},{p:[28,137,811],t:7,e:"br"}," ",{p:[29,5,822],t:7,e:"span",f:["To upgrade, click 'Upgrade IE' to download IE11 from Microsoft."]},{p:[29,81,898],t:7,e:"br"}," ",{p:[30,5,909],t:7,e:"span",f:["If you are unable to upgrade directly, click 'IE VMs' to download a VM with IE11 or Edge from Microsoft."]},{p:[30,122,1026],t:7,e:"br"}," ",{p:[31,5,1037],t:7,e:"span",f:["Otherwise, click 'No Frills' below to disable potentially incompatible features (and this message)."]}," ",{p:[32,5,1155],t:7,e:"hr"}," ",{p:[33,5,1166],t:7,e:"ui-button",a:{icon:"close",action:"tgui:nofrills"},f:["No Frills"]}," ",{p:[34,5,1240],t:7,e:"ui-button",a:{icon:"internet-explorer",action:"tgui:link",params:'{"url": "http://windows.microsoft.com/en-us/internet-explorer/download-ie"}'},f:["Upgrade IE"]}," ",{p:[36,5,1416],t:7,e:"ui-button",a:{icon:"edge",action:"tgui:link",params:'{"url": "https://dev.windows.com/en-us/microsoft-edge/tools/vms"}'},f:["IE VMs"]}," ",{p:[38,5,1565],t:7,e:"ui-button",a:{icon:"info",action:"tgui:link",params:'{"url": "https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer"}'},f:["EOL Info"]}," ",{p:[40,5,1738],t:7,e:"ui-button",a:{icon:"bug"},v:{press:"debug"},f:["Debug Info"]}," ",{t:4,f:[{p:[42,7,1826],t:7,e:"hr"}," ",{p:[43,7,1839],t:7,e:"span",f:["Detected: IE",{t:2,r:"ie",p:[43,25,1857]}]},{p:[43,38,1870],t:7,e:"br"}," ",{p:[44,7,1883],t:7,e:"span",f:["User Agent: ",{t:2,r:"userAgent",p:[44,25,1901]}]}],n:50,r:"debug",p:[41,5,1805]}]}],n:50,x:{r:["config.fancy","ie"],s:"_0&&_1&&_1<11"},p:[26,1,621]}]},e.exports=a.extend(r.exports)},{205:205}],219:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,267],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,312],t:7,e:"ui-section",a:{ - label:"Interface Lock"},f:[{p:[10,7,355],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,372]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,423]}]}]}],n:50,r:"data.siliconUser",p:[8,3,282]},{t:4,n:51,f:[{p:[13,5,514],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,540]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,625],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,719],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,762],t:7,e:"ui-section",f:[{p:[21,11,786],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,803]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,873]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,937]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1045],t:7,e:"ui-section",f:[{p:[25,11,1069],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1086]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1154]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1236]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1322],t:7,e:"br"}," ",{p:[29,9,1337],t:7,e:"ui-section",f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1494],t:7,e:"ui-section",f:[{p:[33,11,1518],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1657],t:7,e:"ui-section",f:[{p:[36,11,1681],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1810],t:7,e:"ui-section",f:[{p:[39,11,1834],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,680]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,2032],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2089],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2146],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2204],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,636]}]},r.exports.components=r.exports.components||{};var i={vents:t(225),modes:t(221),thresholds:t(224),status:t(223),scrubbers:t(222)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221,222:222,223:223,224:224,225:225}],220:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-button",a:{icon:"arrow-left",action:"tgui:view",params:'{"screen": "home"}'},f:["Back"]}]},e.exports=a.extend(r.exports)},{205:205}],221:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,115],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,168],t:7,e:"ui-section",f:[{p:[9,7,188],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,205]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,267]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,361]},"}"]},f:[{t:2,r:"name",p:[11,51,372]}]}]}],n:52,r:"data.modes",p:[7,3,142]}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],222:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,117],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,174],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,196]}]},f:[{p:[9,7,219],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,255],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,272]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,314]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,391]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,411]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,425]}]}]}," ",{p:[13,7,490],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,525],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[14,26,542]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[14,71,587]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[15,50,670]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[15,70,690]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[15,88,708]}]}]}," ",{p:[17,7,790],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[18,9,826],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[18,26,843]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[18,70,887]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[19,48,968]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[19,68,988]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[19,84,1004]}]}]}," ",{p:[21,7,1080],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[22,9,1118],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_co2"],s:'_0?"check-square-o":"square-o"'},p:[22,26,1135]}],style:[{t:2,x:{r:["filter_co2"],s:'_0?"selected":null'},p:[22,81,1190]}],action:"co2_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[23,50,1276]},'", "val": ',{t:2,x:{r:["filter_co2"],s:"+!_0"},p:[23,70,1296]},"}"]},f:["CO2"]}," ",{p:[24,9,1340],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_n2o"],s:'_0?"check-square-o":"square-o"'},p:[24,26,1357]}],style:[{t:2,x:{r:["filter_n2o"],s:'_0?"selected":null'},p:[24,81,1412]}],action:"n2o_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,50,1498]},'", "val": ',{t:2,x:{r:["filter_n2o"],s:"+!_0"},p:[25,70,1518]},"}"]},f:["N2O"]}," ",{p:[26,9,1562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_toxins"],s:'_0?"check-square-o":"square-o"'},p:[26,26,1579]}],style:[{t:2,x:{r:["filter_toxins"],s:'_0?"selected":null'},p:[26,84,1637]}],action:"tox_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,50,1726]},'", "val": ',{t:2,x:{r:["filter_toxins"],s:"+!_0"},p:[27,70,1746]},"}"]},f:["Plasma"]}," ",{p:[28,3,1790],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_bz"],s:'_0?"check-square-o":"square-o"'},p:[28,20,1807]}],style:[{t:2,x:{r:["filter_bz"],s:'_0?"selected":null'},p:[28,74,1861]}],action:"bz_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[29,43,1939]},'", "val": ',{t:2,x:{r:["filter_bz"],s:"+!_0"},p:[29,63,1959]},"}"]},f:["BZ"]}," ",{p:[30,3,1995],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_freon"],s:'_0?"check-square-o":"square-o"'},p:[30,20,2012]}],style:[{t:2,x:{r:["filter_freon"],s:'_0?"selected":null'},p:[30,77,2069]}],action:"freon_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[31,46,2153]},'", "val": ',{t:2,x:{r:["filter_freon"],s:"+!_0"},p:[31,66,2173]},"}"]},f:["Freon"]}," ",{p:[32,3,2215],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"check-square-o":"square-o"'},p:[32,20,2232]}],style:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"selected":null'},p:[32,83,2295]}],action:"water_vapor_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,52,2391]},'", "val": ',{t:2,x:{r:["filter_water_vapor"],s:"+!_0"},p:[33,72,2411]},"}"]},f:["Water Vapor"]}]}]}],n:52,r:"data.scrubbers",p:[7,3,144]},{t:4,n:51,f:[{p:[37,5,2522],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],223:[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:"Air Status"},f:[{t:4,f:[{t:4,f:[{p:[4,7,110],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,129]}]},f:[{p:[5,6,146],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,159]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,237]},{t:2,r:"unit",p:[6,29,261]}]}]}],n:52,r:"adata.environment_data",p:[3,5,70]}," ",{p:[10,5,322],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,363],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,376]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,475]}]}]}," ",{p:[15,5,619],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,659],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,672]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,744]}]}]}],n:50,r:"data.environment_data",p:[2,3,35]},{t:4,n:51,f:[{p:[21,5,876],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,912],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1040],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1076],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,1014]}]}]},e.exports=a.extend(r.exports)},{205:205}],224:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" th, td {\r\n padding-right: 16px;\r\n text-align: left;\r\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,116],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,143],t:7,e:"table",f:[{p:[8,5,156],t:7,e:"thead",f:[{p:[8,12,163],t:7,e:"tr",f:[{p:[9,7,175],t:7,e:"th"}," ",{p:[10,7,192],t:7,e:"th",f:[{p:[10,11,196],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,238],t:7,e:"th",f:[{p:[11,11,242],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,288],t:7,e:"th",f:[{p:[12,11,292],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,338],t:7,e:"th",f:[{p:[13,11,342],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,401],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,441],t:7,e:"tr",f:[{p:[17,9,455],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,459]}]}," ",{t:4,f:[{p:[18,27,502],t:7,e:"td",f:[{p:[19,11,518],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,565]},'", "var": "',{t:2,r:"val",p:[19,76,583]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,594]}]}]}],n:52,r:"settings",p:[18,9,484]}]}],n:52,r:"data.thresholds",p:[16,7,416]}]}," ",{p:[23,3,697],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],225:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,113],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,166],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,188]}]},f:[{p:[9,7,211],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,264]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,306]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,383]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,403]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,417]}]}]}," ",{p:[13,7,482],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,517],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,523]}]}]}," ",{p:[16,7,616],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,665],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,698]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,779]},'", "val": ',{t:2,r:"checks",p:[18,68,799]},"}"]},f:["Internal"]}," ",{p:[19,9,842],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,876]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,957]},'", "val": ',{t:2,r:"checks",p:[20,68,977]},"}"]},f:["External"]}]}," ",{p:[22,7,1039],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,9,1085],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[24,31,1172]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[24,45,1186]}]}," ",{p:[25,9,1232],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[25,42,1265]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[26,31,1365]},'"}']},f:["Reset"]}]}]}],n:52,r:"data.vents",p:[7,3,140]},{t:4,n:51,f:[{p:[30,5,1457],t:7,e:"span",a:{"class":"bad"},f:["Error: No vents connected."]}],r:"data.vents"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],226:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" table {\r\n width: 100%;\r\n border-spacing: 2px;\r\n }\r\n th {\r\n text-align: left;\r\n }\r\n td {\r\n vertical-align: top;\r\n }\r\n td .button {\r\n margin-top: 4px\r\n }",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",f:[{p:[3,5,34],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,51]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,111]}," Required"]}," ",{p:[4,5,172],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,251],t:7,e:"hr"}," ",{p:[7,3,260],t:7,e:"table",f:[{p:[8,3,271],t:7,e:"thead",f:[{p:[9,4,283],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,315],t:7,e:"th",f:[{p:[10,9,319],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,348]}]}]}],n:52,r:"data.regions",p:[9,8,287]}]}]}," ",{p:[13,3,403],t:7,e:"tbody",f:[{p:[14,4,415],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,447],t:7,e:"td",f:[{t:4,f:[{p:[16,11,481],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,498]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,546]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,621]},'"}']},f:[{t:2,r:"name",p:[17,56,631]}]}," ",{p:[18,9,661],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,451]}]}],n:52,r:"data.regions",p:[14,8,419]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{205:205}],227:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}},computed:{malfAction:function(){switch(this.get("data.malfStatus")){case 1:return"hack";case 2:return"occupy";case 3:return"deoccupy"}},malfButton:function(){switch(this.get("data.malfStatus")){case 1:return"Override Programming";case 2:case 4:return"Shunt Core Process";case 3:return"Return to Main Core"}},malfIcon:function(){switch(this.get("data.malfStatus")){case 1:return"terminal";case 2:case 4:return"caret-square-o-down";case 3:return"caret-square-o-left"}},powerCellStatusState:function(){var t=this.get("data.powerCellStatus");return t>50?"good":t>25?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[46,2,1206],t:7,e:"ui-notice",f:[{p:[47,3,1221],t:7,e:"b",f:[{p:[47,6,1224],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1255],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1327],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1355]}," seconds... ",{p:[50,3,1387],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1451],t:7,e:"br"},{p:[50,71,1455],t:7,e:"br"},{p:[50,75,1459],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1182]},{t:4,n:51,f:[{p:[53,2,1491],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1535],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1576],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1593]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1644]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1507]},{t:4,n:51,f:[{p:[59,3,1732],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1758]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1846],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1884],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1967],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1980]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,2019]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1921]},{t:4,n:51,f:[{p:[67,5,2079],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2096]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2149]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2212]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2293],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2345]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2381]}]}]}," ",{p:[74,4,2490],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2567],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2600]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2633]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2659]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2525]},{t:4,n:51,f:[{p:[78,5,2724],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2830],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2913],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2926]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2964]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2868]},{t:4,n:51,f:[{p:[86,4,3026],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,3043]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3093]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3156]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3236],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3249]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3286]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2790]}]}," ",{p:[94,2,3445],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3517],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3536]}],nowrap:0},f:[{p:[97,5,3560],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.powerChannels"],s:"Math.round(_1[_0].powerLoad)"},p:[97,26,3581]}," W"]}," ",{p:[98,5,3648],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3669],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3682]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3716]}]}]}," ",{p:[99,5,3765],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3787],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3793]}]},"]"]}," ",{p:[100,5,3863],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3956],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3989]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,4071]}]},f:["Auto"]}," ",{p:[104,6,4116],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4151]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4218]}]},f:["On"]}," ",{p:[106,6,4259],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4290]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4357]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3909]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3485]}," ",{p:[112,4,4453],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4488],t:7,e:"span",a:{"class":"bold"},f:[{t:2,x:{r:["adata.totalLoad"],s:"Math.round(_0)"},p:[113,22,4507]}," W"]}]}]}," ",{t:4,f:[{p:[117,4,4613],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4654],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4755],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4772]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4793]}],action:[{t:2,r:"malfAction",p:[120,97,4847]}]},f:[{t:2,r:"malfButton",p:[120,113,4863]}]}],n:50,r:"data.malfStatus",p:[119,3,4726]}]}],n:50,r:"data.siliconUser",p:[116,2,4584]}," ",{p:[124,2,4931],t:7,e:"ui-notice",f:[{p:[125,4,4947],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[127,5,5028],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[127,11,5034]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,3,4982]},{t:4,n:51,f:[{p:[129,5,5106],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[129,22,5123]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[129,79,5180]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{205:205}],228:[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:"Alarms"},f:[{p:[2,3,31],t:7,e:"ul",f:[{t:4,f:[{p:[4,7,72],t:7,e:"li",f:[{p:[4,11,76],t:7,e:"ui-button",a:{icon:"close",style:"danger",action:"clear",params:['{"zone": "',{t:2,r:".",p:[4,83,148]},'"}']},f:[{t:2,r:".",p:[4,92,157]}]}]}],n:52,r:"data.priority",p:[3,5,41]},{t:4,n:51,f:[{p:[6,7,201],t:7,e:"li",f:[{p:[6,11,205],t:7,e:"span",a:{"class":"good"},f:["No Priority Alerts"]}]}],r:"data.priority"}," ",{t:4,f:[{p:[9,7,303],t:7,e:"li",f:[{p:[9,11,307],t:7,e:"ui-button",a:{icon:"close",style:"caution",action:"clear",params:['{"zone": "',{t:2,r:".",p:[9,84,380]},'"}']},f:[{t:2,r:".",p:[9,93,389]}]}]}],n:52,r:"data.minor",p:[8,5,275]},{t:4,n:51,f:[{p:[11,7,433],t:7,e:"li",f:[{p:[11,11,437],t:7,e:"span",a:{"class":"good"},f:["No Minor Alerts"]}]}],r:"data.minor"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],229:[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:[{t:2,x:{r:["data.tank","data.sensors.0.long_name"],s:"_0?_1:null"},p:[1,20,19]}]},f:[{t:4,f:[{p:[3,5,102],t:7,e:"ui-subdisplay",a:{title:[{t:2,x:{r:["data.tank","long_name"],s:"!_0?_1:null"},p:[3,27,124]}]},f:[{p:[4,7,167],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[5,3,200],t:7,e:"span",f:[{t:2,x:{r:["pressure"],s:"Math.fixed(_0,2)"},p:[5,9,206]}," kPa"]}]}," ",{t:4,f:[{p:[8,9,302],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[9,11,346],t:7,e:"span",f:[{t:2,x:{r:["temperature"],s:"Math.fixed(_0,2)"},p:[9,17,352]}," K"]}]}],n:50,r:"temperature",p:[7,7,273]}," ",{t:4,f:[{p:[13,9,462],t:7,e:"ui-section",a:{label:[{t:2,r:"id",p:[13,28,481]}]},f:[{p:[14,5,495],t:7,e:"span",f:[{t:2,x:{r:["."],s:"Math.fixed(_0,2)"},p:[14,11,501]},"%"]}]}],n:52,i:"id",r:"gases",p:[12,4,434]}]}],n:52,r:"adata.sensors",p:[2,3,73]}]}," ",{t:4,f:[{p:{button:[{p:[23,5,704],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[25,5,792],t:7,e:"ui-section",a:{label:"Input Injector"},f:[{p:[26,7,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputting"],s:'_0?"power-off":"close"'},p:[26,24,852]}],style:[{t:2,x:{r:["data.inputting"],s:'_0?"selected":null'},p:[26,75,903]}],action:"input"},f:[{t:2,x:{r:["data.inputting"],s:'_0?"Injecting":"Off"'},p:[27,9,968]}]}]}," ",{p:[29,5,1044],t:7,e:"ui-section",a:{label:"Input Rate"},f:[{p:[30,7,1083],t:7,e:"span",f:[{t:2,x:{r:["adata.inputRate"],s:"Math.fixed(_0)"},p:[30,13,1089]}," L/s"]}]}," ",{p:[32,5,1156],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1201],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1218]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1270]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1337]}]}]}," ",{p:[36,5,1412],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1456],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1499]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{205:205}],230:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,518],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,524]}," kPa"]}]}," ",{p:[11,3,586],t:7,e:"ui-section",a:{label:"Filter"},f:[{p:[12,5,619],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0==""?"selected":null'},p:[12,23,637]}],action:"filter",params:'{"mode": ""}'},f:["Nothing"]}," ",{p:[14,5,755],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="plasma"?"selected":null'},p:[14,23,773]}],action:"filter",params:'{"mode": "plasma"}'},f:["Plasma"]}," ",{p:[16,5,902],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="o2"?"selected":null'},p:[16,23,920]}],action:"filter",params:'{"mode": "o2"}'},f:["O2"]}," ",{p:[18,5,1037],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2"?"selected":null'},p:[18,23,1055]}],action:"filter",params:'{"mode": "n2"}'},f:["N2"]}," ",{p:[20,5,1172],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="co2"?"selected":null'},p:[20,23,1190]}],action:"filter",params:'{"mode": "co2"}'},f:["CO2"]}," ",{p:[22,5,1310],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2o"?"selected":null'},p:[22,23,1328]}],action:"filter",params:'{"mode": "n2o"}'},f:["N2O"]}," ",{p:[24,2,1445],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="bz"?"selected":null'},p:[24,20,1463]}],action:"filter",params:'{"mode": "bz"}'},f:["BZ"]}," ",{p:[26,2,1578],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="freon"?"selected":null'},p:[26,20,1596]}],action:"filter",params:'{"mode": "freon"}'},f:["Freon"]}," ",{p:[28,2,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="water_vapor"?"selected":null'},p:[28,20,1738]}],action:"filter",params:'{"mode": "water_vapor"}'},f:["Water Vapor"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],231:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,522],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,528]}," kPa"]}]}," ",{p:[11,3,594],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,627],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,666]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,783],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,817]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,935],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,968]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1087],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1125]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1243],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1249]},"%"]}]}," ",{p:[22,3,1319],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1352],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1391]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1508],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1542]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1660],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1693]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1812],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1850]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1968],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1974]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],232:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{t:4,f:[{p:[7,5,250],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,292],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,381],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,411]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,525],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,531]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,223]},{t:4,n:51,f:[{ --p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[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:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[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.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"Centcom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to Centcom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[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:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[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:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[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:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[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-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[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:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" -+p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[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:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[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.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"CentCom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to CentCom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[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:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[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:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[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:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[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-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[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:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" - },f:["ve"]}," ",{p:[26,3,1920],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[26,22,1939]}],action:"odr"},f:["odr"]}," ",{p:[27,3,2021],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[27,22,2040]}],action:"neit"},f:["neit"]}," ",{p:[28,3,2124],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[28,22,2143]}],action:"ci"},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,5,3909],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3941],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3959]}],action:"search"},f:["search"]}]}]}]},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:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.emagged"],s:'_0?"un":null'},p:[3,20,87]},"lock"],state:[{t:2,x:{r:["data.can_toggle_safety"],s:'_0?null:"disabled"'},p:[3,63,130]}],action:"safety"},f:["Safeties: ",{p:[4,14,209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.emagged"],s:'_0?"bad":"good"'},p:[4,27,222]}]},f:[{t:2,x:{r:["data.emagged"],s:'_0?"OFF":"ON"'},p:[4,62,257]}]}]}]},t:7,e:"ui-display",a:{title:"Default Programs",button:0},f:[" ",{t:4,f:[{p:[8,2,363],t:7,e:"ui-button",a:{action:"load_program",params:['{"type": ',{t:2,r:"type",p:[8,52,413]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[8,70,431]}]},f:[{t:2,r:"name",p:[9,5,483]}," "]},{p:[10,14,506],t:7,e:"br"}],n:52,r:"data.default_programs",p:[7,2,329]}]}," ",{t:4,f:[{p:[14,2,562],t:7,e:"ui-display",a:{title:"Dangerous Programs"},f:[{t:4,f:[{p:[16,4,638],t:7,e:"ui-button",a:{icon:"warning",action:"load_program",params:['{"type": ',{t:2,r:"type",p:[16,69,703]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[16,87,721]}]},f:[{t:2,r:"name",p:[17,5,773]}," "]},{p:[18,16,798],t:7,e:"br"}],n:52,r:"data.emag_programs",p:[15,3,605]}]}],n:50,r:"data.emagged",p:[13,1,539]}]},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:{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}],258:[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}],259:[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"]}," ",{p:[13,5,572],t:7,e:"ui-button",a:{icon:"warning",state:"null",action:"bsa_unlock"},f:["Bluespace Artillery Unlock"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},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:"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}],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:"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}],262:[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}],263:[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}],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-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}],265:[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}],266:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],267:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[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", -+},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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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"}," ",{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],278:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],279:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{integState:function(t){var e=100;return t==e?"good":t>e/2?"average":"bad"},bigState:function(t,e,n){return charge>n?"bad":t>e?"average":"good"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[23,1,421],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[27,2,462],t:7,e:"ui-button",a:{action:"PRG_clear"},f:["Back to Menu"]},{p:[27,56,516],t:7,e:"br"}," ",{p:[28,3,524],t:7,e:"ui-display",a:{title:"Supermatter Status:"},f:[{p:[29,3,568],t:7,e:"ui-section",a:{label:"Core Integrity"},f:[{p:[30,5,609],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"adata.SM_integrity",p:[30,38,642]}],state:[{t:2,x:{r:["integState","adata.SM_integrity"],s:"_0(_1)"},p:[30,69,673]}]},f:[{t:2,r:"data.SM_integrity",p:[30,105,709]},"%"]}]}," ",{p:[32,3,761],t:7,e:"ui-section",a:{label:"Relative EER"},f:[{p:[33,5,800],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_power"],s:"_0(_1,150,300)"},p:[33,18,813]}]},f:[{t:2,r:"data.SM_power",p:[33,55,850]}," MeV/cm3"]}]}," ",{p:[35,3,903],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[36,5,941],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambienttemp"],s:"_0(_1,4000,5000)"},p:[36,18,954]}]},f:[{t:2,r:"data.SM_ambienttemp",p:[36,63,999]}," K"]}]}," ",{p:[38,3,1052],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[39,5,1087],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambientpressure"],s:"_0(_1,5000,10000)"},p:[39,18,1100]}]},f:[{t:2,r:"data.SM_ambientpressure",p:[39,68,1150]}," kPa"]}]}]}," ",{p:[42,3,1227],t:7,e:"hr"},{p:[42,7,1231],t:7,e:"br"}," ",{p:[43,3,1239],t:7,e:"ui-display",a:{title:"Gas Composition:"},f:[{t:4,f:[{p:[45,5,1307],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[45,24,1326]}]},f:[{t:2,r:"amount",p:[46,6,1343]}," %"]}],n:52,r:"data.gases",p:[44,4,1281]}]}],n:50,r:"data.active",p:[26,1,440]},{t:4,n:51,f:[{p:[51,2,1418],t:7,e:"ui-button",a:{action:"PRG_refresh"},f:["Refresh"]},{p:[51,53,1469],t:7,e:"br"}," ",{p:[52,2,1476],t:7,e:"ui-display",a:{title:"Detected Supermatters"},f:[{t:4,f:[{p:[54,3,1552],t:7,e:"ui-section",a:{label:"Area"},f:[{t:2,r:"area_name",p:[55,5,1583]}," - (#",{t:2,r:"uid",p:[55,23,1601]},")"]}," ",{p:[57,3,1630],t:7,e:"ui-section",a:{label:"Integrity"},f:[{t:2,r:"integrity",p:[58,5,1666]}," %"]}," ",{p:[60,3,1702],t:7,e:"ui-section",a:{label:"Options"},f:[{p:[61,5,1736],t:7,e:"ui-button",a:{action:"PRG_set",params:['{"target" : "',{t:2,r:"uid",p:[61,54,1785]},'"}']},f:["View Details"]}]}],n:52,r:"data.supermatters",p:[53,2,1521]}]}],r:"data.active"}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],280:[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}],281:[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}],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-display",f:[{p:[2,2,15],t:7,e:"ui-section",f:["This machine only accepts ore. Gibtonite and Slag are not accepted."]}," ",{p:[5,2,117],t:7,e:"ui-section",f:["Current unclaimed points: ",{t:2,r:"data.unclaimedPoints",p:[6,29,159]}," ",{t:4,f:[{p:[8,4,220],t:7,e:"ui-button",a:{action:"Claim"},f:["Claim Points"]}],n:50,r:"data.unclaimedPoints",p:[7,3,187]}]}," ",{p:[13,2,311],t:7,e:"ui-section",f:[{t:4,f:[{p:[15,4,350],t:7,e:"ui-button",a:{action:"Eject"},f:["Eject ID"]}," You have ",{t:2,r:"data.claimedPoints",p:[18,13,421]}," mining points collected."],n:50,r:"data.hasID",p:[14,3,327]},{t:4,n:51,f:[{p:[20,4,485],t:7,e:"ui-button",a:{action:"Insert"},f:["Insert ID"]}],r:"data.hasID"}]}]}," ",{p:[26,1,588],t:7,e:"ui-display",f:[{t:4,f:[{p:[28,3,627],t:7,e:"ui-section",f:[{p:[29,4,644],t:7,e:"ui-button",a:{action:"diskEject",icon:"eject"},f:["Eject Disk"]}]}," ",{t:4,f:[{p:[34,4,772],t:7,e:"ui-section",a:{"class":"candystripe"},f:[{p:[35,5,808],t:7,e:"ui-button",a:{action:"diskUpload",state:[{t:2,x:{r:["canupload"],s:'(_0)?null:"disabled"'},p:[35,42,845]}],icon:"upload",align:"right",params:['{ "design" : "',{t:2,r:"index",p:[35,129,932]},'" }']},f:["Upload"]}," File ",{t:2,r:"index",p:[38,10,988]},": ",{t:2,r:"name",p:[38,21,999]}]}],n:52,r:"data.diskDesigns",p:[33,3,741]}],n:50,r:"data.hasDisk",p:[27,2,603]},{t:4,n:51,f:[{p:[42,3,1053],t:7,e:"ui-section",f:[{p:[43,4,1070],t:7,e:"ui-button",a:{action:"diskInsert",icon:"floppy-o"},f:["Insert Disk"]}]}],r:"data.hasDisk"}]}," ",{p:[49,1,1195],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[50,2,1227],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[51,4,1261],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[54,4,1316],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[57,4,1370],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[59,4,1412],t:7,e:"section",a:{"class":"cell"},f:[{p:[60,5,1440],t:7,e:"ui-button",a:{"class":"center mineral",grid:0,action:"Release",params:'{"id" : "all"}'},f:["Release All"]}]}," ",{p:[64,4,1576],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[69,3,1673],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[70,4,1707],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[71,5,1735]}]}," ",{p:[73,4,1763],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[74,5,1805]}]}," ",{p:[76,4,1835],t:7,e:"section",a:{"class":"cell"},f:[{p:[77,5,1863],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[77,18,1876]}],placeholder:"###","class":"number"}}]}," ",{p:[79,4,1941],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[80,5,1983],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[80,59,2037]}],params:['{ "id" : ',{t:2,r:"id",p:[80,114,2092]},', "sheets" : ',{t:2,r:"sheets",p:[80,133,2111]}," }"]},f:["Release"]}]}," ",{p:[84,4,2178],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[85,5,2220]}]}]}],n:52,r:"data.materials",p:[68,2,1645]}," ",{t:4,f:[{p:[90,3,2298],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[91,4,2332],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[92,5,2360]}]}," ",{p:[94,4,2388],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[95,5,2430]}]}," ",{p:[97,4,2460],t:7,e:"section",a:{"class":"cell"},f:[{p:[98,5,2488],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[98,18,2501]}],placeholder:"###","class":"number"}}]}," ",{p:[100,4,2566],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[101,5,2608],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[101,57,2660]}],params:['{ "id" : ',{t:2,r:"id",p:[101,113,2716]},', "sheets" : ',{t:2,r:"sheets",p:[101,132,2735]}," }"]},f:["Smelt"]}]}," ",{p:[105,4,2799],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,5,2841],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"SmeltAll",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,60,2896]}],params:['{ "id" : ',{t:2,r:"id",p:[106,116,2952]}," }"]},f:["Smelt All"]}]}]}],n:52,r:"data.alloys",p:[89,2,2273]}]}]},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:{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}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(312);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",a:{style:"width:100%"},f:[{p:[56,5,1606],t:7,e:"tr",f:[{p:[57,6,1617],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1659],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1718]}]}]}," ",{p:[62,6,1774],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1816],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1874]}]}]}," ",{p:[67,6,1930],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,2014],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1971]},{t:4,n:51,f:[{p:[73,7,2138],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2268],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2310],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2327]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2474],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2515],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2557],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2619]}]}]}," ",{p:[91,6,2678],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2720],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2782]}]}]}],n:50,r:"data.subcategory",p:[85,5,2484]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2992],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,3009]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2902]}],n:50,r:"config.fancy",p:[99,4,2876]}]}," ",{t:4,f:[{p:[106,5,3144],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3193],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3212]}]},f:[{p:[109,7,3230],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,3250]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3358]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3162]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3567],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3586]}]},f:[{p:[117,8,3605],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,3625]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3534]}],n:51,r:"data.display_craftable_only",p:[114,5,3495]}]}],n:50,r:"data.display_compact",p:[105,4,3110]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3947],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3966]}]},f:[{t:4,f:[{p:[128,8,4009],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4052]}]}],n:50,r:"req_text",p:[127,7,3984]}," ",{t:4,f:[{p:[133,8,4139],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4179]}]}],n:50,r:"catalyst_text",p:[132,7,4109]}," ",{t:4,f:[{p:[138,8,4267],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4303]}]}],n:50,r:"tool_text",p:[137,7,4241]}," ",{p:[142,7,4361],t:7,e:"ui-section",f:[{p:[143,8,4382],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4440]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3916]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4621],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4640]}]},f:[{t:4,f:[{p:[153,9,4685],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4729]}]}],n:50,r:"req_text",p:[152,8,4659]}," ",{t:4,f:[{p:[158,9,4820],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4861]}]}],n:50,r:"catalyst_text",p:[157,8,4789]}," ",{t:4,f:[{p:[163,9,4953],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4990]}]}],n:50,r:"tool_text",p:[162,8,4926]}]}],n:52,r:"data.cant_craft",p:[150,6,4588]}],n:51,r:"data.display_craftable_only",p:[149,5,4549]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,312:312}],285:[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}],286:[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}],287:[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}],288:[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}],289:[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}],290:[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(291),templates:t(293),status:t(292)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,291:291,292:292,293:293}],291:[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}],292:[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}],293:[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}],294:[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}],295:[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}],296:[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}],297:[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}],298:[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}],299:[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}],300:[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}],301:[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}],302:[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}],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",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}],304:[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}],305:[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}],306:[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}],307:[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(308),i=e.interopRequireDefault(r),o=t(309),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(313)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(310),text:t(314),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,308:308,309:309,310:310,313:313,314:314,"babel/external-helpers":"babel/external-helpers"}],308:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);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),holodeck:t(256),implantchair:t(257),intellicard:t(258),keycard_auth:t(259),labor_claim_console:t(260),language_menu:t(261),launchpad_remote:t(262),mech_bay_power_console:t(263),mulebot:t(264),ntnet_relay:t(265),ntos_ai_restorer:t(266),ntos_card:t(267),ntos_configuration:t(268),ntos_file_manager:t(269),ntos_main:t(270),ntos_net_chat:t(271),ntos_net_dos:t(272),ntos_net_downloader:t(273),ntos_net_monitor:t(274),ntos_net_transfer:t(275),ntos_power_monitor:t(276),ntos_revelation:t(277),ntos_station_alert:t(278),ntos_supermatter_monitor:t(279),ntosheader:t(280),nuclear_bomb:t(281),ore_redemption_machine:t(282),pandemic:t(283),personal_crafting:t(284),portable_pump:t(285),portable_scrubber:t(286),power_monitor:t(287),radio:t(288),sat_control:t(289),shuttle_manipulator:t(290),"shuttle_manipulator/modification":t(291),"shuttle_manipulator/status":t(292),"shuttle_manipulator/templates":t(293),sleeper:t(294),slime_swap_body:t(295),smes:t(296),solar_control:t(297),space_heater:t(298),station_alert:t(299),suit_storage_unit:t(300),tank_dispenser:t(301),tanks:t(302),thermomachine:t(303),uplink:t(304),vr_sleeper:t(305),wires:t(306)};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,304:304,305:305,306:306,309:309,311:311}],309:[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},{}],310:[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},{}],311:[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(309)},{309:309}],312:[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},{}],313:[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},{}],314:[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: Tue, 29 Aug 2017 01:50:46 -0500 Subject: [PATCH 039/181] Update living_defense.dm --- code/modules/mob/living/living_defense.dm | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 578eaec93e..829dec80b2 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -67,17 +67,15 @@ var/zone = ran_zone("chest", 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE var/volume = I.get_volume_by_throwforce_and_or_w_class() - if(istype(I, /obj/item/weapon)) //If the item is a weapon... - var/obj/item/weapon/W = I - dtype = W.damtype + dtype = I.damtype - if (W.throwforce > 0) //If the weapon's throwforce is greater than zero... - if (W.throwhitsound) //...and throwhitsound is defined... - playsound(loc, W.throwhitsound, volume, 1, -1) //...play the weapon's throwhitsound. - else if(W.hitsound) //Otherwise, if the weapon's hitsound is defined... - playsound(loc, W.hitsound, volume, 1, -1) //...play the weapon's hitsound. - else if(!W.throwhitsound) //Otherwise, if throwhitsound isn't defined... - playsound(loc, 'sound/weapons/genhit.ogg',volume, 1, -1) //...play genhit.ogg. + if (I.throwforce > 0) //If the weapon's throwforce is greater than zero... + if (I.throwhitsound) //...and throwhitsound is defined... + playsound(loc, I.throwhitsound, volume, 1, -1) //...play the weapon's throwhitsound. + else if(I.hitsound) //Otherwise, if the weapon's hitsound is defined... + playsound(loc, I.hitsound, volume, 1, -1) //...play the weapon's hitsound. + else if(!I.throwhitsound) //Otherwise, if throwhitsound isn't defined... + playsound(loc, 'sound/weapons/genhit.ogg',volume, 1, -1) //...play genhit.ogg. else if(!I.throwhitsound && I.throwforce > 0) //Otherwise, if the item doesn't have a throwhitsound and has a throwforce greater than zero... playsound(loc, 'sound/weapons/genhit.ogg', volume, 1, -1)//...play genhit.ogg From 54c68decde76365de8053c02a76f94659c2a5538 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 09:32:06 -0500 Subject: [PATCH 040/181] Fixes clowns blowing shit up not being logged 50% of the time --- .../game/objects/items/grenades/ghettobomb.dm | 13 +----- code/game/objects/items/grenades/grenade.dm | 45 +++++++++---------- 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm index 40aba31413..fadf9d34de 100644 --- a/code/game/objects/items/grenades/ghettobomb.dm +++ b/code/game/objects/items/grenades/ghettobomb.dm @@ -47,19 +47,8 @@ if(!active) if(clown_check(user)) to_chat(user, "You light the [name]!") - active = TRUE cut_overlay("improvised_grenade_filled") - icon_state = initial(icon_state) + "_active" - add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - - message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() - addtimer(CALLBACK(src, .proc/prime), det_time) + preprime(user, null, FALSE) /obj/item/grenade/iedcasing/prime() //Blowing that can up update_mob() diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index fceb859ceb..bf2f6dd4bb 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -26,15 +26,9 @@ /obj/item/grenade/proc/clown_check(mob/living/carbon/human/user) if(user.disabilities & CLUMSY && prob(50)) to_chat(user, "Huh? How does this thing work?") - active = 1 - icon_state = initial(icon_state) + "_active" - playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(5) - if(user) - user.drop_item() - prime() - return 0 - return 1 + preprime(user, 5, FALSE) + return FALSE + return TRUE /obj/item/grenade/examine(mob/user) @@ -50,26 +44,27 @@ if(!active) if(clown_check(user)) preprime(user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.throw_mode_on() -/obj/item/grenade/proc/preprime(mob/user) - if(user) - to_chat(user, "You prime the [name]! [det_time/10] seconds!") +/obj/item/grenade/proc/log_grenade(mob/user, turf/T) + var/area/A = get_area(T) + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed \a [src] for detonation at [ADMIN_COORDJMP(T)]" + GLOB.bombers += message + message_admins(message) + log_game("[key_name(user)] has primed \a [src] for detonation at [A.name] [COORD(T)].") + +/obj/item/grenade/proc/preprime(mob/user, delayoverride, msg = TRUE) + var/turf/T = get_turf(src) + log_grenade(user, T) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + if(msg) + to_chat(user, "You prime \the [src]! [det_time/10] seconds!") playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1) active = TRUE icon_state = initial(icon_state) + "_active" add_fingerprint(user) - var/turf/bombturf = get_turf(src) - var/area/A = get_area(bombturf) - if(user) - var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" - GLOB.bombers += message - message_admins(message) - log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") - - addtimer(CALLBACK(src, .proc/prime), det_time) + addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) /obj/item/grenade/proc/prime() @@ -110,4 +105,4 @@ if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") prime() - return 1 //It hit the grenade, not them + return TRUE //It hit the grenade, not them From 0091a81009f7882c8dc14e8b14a82c432d120e8a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 09:50:33 -0500 Subject: [PATCH 041/181] Changes sql version to check for schema being ahead --- code/game/world.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/game/world.dm b/code/game/world.dm index 0eeb29fa50..a1fcc364cd 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -51,9 +51,12 @@ if(query_db_version.NextRow()) var/db_major = text2num(query_db_version.item[1]) var/db_minor = text2num(query_db_version.item[2]) - if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) - message_admins("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") - log_sql("Database schema ([db_major].[db_minor]) is behind latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + if(db_major != DB_MAJOR_VERSION || db_minor != DB_MINOR_VERSION) + var/which = "behind" + if(db_major < DB_MAJOR_VERSION || db_minor < DB_MINOR_VERSION) + which = "ahead of" + message_admins("Database schema ([db_major].[db_minor]) is [which] the latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") + log_sql("Database schema ([db_major].[db_minor]) is [which] the latest schema version ([DB_MAJOR_VERSION].[DB_MINOR_VERSION]), this may lead to undefined behaviour or errors") else message_admins("Could not get schema version from database") else From b37e890e78070bc95a36e2a48808f0ef605b0fbc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 09:50:37 -0500 Subject: [PATCH 042/181] Wet turfs on shuttles will remain wet after shuttle movement --- code/game/turfs/open.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index bc0af068c5..67311ccad6 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -190,6 +190,12 @@ new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 1), 1, FALSE) //spinning would be bad for ice, fucks up the next dir return 1 +/turf/open/copyTurf(turf/T) + . = ..() + if(. && isopenturf(T) && wet_time) + var/turf/open/O = T + O.MakeSlippery(wet_setting = wet, wet_time_to_add = wet_time) //we're copied, copy how wet we are also + /turf/open/proc/MakeSlippery(wet_setting = TURF_WET_WATER, min_wet_time = 0, wet_time_to_add = 0) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost, 5 = Slide wet_time = max(wet_time+wet_time_to_add, min_wet_time) if(wet >= wet_setting) From b753909958759b405c955ea84be7601e453e3735 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 10:25:31 -0500 Subject: [PATCH 043/181] Cult ghosts can no longer be potentially deconverted or debrained --- code/datums/status_effects/debuffs.dm | 4 ++++ .../clock_cult/clock_helpers/slab_abilities.dm | 2 +- code/game/gamemodes/cult/runes.dm | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 02e7d0f515..9ca564cd2d 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -251,6 +251,10 @@ duration = -1 alert_type = null +/datum/status_effect/cultghost/tick() + if(owner.reagents) + owner.reagents.del_reagent("holywater") //can't be deconverted + /datum/status_effect/crusher_mark id = "crusher_mark" duration = 300 //if you leave for 30 seconds you lose the mark, deal with it diff --git a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm index fb3a0c3de2..802cfa5078 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm @@ -140,7 +140,7 @@ playsound(targetturf, 'sound/magic/staff_healing.ogg', 50, 1) if(has_holy_water) - L.reagents.remove_reagent("holywater", 1000) + L.reagents.del_reagent("holywater") remove_ranged_ability() diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index fb6d47f55c..936afe9090 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -913,7 +913,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/list/ghosts_on_rune = list() for(var/mob/dead/observer/O in get_turf(src)) if(O.client && !jobban_isbanned(O, ROLE_CULTIST)) - ghosts_on_rune |= O + ghosts_on_rune += O if(!ghosts_on_rune.len) to_chat(user, "There are no spirits near [src]!") fail_invoke() @@ -926,9 +926,9 @@ structure_check() searches for nearby cultist structures required for the invoca var/list/ghosts_on_rune = list() for(var/mob/dead/observer/O in get_turf(src)) if(O.client && !jobban_isbanned(O, ROLE_CULTIST)) - ghosts_on_rune |= O + ghosts_on_rune += O var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune) - var/mob/living/carbon/human/new_human = new(get_turf(src)) + var/mob/living/carbon/human/cult_ghost/new_human = new(get_turf(src)) new_human.real_name = ghost_to_spawn.real_name new_human.alpha = 150 //Makes them translucent new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor @@ -959,3 +959,12 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/obj/I in new_human) new_human.dropItemToGround(I, TRUE) new_human.dust() + +/mob/living/carbon/human/cult_ghost/spill_organs(no_brain, no_organs, no_bodyparts) //cult ghosts never drop a brain + no_brain = TRUE + . = ..() + +/mob/living/carbon/human/cult_ghost/getorganszone(zone, subzones = 0) + . = ..() + for(var/obj/item/organ/brain/B in .) //they're not that smart, really + . -= B From 498bd61928ee09701ab7eb132f91a0cd5dddb3bf Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:12:56 -0700 Subject: [PATCH 044/181] sync --- .../projectiles/guns/energy/energy_gun.dm | 36 +- .../projectiles/guns/energy/special.dm | 578 +++++++++--------- .../reagents/reagent_containers/spray.dm | 424 ++++++------- icons/mob/inhands/weapons/guns_lefthand.dmi | Bin 0 -> 55108 bytes icons/mob/inhands/weapons/guns_righthand.dmi | Bin 0 -> 59893 bytes 5 files changed, 522 insertions(+), 516 deletions(-) create mode 100644 icons/mob/inhands/weapons/guns_lefthand.dmi create mode 100644 icons/mob/inhands/weapons/guns_righthand.dmi diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 9d1464be2a..1ce94796fc 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/gun/energy/e_gun +/obj/item/gun/energy/e_gun name = "energy gun" desc = "A basic hybrid energy gun with two settings: disable and kill." icon_state = "energy" @@ -11,47 +11,47 @@ flight_x_offset = 15 flight_y_offset = 10 -/obj/item/weapon/gun/energy/e_gun/mini +/obj/item/gun/energy/e_gun/mini name = "miniature energy gun" desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." icon_state = "mini" item_state = "gun" w_class = WEIGHT_CLASS_SMALL - cell_type = /obj/item/weapon/stock_parts/cell{charge = 600; maxcharge = 600} + cell_type = /obj/item/stock_parts/cell{charge = 600; maxcharge = 600} ammo_x_offset = 2 charge_sections = 3 can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update -/obj/item/weapon/gun/energy/e_gun/mini/Initialize() +/obj/item/gun/energy/e_gun/mini/Initialize() gun_light = new /obj/item/device/flashlight/seclite(src) return ..() -/obj/item/weapon/gun/energy/e_gun/mini/update_icon() +/obj/item/gun/energy/e_gun/mini/update_icon() ..() if(gun_light && gun_light.on) add_overlay("mini-light") -/obj/item/weapon/gun/energy/e_gun/stun +/obj/item/gun/energy/e_gun/stun name = "tactical energy gun" desc = "Military issue energy gun, is able to fire stun rounds." icon_state = "energytac" ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/electrode/spec, /obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) -/obj/item/weapon/gun/energy/e_gun/old +/obj/item/gun/energy/e_gun/old name = "prototype energy gun" desc = "NT-P:01 Prototype Energy Gun. Early stage development of a unique laser rifle that has multifaceted energy lens allowing the gun to alter the form of projectile it fires on command." icon_state = "protolaser" ammo_x_offset = 2 ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/electrode/old) -/obj/item/weapon/gun/energy/e_gun/mini/practice_phaser +/obj/item/gun/energy/e_gun/mini/practice_phaser name = "practice phaser" desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) icon_state = "decloner" -/obj/item/weapon/gun/energy/e_gun/hos +/obj/item/gun/energy/e_gun/hos name = "\improper X-01 MultiPhase Energy Gun" desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time." icon_state = "hoslaser" @@ -61,7 +61,7 @@ ammo_x_offset = 4 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF -/obj/item/weapon/gun/energy/e_gun/dragnet +/obj/item/gun/energy/e_gun/dragnet name = "\improper DRAGnet" desc = "The \"Dynamic Rapid-Apprehension of the Guilty\" net is a revolution in law enforcement technology." icon_state = "dragnet" @@ -73,12 +73,12 @@ can_flashlight = 0 ammo_x_offset = 1 -/obj/item/weapon/gun/energy/e_gun/dragnet/snare +/obj/item/gun/energy/e_gun/dragnet/snare name = "Energy Snare Launcher" desc = "Fires an energy snare that slows the target down" ammo_type = list(/obj/item/ammo_casing/energy/trap) -/obj/item/weapon/gun/energy/e_gun/turret +/obj/item/gun/energy/e_gun/turret name = "hybrid turret gun" desc = "A heavy hybrid energy cannon with two settings: Stun and kill." icon_state = "turretlaser" @@ -91,7 +91,7 @@ trigger_guard = TRIGGER_GUARD_NONE ammo_x_offset = 2 -/obj/item/weapon/gun/energy/e_gun/nuclear +/obj/item/gun/energy/e_gun/nuclear name = "advanced energy gun" desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell." icon_state = "nucgun" @@ -106,17 +106,17 @@ var/fail_tick = 0 var/fail_chance = 0 -/obj/item/weapon/gun/energy/e_gun/nuclear/process() +/obj/item/gun/energy/e_gun/nuclear/process() if(fail_tick > 0) fail_tick-- ..() -/obj/item/weapon/gun/energy/e_gun/nuclear/shoot_live_shot() +/obj/item/gun/energy/e_gun/nuclear/shoot_live_shot() failcheck() update_icon() ..() -/obj/item/weapon/gun/energy/e_gun/nuclear/proc/failcheck() +/obj/item/gun/energy/e_gun/nuclear/proc/failcheck() if(prob(fail_chance) && isliving(loc)) var/mob/living/M = loc switch(fail_tick) @@ -130,11 +130,11 @@ crit_fail = 1 to_chat(M, "Your [name]'s reactor overloads!") -/obj/item/weapon/gun/energy/e_gun/nuclear/emp_act(severity) +/obj/item/gun/energy/e_gun/nuclear/emp_act(severity) ..() fail_chance = min(fail_chance + round(15/severity), 100) -/obj/item/weapon/gun/energy/e_gun/nuclear/update_icon() +/obj/item/gun/energy/e_gun/nuclear/update_icon() ..() if(crit_fail) add_overlay("[icon_state]_fail_3") diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 204b98a097..fa7540315e 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -1,290 +1,290 @@ -/obj/item/weapon/gun/energy/ionrifle - name = "ion rifle" - desc = "A man-portable anti-armor weapon designed to disable mechanical threats at range." - icon_state = "ionrifle" - item_state = null //so the human update icon uses the icon_state instead. - origin_tech = "combat=4;magnets=4" - can_flashlight = 1 - w_class = WEIGHT_CLASS_HUGE - flags = CONDUCT - slot_flags = SLOT_BACK - ammo_type = list(/obj/item/ammo_casing/energy/ion) - ammo_x_offset = 3 - flight_x_offset = 17 - flight_y_offset = 9 - -/obj/item/weapon/gun/energy/ionrifle/emp_act(severity) - return - -/obj/item/weapon/gun/energy/ionrifle/carbine - name = "ion carbine" - desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." - icon_state = "ioncarbine" - w_class = WEIGHT_CLASS_NORMAL - slot_flags = SLOT_BELT - pin = null - ammo_x_offset = 2 - flight_x_offset = 18 - flight_y_offset = 11 - -/obj/item/weapon/gun/energy/decloner - name = "biological demolecularisor" - desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." - icon_state = "decloner" - origin_tech = "combat=4;materials=4;biotech=5;plasmatech=6" - ammo_type = list(/obj/item/ammo_casing/energy/declone) - pin = null - ammo_x_offset = 1 - -/obj/item/weapon/gun/energy/decloner/update_icon() - ..() - var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(cell.charge > shot.e_cost) - add_overlay("decloner_spin") - -/obj/item/weapon/gun/energy/floragun - name = "floral somatoray" - desc = "A tool that discharges controlled radiation which induces mutation in plant cells." - icon_state = "flora" - item_state = "gun" - ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) - origin_tech = "materials=2;biotech=4" - modifystate = 1 - ammo_x_offset = 1 - selfcharge = 1 - -/obj/item/weapon/gun/energy/meteorgun - name = "meteor gun" - desc = "For the love of god, make sure you're aiming this the right way!" - icon_state = "meteor_gun" - item_state = "c20r" - w_class = WEIGHT_CLASS_BULKY - ammo_type = list(/obj/item/ammo_casing/energy/meteor) - cell_type = "/obj/item/weapon/stock_parts/cell/potato" - clumsy_check = 0 //Admin spawn only, might as well let clowns use it. - selfcharge = 1 - -/obj/item/weapon/gun/energy/meteorgun/pen - name = "meteor pen" - desc = "The pen is mightier than the sword." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "pen" - item_state = "pen" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - w_class = WEIGHT_CLASS_TINY - -/obj/item/weapon/gun/energy/mindflayer - name = "\improper Mind Flayer" - desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon." - icon_state = "xray" - item_state = null - ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) - ammo_x_offset = 2 - -/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow - name = "mini energy crossbow" - desc = "A weapon favored by syndicate stealth specialists." - icon_state = "crossbow" - item_state = "crossbow" - w_class = WEIGHT_CLASS_SMALL - materials = list(MAT_METAL=2000) - origin_tech = "combat=4;magnets=4;syndicate=5" - suppressed = 1 - ammo_type = list(/obj/item/ammo_casing/energy/bolt) - weapon_weight = WEAPON_LIGHT - unique_rename = 0 - overheat_time = 20 - holds_charge = TRUE - unique_frequency = TRUE - can_flashlight = 0 - max_mod_capacity = 0 - empty_state = null - -/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/halloween - name = "candy corn crossbow" - desc = "A weapon favored by Syndicate trick-or-treaters." - icon_state = "crossbow_halloween" - item_state = "crossbow" - ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) - -/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large - name = "energy crossbow" - desc = "A reverse engineered weapon using syndicate technology." - icon_state = "crossbowlarge" - w_class = WEIGHT_CLASS_NORMAL - materials = list(MAT_METAL=4000) - origin_tech = "combat=4;magnets=4;syndicate=2" - suppressed = 0 - ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) - pin = null - -/obj/item/weapon/gun/energy/plasmacutter - name = "plasma cutter" - desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." - icon_state = "plasmacutter" - item_state = "plasmacutter" - origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" - ammo_type = list(/obj/item/ammo_casing/energy/plasma) - flags = CONDUCT - container_type = OPENCONTAINER - attack_verb = list("attacked", "slashed", "cut", "sliced") - force = 12 - sharpness = IS_SHARP - can_charge = 0 - heat = 3800 - toolspeed = 0.7 //plasmacutters can be used as welders for a few things, and are faster than standard welders - -/obj/item/weapon/gun/energy/plasmacutter/examine(mob/user) - ..() - if(cell) - to_chat(user, "[src] is [round(cell.percent())]% charged.") - -/obj/item/weapon/gun/energy/plasmacutter/attackby(obj/item/A, mob/user) - if(istype(A, /obj/item/stack/sheet/mineral/plasma)) - var/obj/item/stack/sheet/S = A - S.use(1) - cell.give(1000) - recharge_newshot(1) - to_chat(user, "You insert [A] in [src], recharging it.") - else if(istype(A, /obj/item/weapon/ore/plasma)) - qdel(A) - cell.give(500) - recharge_newshot(1) - to_chat(user, "You insert [A] in [src], recharging it.") - else - ..() - -/obj/item/weapon/gun/energy/plasmacutter/update_icon() - return - -/obj/item/weapon/gun/energy/plasmacutter/adv - name = "advanced plasma cutter" - icon_state = "adv_plasmacutter" - origin_tech = "combat=3;materials=4;magnets=3;plasmatech=4;engineering=2" - force = 15 - ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) - -/obj/item/weapon/gun/energy/wormhole_projector - name = "bluespace wormhole projector" - desc = "A projector that emits high density quantum-coupled bluespace beams." - ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange) - item_state = null - icon_state = "wormhole_projector" - origin_tech = "combat=4;bluespace=6;plasmatech=4;engineering=4" - var/obj/effect/portal/p_blue - var/obj/effect/portal/p_orange - -/obj/item/weapon/gun/energy/wormhole_projector/update_icon() - icon_state = "[initial(icon_state)][select]" - item_state = icon_state - return - -/obj/item/weapon/gun/energy/wormhole_projector/process_chamber() - ..() - select_fire() - -/obj/item/weapon/gun/energy/wormhole_projector/proc/on_portal_destroy(obj/effect/portal/P) - if(P == p_blue) - p_blue = null - else if(P == p_orange) - p_orange = null - -/obj/item/weapon/gun/energy/wormhole_projector/proc/has_blue_portal() - if(istype(p_blue) && !QDELETED(p_blue)) - return TRUE - return FALSE - -/obj/item/weapon/gun/energy/wormhole_projector/proc/has_orange_portal() - if(istype(p_orange) && !QDELETED(p_orange)) - return TRUE - return FALSE - -/obj/item/weapon/gun/energy/wormhole_projector/proc/crosslink() - if(!has_blue_portal() && !has_orange_portal()) - return - if(!has_blue_portal() && has_orange_portal()) - p_orange.link_portal(null) - return - if(!has_orange_portal() && has_blue_portal()) - p_blue.link_portal(null) - return - p_orange.link_portal(p_blue) - p_blue.link_portal(p_orange) - -/obj/item/weapon/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) - var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null) - if(istype(W, /obj/item/projectile/beam/wormhole/orange)) - qdel(p_orange) - p_orange = P - P.icon_state = "portal1" - else - qdel(p_blue) - p_blue = P - crosslink() - -/* 3d printer 'pseudo guns' for borgs */ - -/obj/item/weapon/gun/energy/printer - name = "cyborg lmg" - desc = "A machinegun that fires 3d-printed flechettes slowly regenerated using a cyborg's internal power source." - icon_state = "l6closed0" - icon = 'icons/obj/guns/projectile.dmi' - cell_type = "/obj/item/weapon/stock_parts/cell/secborg" - ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) - can_charge = 0 - use_cyborg_cell = 1 - -/obj/item/weapon/gun/energy/printer/update_icon() - return - -/obj/item/weapon/gun/energy/printer/emp_act() - return - -/obj/item/weapon/gun/energy/temperature - name = "temperature gun" - icon_state = "freezegun" - desc = "A gun that changes temperatures." - origin_tech = "combat=4;materials=4;powerstorage=3;magnets=2" - ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) - cell_type = "/obj/item/weapon/stock_parts/cell/high" - pin = null - -/obj/item/weapon/gun/energy/temperature/security - name = "security temperature gun" - desc = "A weapon that can only be used to its full potential by the truly robust." - origin_tech = "combat=2;materials=2;powerstorage=1;magnets=1" - pin = /obj/item/device/firing_pin - -/obj/item/weapon/gun/energy/laser/instakill - name = "instakill rifle" - icon_state = "instagib" - item_state = "instagib" - desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit." - ammo_type = list(/obj/item/ammo_casing/energy/instakill) - force = 60 - origin_tech = "combat=7;magnets=6" - -/obj/item/weapon/gun/energy/laser/instakill/red - desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a red design." - icon_state = "instagibred" - item_state = "instagibred" - ammo_type = list(/obj/item/ammo_casing/energy/instakill/red) - -/obj/item/weapon/gun/energy/laser/instakill/blue - desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a blue design." - icon_state = "instagibblue" - item_state = "instagibblue" - ammo_type = list(/obj/item/ammo_casing/energy/instakill/blue) - -/obj/item/weapon/gun/energy/laser/instakill/emp_act() //implying you could stop the instagib - return - -/obj/item/weapon/gun/energy/gravity_gun - name = "one-point bluespace-gravitational manipulator" - desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity." - ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) - origin_tech = "combat=4;magnets=4;materials=6;powerstorage=4;bluespace=4" +/obj/item/gun/energy/ionrifle + name = "ion rifle" + desc = "A man-portable anti-armor weapon designed to disable mechanical threats at range." + icon_state = "ionrifle" + item_state = null //so the human update icon uses the icon_state instead. + origin_tech = "combat=4;magnets=4" + can_flashlight = 1 + w_class = WEIGHT_CLASS_HUGE + flags_1 = CONDUCT_1 + slot_flags = SLOT_BACK + ammo_type = list(/obj/item/ammo_casing/energy/ion) + ammo_x_offset = 3 + flight_x_offset = 17 + flight_y_offset = 9 + +/obj/item/gun/energy/ionrifle/emp_act(severity) + return + +/obj/item/gun/energy/ionrifle/carbine + name = "ion carbine" + desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." + icon_state = "ioncarbine" + w_class = WEIGHT_CLASS_NORMAL + slot_flags = SLOT_BELT + pin = null + ammo_x_offset = 2 + flight_x_offset = 18 + flight_y_offset = 11 + +/obj/item/gun/energy/decloner + name = "biological demolecularisor" + desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." + icon_state = "decloner" + origin_tech = "combat=4;materials=4;biotech=5;plasmatech=6" + ammo_type = list(/obj/item/ammo_casing/energy/declone) + pin = null + ammo_x_offset = 1 + +/obj/item/gun/energy/decloner/update_icon() + ..() + var/obj/item/ammo_casing/energy/shot = ammo_type[select] + if(cell.charge > shot.e_cost) + add_overlay("decloner_spin") + +/obj/item/gun/energy/floragun + name = "floral somatoray" + desc = "A tool that discharges controlled radiation which induces mutation in plant cells." + icon_state = "flora" + item_state = "gun" + ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut) + origin_tech = "materials=2;biotech=4" + modifystate = 1 + ammo_x_offset = 1 + selfcharge = 1 + +/obj/item/gun/energy/meteorgun + name = "meteor gun" + desc = "For the love of god, make sure you're aiming this the right way!" + icon_state = "meteor_gun" + item_state = "c20r" + w_class = WEIGHT_CLASS_BULKY + ammo_type = list(/obj/item/ammo_casing/energy/meteor) + cell_type = "/obj/item/stock_parts/cell/potato" + clumsy_check = 0 //Admin spawn only, might as well let clowns use it. + selfcharge = 1 + +/obj/item/gun/energy/meteorgun/pen + name = "meteor pen" + desc = "The pen is mightier than the sword." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "pen" + item_state = "pen" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + w_class = WEIGHT_CLASS_TINY + +/obj/item/gun/energy/mindflayer + name = "\improper Mind Flayer" + desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon." + icon_state = "xray" + item_state = null + ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) + ammo_x_offset = 2 + +/obj/item/gun/energy/kinetic_accelerator/crossbow + name = "mini energy crossbow" + desc = "A weapon favored by syndicate stealth specialists." + icon_state = "crossbow" + item_state = "crossbow" + w_class = WEIGHT_CLASS_SMALL + materials = list(MAT_METAL=2000) + origin_tech = "combat=4;magnets=4;syndicate=5" + suppressed = 1 + ammo_type = list(/obj/item/ammo_casing/energy/bolt) + weapon_weight = WEAPON_LIGHT + unique_rename = 0 + overheat_time = 20 + holds_charge = TRUE + unique_frequency = TRUE + can_flashlight = 0 + max_mod_capacity = 0 + empty_state = null + +/obj/item/gun/energy/kinetic_accelerator/crossbow/halloween + name = "candy corn crossbow" + desc = "A weapon favored by Syndicate trick-or-treaters." + icon_state = "crossbow_halloween" + item_state = "crossbow" + ammo_type = list(/obj/item/ammo_casing/energy/bolt/halloween) + +/obj/item/gun/energy/kinetic_accelerator/crossbow/large + name = "energy crossbow" + desc = "A reverse engineered weapon using syndicate technology." + icon_state = "crossbowlarge" + w_class = WEIGHT_CLASS_NORMAL + materials = list(MAT_METAL=4000) + origin_tech = "combat=4;magnets=4;syndicate=2" + suppressed = 0 + ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) + pin = null + +/obj/item/gun/energy/plasmacutter + name = "plasma cutter" + desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off xenos! Or, you know, mine stuff." + icon_state = "plasmacutter" + item_state = "plasmacutter" + origin_tech = "combat=1;materials=3;magnets=2;plasmatech=3;engineering=1" + ammo_type = list(/obj/item/ammo_casing/energy/plasma) + flags_1 = CONDUCT_1 + container_type = OPENCONTAINER_1 + attack_verb = list("attacked", "slashed", "cut", "sliced") + force = 12 + sharpness = IS_SHARP + can_charge = 0 + heat = 3800 + toolspeed = 0.7 //plasmacutters can be used as welders for a few things, and are faster than standard welders + +/obj/item/gun/energy/plasmacutter/examine(mob/user) + ..() + if(cell) + to_chat(user, "[src] is [round(cell.percent())]% charged.") + +/obj/item/gun/energy/plasmacutter/attackby(obj/item/A, mob/user) + if(istype(A, /obj/item/stack/sheet/mineral/plasma)) + var/obj/item/stack/sheet/S = A + S.use(1) + cell.give(1000) + recharge_newshot(1) + to_chat(user, "You insert [A] in [src], recharging it.") + else if(istype(A, /obj/item/ore/plasma)) + qdel(A) + cell.give(500) + recharge_newshot(1) + to_chat(user, "You insert [A] in [src], recharging it.") + else + ..() + +/obj/item/gun/energy/plasmacutter/update_icon() + return + +/obj/item/gun/energy/plasmacutter/adv + name = "advanced plasma cutter" + icon_state = "adv_plasmacutter" + origin_tech = "combat=3;materials=4;magnets=3;plasmatech=4;engineering=2" + force = 15 + ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) + +/obj/item/gun/energy/wormhole_projector + name = "bluespace wormhole projector" + desc = "A projector that emits high density quantum-coupled bluespace beams." + ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange) + item_state = null + icon_state = "wormhole_projector" + origin_tech = "combat=4;bluespace=6;plasmatech=4;engineering=4" + var/obj/effect/portal/p_blue + var/obj/effect/portal/p_orange + +/obj/item/gun/energy/wormhole_projector/update_icon() + icon_state = "[initial(icon_state)][select]" + item_state = icon_state + return + +/obj/item/gun/energy/wormhole_projector/process_chamber() + ..() + select_fire() + +/obj/item/gun/energy/wormhole_projector/proc/on_portal_destroy(obj/effect/portal/P) + if(P == p_blue) + p_blue = null + else if(P == p_orange) + p_orange = null + +/obj/item/gun/energy/wormhole_projector/proc/has_blue_portal() + if(istype(p_blue) && !QDELETED(p_blue)) + return TRUE + return FALSE + +/obj/item/gun/energy/wormhole_projector/proc/has_orange_portal() + if(istype(p_orange) && !QDELETED(p_orange)) + return TRUE + return FALSE + +/obj/item/gun/energy/wormhole_projector/proc/crosslink() + if(!has_blue_portal() && !has_orange_portal()) + return + if(!has_blue_portal() && has_orange_portal()) + p_orange.link_portal(null) + return + if(!has_orange_portal() && has_blue_portal()) + p_blue.link_portal(null) + return + p_orange.link_portal(p_blue) + p_blue.link_portal(p_orange) + +/obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) + var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null) + if(istype(W, /obj/item/projectile/beam/wormhole/orange)) + qdel(p_orange) + p_orange = P + P.icon_state = "portal1" + else + qdel(p_blue) + p_blue = P + crosslink() + +/* 3d printer 'pseudo guns' for borgs */ + +/obj/item/gun/energy/printer + name = "cyborg lmg" + desc = "A machinegun that fires 3d-printed flechettes slowly regenerated using a cyborg's internal power source." + icon_state = "l6closed0" + icon = 'icons/obj/guns/projectile.dmi' + cell_type = "/obj/item/stock_parts/cell/secborg" + ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet) + can_charge = 0 + use_cyborg_cell = 1 + +/obj/item/gun/energy/printer/update_icon() + return + +/obj/item/gun/energy/printer/emp_act() + return + +/obj/item/gun/energy/temperature + name = "temperature gun" + icon_state = "freezegun" + desc = "A gun that changes temperatures." + origin_tech = "combat=4;materials=4;powerstorage=3;magnets=2" + ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) + cell_type = "/obj/item/stock_parts/cell/high" + pin = null + +/obj/item/gun/energy/temperature/security + name = "security temperature gun" + desc = "A weapon that can only be used to its full potential by the truly robust." + origin_tech = "combat=2;materials=2;powerstorage=1;magnets=1" + pin = /obj/item/device/firing_pin + +/obj/item/gun/energy/laser/instakill + name = "instakill rifle" + icon_state = "instagib" + item_state = "instagib" + desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit." + ammo_type = list(/obj/item/ammo_casing/energy/instakill) + force = 60 + origin_tech = "combat=7;magnets=6" + +/obj/item/gun/energy/laser/instakill/red + desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a red design." + icon_state = "instagibred" + item_state = "instagibred" + ammo_type = list(/obj/item/ammo_casing/energy/instakill/red) + +/obj/item/gun/energy/laser/instakill/blue + desc = "A specialized ASMD laser-rifle, capable of flat-out disintegrating most targets in a single hit. This one has a blue design." + icon_state = "instagibblue" + item_state = "instagibblue" + ammo_type = list(/obj/item/ammo_casing/energy/instakill/blue) + +/obj/item/gun/energy/laser/instakill/emp_act() //implying you could stop the instagib + return + +/obj/item/gun/energy/gravity_gun + name = "one-point bluespace-gravitational manipulator" + desc = "An experimental, multi-mode device that fires bolts of Zero-Point Energy, causing local distortions in gravity." + ammo_type = list(/obj/item/ammo_casing/energy/gravityrepulse, /obj/item/ammo_casing/energy/gravityattract, /obj/item/ammo_casing/energy/gravitychaos) + origin_tech = "combat=4;magnets=4;materials=6;powerstorage=4;bluespace=4" item_state = "gravity_gun" - icon_state = "gravity_gun" - var/power = 4 + icon_state = "gravity_gun" + var/power = 4 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 76ce15f628..869076081e 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -1,81 +1,83 @@ -/obj/item/weapon/reagent_containers/spray - name = "spray bottle" - desc = "A spray bottle, with an unscrewable top." - icon = 'icons/obj/janitor.dmi' - icon_state = "cleaner" - item_state = "cleaner" - flags = NOBLUDGEON - container_type = OPENCONTAINER - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 7 - var/stream_mode = 0 //whether we use the more focused mode - var/current_range = 3 //the range of tiles the sprayer will reach. - var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. - var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. - var/stream_amount = 10 //the amount of reagents transfered when in stream mode. - amount_per_transfer_from_this = 5 - volume = 250 - possible_transfer_amounts = list(5,10,15,20,25,30,50,100) - - -/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user) - if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) - return - - if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution - if(!A.reagents.total_volume && A.reagents) - to_chat(user, "\The [A] is empty.") - return - - if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "\The [src] is full.") - return - - var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill - to_chat(user, "You fill \the [src] with [trans] units of the contents of \the [A].") - return - - if(reagents.total_volume < amount_per_transfer_from_this) - to_chat(user, "\The [src] is empty!") - return - - spray(A) - - playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) - user.changeNext_move(CLICK_CD_RANGE*2) - user.newtonian_move(get_dir(A, user)) - var/turf/T = get_turf(src) - var/area/area = get_area(src) - if(reagents.has_reagent("sacid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") - if(reagents.has_reagent("facid")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") - if(reagents.has_reagent("lube")) - message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") - log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") - return - - -/obj/item/weapon/reagent_containers/spray/proc/spray(atom/A) - var/range = max(min(current_range, get_dist(src, A)), 1) - var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) - D.create_reagents(amount_per_transfer_from_this) - var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed - if(stream_mode) - reagents.trans_to(D, amount_per_transfer_from_this) - puff_reagent_left = 1 - else - reagents.trans_to(D, amount_per_transfer_from_this, 1/range) - D.color = mix_color_from_reagents(D.reagents.reagent_list) - var/wait_step = max(round(2+3/range), 2) +/obj/item/reagent_containers/spray + name = "spray bottle" + desc = "A spray bottle, with an unscrewable top." + icon = 'icons/obj/janitor.dmi' + icon_state = "cleaner" + item_state = "cleaner" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + flags_1 = NOBLUDGEON_1 + container_type = OPENCONTAINER_1 + slot_flags = SLOT_BELT + throwforce = 0 + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 7 + var/stream_mode = 0 //whether we use the more focused mode + var/current_range = 3 //the range of tiles the sprayer will reach. + var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. + var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. + var/stream_amount = 10 //the amount of reagents transfered when in stream mode. + amount_per_transfer_from_this = 5 + volume = 250 + possible_transfer_amounts = list(5,10,15,20,25,30,50,100) + + +/obj/item/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user) + if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) + return + + if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution + if(!A.reagents.total_volume && A.reagents) + to_chat(user, "\The [A] is empty.") + return + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "\The [src] is full.") + return + + var/trans = A.reagents.trans_to(src, 50) //transfer 50u , using the spray's transfer amount would take too long to refill + to_chat(user, "You fill \the [src] with [trans] units of the contents of \the [A].") + return + + if(reagents.total_volume < amount_per_transfer_from_this) + to_chat(user, "\The [src] is empty!") + return + + spray(A) + + playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) + user.changeNext_move(CLICK_CD_RANGE*2) + user.newtonian_move(get_dir(A, user)) + var/turf/T = get_turf(src) + var/area/area = get_area(src) + if(reagents.has_reagent("sacid")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired sulphuric acid from \a [src] at [area] ([T.x], [T.y], [T.z]).") + if(reagents.has_reagent("facid")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Fluacid from \a [src] at [area] [COORD(T)].") + if(reagents.has_reagent("lube")) + message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [area] [ADMIN_COORDJMP(T)].") + log_game("[key_name(user)] fired Space lube from \a [src] at [area] [COORD(T)].") + return + + +/obj/item/reagent_containers/spray/proc/spray(atom/A) + var/range = max(min(current_range, get_dist(src, A)), 1) + var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src)) + D.create_reagents(amount_per_transfer_from_this) + var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed + if(stream_mode) + reagents.trans_to(D, amount_per_transfer_from_this) + puff_reagent_left = 1 + else + reagents.trans_to(D, amount_per_transfer_from_this, 1/range) + D.color = mix_color_from_reagents(D.reagents.reagent_list) + var/wait_step = max(round(2+3/range), 2) do_spray(A, wait_step, D, range, puff_reagent_left) -/obj/item/weapon/reagent_containers/spray/proc/do_spray(atom/A, wait_step, obj/effect/decal/chempuff/D, range, puff_reagent_left) +/obj/item/reagent_containers/spray/proc/do_spray(atom/A, wait_step, obj/effect/decal/chempuff/D, range, puff_reagent_left) set waitfor = FALSE var/range_left = range for(var/i=0, i 0 && (!stream_mode || !range_left)) D.reagents.reaction(get_turf(D), VAPOR) puff_reagent_left -= 1 - + if(puff_reagent_left <= 0) // we used all the puff so we delete it. qdel(D) return qdel(D) - -/obj/item/weapon/reagent_containers/spray/attack_self(mob/user) - stream_mode = !stream_mode - if(stream_mode) - amount_per_transfer_from_this = stream_amount - current_range = stream_range - else - amount_per_transfer_from_this = initial(amount_per_transfer_from_this) - current_range = spray_range - to_chat(user, "You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.") - -/obj/item/weapon/reagent_containers/spray/verb/empty() - set name = "Empty Spray Bottle" - set category = "Object" - set src in usr - if(usr.incapacitated()) - return - if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes") - return - if(isturf(usr.loc) && src.loc == usr) - to_chat(usr, "You empty \the [src] onto the floor.") - reagents.reaction(usr.loc) - src.reagents.clear_reagents() - -//space cleaner -/obj/item/weapon/reagent_containers/spray/cleaner - name = "space cleaner" - desc = "BLAM!-brand non-foaming space cleaner!" - list_reagents = list("cleaner" = 250) - -//spray tan -/obj/item/weapon/reagent_containers/spray/spraytan - name = "spray tan" - volume = 50 - desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices." - list_reagents = list("spraytan" = 50) - - -/obj/item/weapon/reagent_containers/spray/medical - name = "medical spray" - icon = 'icons/obj/chemical.dmi' - icon_state = "medspray" - volume = 100 - - -/obj/item/weapon/reagent_containers/spray/medical/sterilizer - name = "sterilizer spray" - desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." - list_reagents = list("sterilizine" = 100) - - -//pepperspray -/obj/item/weapon/reagent_containers/spray/pepper - name = "pepperspray" - desc = "Manufactured by UhangInc, used to blind and down an opponent quickly." - icon = 'icons/obj/weapons.dmi' - icon_state = "pepperspray" - item_state = "pepperspray" - volume = 40 - stream_range = 4 - amount_per_transfer_from_this = 5 - list_reagents = list("condensedcapsaicin" = 40) - -// Fix pepperspraying yourself -/obj/item/weapon/reagent_containers/spray/pepper/afterattack(atom/A as mob|obj, mob/user) - if (A.loc == user) - return - ..() - -//water flower -/obj/item/weapon/reagent_containers/spray/waterflower - name = "water flower" - desc = "A seemingly innocent sunflower...with a twist." - icon = 'icons/obj/hydroponics/harvest.dmi' - icon_state = "sunflower" - item_state = "sunflower" - amount_per_transfer_from_this = 1 - volume = 10 - list_reagents = list("water" = 10) - -/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays - return - -//chemsprayer -/obj/item/weapon/reagent_containers/spray/chemsprayer - name = "chem sprayer" - desc = "A utility used to spray large amounts of reagents in a given area." - icon = 'icons/obj/guns/projectile.dmi' - icon_state = "chemsprayer" - item_state = "chemsprayer" + +/obj/item/reagent_containers/spray/attack_self(mob/user) + stream_mode = !stream_mode + if(stream_mode) + amount_per_transfer_from_this = stream_amount + current_range = stream_range + else + amount_per_transfer_from_this = initial(amount_per_transfer_from_this) + current_range = spray_range + to_chat(user, "You switch the nozzle setting to [stream_mode ? "\"stream\"":"\"spray\""]. You'll now use [amount_per_transfer_from_this] units per use.") + +/obj/item/reagent_containers/spray/verb/empty() + set name = "Empty Spray Bottle" + set category = "Object" + set src in usr + if(usr.incapacitated()) + return + if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes") + return + if(isturf(usr.loc) && src.loc == usr) + to_chat(usr, "You empty \the [src] onto the floor.") + reagents.reaction(usr.loc) + src.reagents.clear_reagents() + +//space cleaner +/obj/item/reagent_containers/spray/cleaner + name = "space cleaner" + desc = "BLAM!-brand non-foaming space cleaner!" + list_reagents = list("cleaner" = 250) + +//spray tan +/obj/item/reagent_containers/spray/spraytan + name = "spray tan" + volume = 50 + desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices." + list_reagents = list("spraytan" = 50) + + +/obj/item/reagent_containers/spray/medical + name = "medical spray" + icon = 'icons/obj/chemical.dmi' + icon_state = "medspray" + volume = 100 + + +/obj/item/reagent_containers/spray/medical/sterilizer + name = "sterilizer spray" + desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery." + list_reagents = list("sterilizine" = 100) + + +//pepperspray +/obj/item/reagent_containers/spray/pepper + name = "pepperspray" + desc = "Manufactured by UhangInc, used to blind and down an opponent quickly." + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "pepperspray" + item_state = "pepperspray" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + volume = 40 + stream_range = 4 + amount_per_transfer_from_this = 5 + list_reagents = list("condensedcapsaicin" = 40) + +// Fix pepperspraying yourself +/obj/item/reagent_containers/spray/pepper/afterattack(atom/A as mob|obj, mob/user) + if (A.loc == user) + return + ..() + +//water flower +/obj/item/reagent_containers/spray/waterflower + name = "water flower" + desc = "A seemingly innocent sunflower...with a twist." + icon = 'icons/obj/hydroponics/harvest.dmi' + icon_state = "sunflower" + item_state = "sunflower" + amount_per_transfer_from_this = 1 + volume = 10 + list_reagents = list("water" = 10) + +/obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays + return + +//chemsprayer +/obj/item/reagent_containers/spray/chemsprayer + name = "chem sprayer" + desc = "A utility used to spray large amounts of reagents in a given area." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "chemsprayer" + item_state = "chemsprayer" lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' - throwforce = 0 - w_class = WEIGHT_CLASS_NORMAL - stream_mode = 1 - current_range = 7 - spray_range = 4 - stream_range = 7 - amount_per_transfer_from_this = 10 - volume = 600 - origin_tech = "combat=3;materials=3;engineering=3" - -/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user) - // Make it so the bioterror spray doesn't spray yourself when you click your inventory items - if (A.loc == user) - return - ..() - -/obj/item/weapon/reagent_containers/spray/chemsprayer/spray(atom/A) - var/direction = get_dir(src, A) - var/turf/T = get_turf(A) - var/turf/T1 = get_step(T,turn(direction, 90)) - var/turf/T2 = get_step(T,turn(direction, -90)) - var/list/the_targets = list(T,T1,T2) - - for(var/i=1, i<=3, i++) // intialize sprays - if(reagents.total_volume < 1) - return - ..(the_targets[i]) - -/obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror - list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100) - -// Plant-B-Gone -/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie - name = "Plant-B-Gone" - desc = "Kills those pesky weeds!" - icon = 'icons/obj/hydroponics/equipment.dmi' - icon_state = "plantbgone" - item_state = "plantbgone" - volume = 100 - list_reagents = list("plantbgone" = 100) + throwforce = 0 + w_class = WEIGHT_CLASS_NORMAL + stream_mode = 1 + current_range = 7 + spray_range = 4 + stream_range = 7 + amount_per_transfer_from_this = 10 + volume = 600 + origin_tech = "combat=3;materials=3;engineering=3" + +/obj/item/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user) + // Make it so the bioterror spray doesn't spray yourself when you click your inventory items + if (A.loc == user) + return + ..() + +/obj/item/reagent_containers/spray/chemsprayer/spray(atom/A) + var/direction = get_dir(src, A) + var/turf/T = get_turf(A) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + var/list/the_targets = list(T,T1,T2) + + for(var/i=1, i<=3, i++) // intialize sprays + if(reagents.total_volume < 1) + return + ..(the_targets[i]) + +/obj/item/reagent_containers/spray/chemsprayer/bioterror + list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100) + +// Plant-B-Gone +/obj/item/reagent_containers/spray/plantbgone // -- Skie + name = "Plant-B-Gone" + desc = "Kills those pesky weeds!" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "plantbgone" + item_state = "plantbgone" + lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' + volume = 100 + list_reagents = list("plantbgone" = 100) diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..de77656a15683d25e9ec2564f21bcf66ff457b6b GIT binary patch literal 55108 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 AB>(^b literal 0 HcmV?d00001 diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..33f88d0d96e257abf1838c2859dee5e3cfe64ecc GIT binary patch literal 59893 zcmdSB2UJtvw=Nn$Kv6(N1nGiGFG{b$LKi_gNben`_lO8cm);4zlSuDGM0)5Qg($rv z1cX3H?nck=f6p1`z5DLHSo8SCa!qs0Wkdx7ofj}T~CB*g-k)mN>xh>t^;{d3raO@icfqM!9OR#(G4K@r z%?X$-Z@(87(_j8xOYRDD@9TA_L!Vj9rq@3&`Jk z98J%Bsqy&n+i%R5TrZJ)gzF(>`$ZHqev8IeSH)douq&&8JsZLq>oL2}UjK5cBN-(n zJ?VpOqJ1^7ouxpBnG|DG4a$iYz1s{cb5EQFFSA~erq{Jwp3MDyHLy`qWYratZf^d}mh1KIS*5SejVjo-xVQ2- zs(@i5E)m_>reX;TZVn;WsZM^EY*CiAS_ToGvW9uy>?cUm6Gu{Uv%8qD#EVt^Vz&#; z=MDmw3Nl19OEDYvQi+5==h>vq$bNA9C?Xmnm`{9modRd%Pc$Y~to@A3c{l2DBpuUh zp=6?%BD>F{WFNFFMfwYR^)#$oo<~IG;FQOoak-vae-z?fr)O zXJx}ta`KS{@kl*WUW-=x6Xagsz4tg_a-KsIN7G!0HxV~|G-FN74Ev|w9gAW9oV;-H z!WG+sT86d68Vt`Zp(UB`% z%=0#e({8cg%*1DmJbgBN&s`q;_FE3`y))E-*mGDMOD}8pwfj^SaIG@dzE}jhEAq`J z?AG!jP8O+Uq_i!v15=fl{={$WQ9IF;N8(u(TzFkAq;*=A-VdWD)d;TN&L5_Ix+*2W zGvsZ`l(ql4S8_?PctFX&lXKoMvqt0fBj~<(T(^8>-ju3sns1J>a#6n#!tksl8zEI% zJj}nfr)K9vw9p@L4g#@&l%74-^3L3z5AfDH$`ZvL-?{uFvyZLA`f^&(GoQ=P)f1lI zy!WA^WL~DEj%??5IP!CVzF)&`fRo3(%;@g?j#1&aI$ih~&PkUrMB`XJgLYnGz}fskMCF5fuKX8pFH)@yTA_`Udf?t3?<-@Pr5dJ@GaDQBXa?(AqbD3g?<8 zgzZFgIEqE=fLqg5|K68XYlSW77!0{WmclTJbeu>Q^7(}shA@Ey@S6>T>B)ajBa+U7 z=6B{zMacf%K@}66>+b%ko_TgKz~AElZzIVk`E&a(AJEki2(_eXY@nfMttF0QH#3mW zbh6mWYc7X<5eLb9Z}kym9aWTsK7 zfjrj?pe#1hELJkmc;T&PJ|-g?ph+Ch)yZH?tW4%d#O1F$Q*zTsGC?`5mjiSrve!BI zpSWPTgB}p3X|HZ&t^4Okd*416PFw>E{cV#9IVE3(*FQjm!PWQi1@o3?16Bu=Y9{ZG zzkS=^_Cg8N{jAm4Ibu$Mc%QPCoZcI@L7b5+xVVJ%(}nBnd0Z_+t)&#%-clnC2EEnO zeO}Hn=2}sbRTjaj3d+gl`(X3#@%y}&C;oxdv&ieR9?=E*B_(dT=}1Uw#V{h5@3Jb9 zxzR&ixws+%#bfRcSOjY&&H6CD|CHs6LO!he5d{9upa~R3$HA?c0WrVLwRx@bPPnB4 zP9c924W`r1z>n}~O*E;iu7aW^lIk#wNdK{8z?y^(CK=)w}Tdh@JJQXO}<|21J-(6fZf2nOz zz@tU63jY1`Ep`bml1%e>pb?9xmVc!&4ULY_eHXU{)i5;VxgxB!>N3lXM?xIgUZH9F zU|4OVE6PZduB4o}YIX5c{EULgGPoqe5z_SB+GOq>(6Lop8^yI{oF=kGt)v2RZ-imz zE01Q64mIb_c6L$&>>@XGH!j9(S&=^hm;JqgC&G|4we-A~QqV zx`B!~OrF`hU#l3+_j6_XUc1o=%Vv_YGA!gorzJz=;#T>F!`+V#4`t<|N2}FCFtJ8D zt9x5;jJs27kHH4k7NQ8e#aalnq02LN_q%15c>IEe6z~5hd%qq`yTs_&;9P#wO(eLuk?$b5MYN~ ztue(>m33gp-39Q6@KRR+d{y*G@mpv7&&g`1Y5GR=KGhwsE|-ekrZ=HNQ+!W48?tph zqpT-BaYq`e!4iklf@^Gs&G8*X`uk$PeA{;4eQ$+vY8L11{4#UzmQV%r!KYste$4Rt zf~51b?7*@cvZ2v5s;+L*98f`08yTrcBGPI$e3~(wTNDiUG8mE-$$BVDr5QW8b>w?+ zfR<1#2Oba!`2tK&bDW*wI3W`Mq)tqXWyE7%`j^9$5dq)6?|k>0jpl54iTs-<}>_4XS10T;kYC`F+!GB=(ziiY0k2;9|l9N4%JtY09E=Kw}EJM^q{vO>Z zk6{95)RBwhLW$*0AQVNO+ol6caERLRRxA%)CgWr zUobZ29)xKq&(wZkfY zaUc=nuRK+;)$HwVq%|cVU(KUMxe7jg{RGz#`Qck-By1~y@UhR0(~1)5QD7PvFQHs$ zMxANm^sU+#v{o7HX!Wm6sApeTzKdq2xDC-%#9TTOj|I-K6%;j(XFTI|og(T#hHyF1 zvgzNpjxK;dI0*=R16h1;Sf z?+}*2;)JeJd+=!`U?>xgFnh4_;39%5SZaBm;y9?_j63KbOI>#=;Vt8nP+oyVmFMX2 zf$~ZE`zKbRsUZ;(PaOieZuUiBT|USsu0fs({6w{u;^$)pSrQyrWvkzw4ifBWv za804?9WW~xnLccp|4u66DgYs>HMwYb+^O4|jg+Wpw<5Zl4ZAccne01d$;U+r zJT2p9URyuKl^I`BM4C)Sf`Ed?pU7mawh+NnwC?ENvt>9Ap=`yf&G5x#k5#_oOUumU zZU@uJ0(SU2wDAh2r6K>{3~|iq2&pT@=UX*2rjHmejA(Wysi@QGr}AP_OgBjz(#AlR zS}wgsihXQye4L0{SRSyGt6)$4Gz1)B{aEEc*kNWm;s0od)n~>~mrncri<}6#{@=_n z#Oo7Z`2j>&uUHBnL|3#1<+-Yjl`(;I#)V)|*P}Ux@u9X~C$I|rPpJRpMXV=rdz|@? zH5>7QE#0>Isr`*K6HEKOq2%-hx%E1it{-F00^PJ0P-XUsG-lPiQ}gG?$R~964pyC^ z&s)OkTQ7Gtzv35Z31!s3H}&397kB*#lcC=k!?P&7Wp9-w>+aQBR8&^f|I+x9 zs@E2u(KJw&JkeG2a7X&qirlYt=lO(!P;tzwRAMw#{of1{L^UZGqxR{+F@C8uZvPCT z`ntUod93JeV(GmOkbIU~UHs_^AccWolt$eZEQ2wN*?cR5oVneoZ zwAVbJ`D}5Nfw*$3ams$UQ!`9WL#s1EJ)h&BN`M{S0Oqj%IN*$Ww8ouQilbhMN1dZS zgO!gVMEHVMd<|FRW8Hs4)f|3>XBobK5q9sr|5>d4Ut&uCk3<3g@y=fAlwQ#apLbyK z+kYrfeS`ka|n_i0>EuK zv0I*2-Z;K4j9Q%lWZ(kD&&dwTl-sBG=^@H6=Q8+PSJ4f;ks(*P1P?GS)a66NDAdt$ z@~Ww0x&xuM231KsF?EXN@=}h~9+PTUYqw8TS<|QH@V;bh&~j{$*09agGC$ij1d4r< zb#z8r4_l4akxNxg>|=R)QC(Qo@>%xli8Q&x5pz_GD{|}6kUIJ~S&=p>=$mCT3tY0*>uDpezNyt$ zD;W)^{t%Tyz*AtsSIXQV5k}@KK`&-#2 zFYku0DaciR_0eYRvE3R9#U?O9@2qLa;n*rQt#C?k&}l%RK2OZ*sXFW^N#B?qvU5MHs_u4ptsdDfbV35^cvX43JK*Qmj8~NbO$x_b=jII&+c$GX2$8=% znB#QSzGc_;IR|TGWrZ^)u5%@LbgcepRfNWgi}Auv7edNziTKevpXH{eL$ZcOpT#DGg~~y6mrsajd!pt$V^!G zg+2}0fp24N%~rl-UW6~Vglwx|Go(f^^W#@84Ue?}BcbRhhH@TQ$NF(|)4b3*VwJ7n z_ADFF_8;wd>eO$12|%M?Lj^n0d*z0oUdNY_NKa93t-DgINqU#4&i-*YGp}3cryl$V zcU5XnXkk>Pms0L+Z;rDT4f3>l*>I>lJJqV3?QhM#JL~>zOA`B$+Dg@H%>^}D4@OXb zOV?F;J*zP;su2*z{6#t=##T+HhU%hpevDhS@`ho(7VfacWo`=V;o+4J3~Js4QG7W4 zq1GCmL=Vtk4)ScKI?ni5JjIq0!1>Mp7<)&#)30M0wyNsgNyAGm%)`l zgYoh4U>G0TAu2h93-<_G5&rC9A&hSpji8imHX$DBxMr$22|}bJ-_l> zG^qU%)K1kDm;;4U?5yl>A<+Ch}G$*+E(do3qOer5A}cb!by5<>Qm zNYGpNGNHhr42QH?gqNc6i(BO0zxPp#L#X!rJ3R#ki$!jy?;@)X6I32;wwZ)y{OZyr zu~hDp^Ik-~AU~}M7qRby^+sv2X@`qH=WMzh3BRW2dVl2P`1v5S`Y|o71FqEAjv+m` zA1nMA-`bRIsE-JgW|}_~z~Q&PJ=|j7%W?QIH5|0cpRaYxE&(N-uNHb$S^*zM1NCmc zE{bX<+nR|3A5&1!slP~QV&Vxp#Swo=$QRMKqRr=PvVDnYF zA=SXDt4VlOC7cft1}ahmpn|W=Zn08PpJR+pyrhja>1}b3lz}k6%};(hC->OJ+{in> z{Wi48ih2re!k<<3LX&Pbf^|^vBV_F(-KrG6=H69hmu_nhTXf2L7q~U^B|qUk=Tx_= zZf{&sek1eFpw$3@s99n8{@j{2L7bN{#16h8ZfSvgd)gx_vdruP0$#C@>eGLR9Nq-6 zFCF<7Q!lR`Jx`OMb_%0>`s_I(sekL}Hc*x&R1VzpwKB|4{cZ3^VT>AQ@35rgeFZxl zF)_wx$9nQ&PN)9~+-4K-%dOZ}w{ZaHrldf<<|=>?FRl_ZeCTV`gz;&MKp!u!ta(_w z;+7r5Gll}f7N%~(v6hRg%)=qp(R_$_@Vb_6sqLna21V9RmU24c>Ll?a zQHboh1E%@I^guuf2c$syqOX%j5=@N_@C=AT9npxIj!9GlzgV&cD6D)e->`Khu7 zVtAyQZOGo%=uFi{OiQ{c+bHzR2Jz2V!Ssep@L}PT9P8WbwxaD(9$hhN?tDPVy`J3% z8q(Jv=Q7?y_GK|Lu9387(rrZql;p@81C2L=`1xZzx?Vj0TbYUGtueQQLDyE+25?~k zSf(0q@Hrx4_h{(Q-P4_xfAU4FN0&_My5VdlaUnD}W*W^)zA zWg(4l#8qoHuMPiYAbTwxt224C&^G^yPd9KVkH17DYr=m$bNL@J%Z(fV6Ex^3hkcnt zK~b~(wlV3A8*z6Yd}{--vgT z;PkDYd?1;(6C6;9k1#4D*Hrb0eh!rhQ0L9h))($(eR#EcN-gE~0I(IWSeOXscj#A{ zhs>+oiF@PVdGBUW61Y6dEwA}uc_}Pzh(fi0AoAxih7lunPgvd&6s_u}nxkw_s9l}2 z7#|hzqi%cN;?&A_sa0>%P;dULr5~;|d)RT9dEEskg9(OoOwkz2J`k1w?*0BN6K?`2 zwgbWOs)1T~J8|Z9Ee;np)9g_`uR=G9^+9*-9rqv>nmxD;Ao!=_bhQcWYKzN#37vr` zBwhZUbYlH27ZZO}Tm$A#^k4)v_v`JMhb<`yiKEyoDW9A3^Yb5`u_jN-cy80`ROkgA z9GJU%+7=-cX1r1R=;6KYJUN-hd1t|5M9u}yJY7qt-fGxnC@m8-Cz`4DicRL#eWAsm zpzC$~2{Q=Gw_k|cyw|^q1@LG5W+Wlkfm;0w!Bs|X$ob$R9H9@&xvR&%l`i^o!Hsym zvPpRt@FywN0=m=wlYCqoMIGn3OVoE@x+<&5umrB-k1WdpMz}ueVVx z7ZlZaK59Ec(Qx!wn<^D)6-k&pQOz1=shc_0gb}QT+Q*6pJ)JIF?9aS=GujrIc`{H+ z(8x?9?J(G7q4-(Tyt9x9pS+)+WOGYP)lQdF@^(jAA@StcyO!AJJ!RVE6&!ZW+T}Vw zciG05dg4okZ`SCclZ1=FF$p4XyNhbdTj+WHj&0N0F>2oniXRP+;PL+k+q$uAlY*`S zZo9cr)@=Lr-HrpyiaVY^_E*7i)^4>751M!PQ~gx+KtEh!-IwV1+Cstp#}o{ZHAY{iU8a*poK}TYjJ*-0E=Slctpr-nnF&dfU&x%H5ah{El}yTfFwNSwFh*w!8|> z!dt55q{UmACHV!q!u^|mWJNWd9yRc{!_Rjj_Z-5$o${1pR^EBN9#-4cK5Z3n{q$vo z`vuU6akkF{(=**C1IvuKv)nkXk*N>Y16<2sNCMfVF?oWwPW;Z}K!=VlEW~tocNHy^ zrKO~V?e02j>F99bKc|`G$a`KTne;vgXMeP-GXhM*l|J@t+C#q<;v(ZhO(TF3qr`3! zj3X#19Y9o~S!vDtYV|KgMMg@$>xhm~r&*$l`(qexW?WkZe^*qU8Nq0_joIo_xWTUs z%<4%#fH&SmA;m*3ddzY5;9Wib2f+@Q33BV3$!yy1*f1b;n7}RVD^vmHP6Np_wST%6 z7?$nh*u6%dPP~mWm6%3!A2;mltX@m?gX`+!rgXaLQ6`Xs??T^?7idQ3=cAL8Z*K!m zL1pb5I1Dy?k~mcPsv)nXh5oqhSPr|~WCsdm-U_)FxE}eEdw)2V8Jz7J{fwsn3s(v+ znc|QIxO;rpe!xDx%T^E4T&t&LlIu5T6rI@Y*iSZ71mxE9N8UNZ77YyS2RinX&kM0ZYW@GBMa_ z97}6FLPLVn0wCQH)VjsBX7r^bApZ?X z6OqDhb@^cDB5rPLMf6iV+rsPTaL3Ob!K5!WHK|<0R);hAFWjfQGa=QL<;*vA)rEz` z!otF0-oIFibVWd75M=2{&I+yW60+=JGEc?p*}S*FC}xz}fprTG%Ou=LV@KDv(3$Xg zD{MHW4@;dz6_v#>ieGD6ycI5A``i|H4d_Jl85RgH`-qF2NV}*v?y~@RRBj5*p zP{ae%b?lOp$TrY@ z`rG*4pbJFPxB3sqYQhK(Z6>I;y4iQ<-ksORrruEg2!7{1ZO+G{E)T`{ks zjh{bF9RffJp|~zE&6r|Idt#XtR8`5pJBu#(?>?mMIUUQL5Y@Jx{v;XMgK)26aNZh7 z{U+11SgaCh^`hyjC~j4{u*cGxvBgyYX00F4r4;hjLjRK~0Vs7Y^L}|s>6+u9?o@Bf zUV9|oe-kX|dTy~l&5U=z%=E|>))&K&ifCd>IOy?E>vjD^{tV(00gb@UQdSxotrlvcr{OdlDOKE zLBTEmKq%-%Z^vfGYHTnYMln*=MkKZ>+e8F1D?TO-u_&?sIOar4?p!pbo;4aDVLlH3 zSlB5Lv(-)Sg6vBK24L%TF&?K@Z#MQA^puKUj|=!0f%t3;e_iTNO8$lw^M94z;C}

TV4&7$?+i#oBS?;blb2V{ z^rb9dH3h9Z&!XXw3j<18iK=MYkzv=FsyWkRkHAm?Euv${S)xm7YN!ee3r_$ELkt#+ ztwp^JT-ri?#A5xi*fp?%ogJryq@*g`Y+C$b%%Cz7BF4U=2IS^u!-2N8Qw@RPLqjhT z6BB!tI2P&$nfEfC3Iq&X+o!FgJ6Cj3i?N_hbwuaGEMM2oNUqzsMJP zdzD73=!hG)@wv>+QsFkE(-{bql$2!agn?{kgdIcYPNrdy@L__{FhuseA`05xrl4T-kr5 zYRdA1LR=J7AJMNVSdlLQ?5_D}o}6nBqgSs9xLu(gcLX00 zo;FOFiVbmqHOc?^?gCh+rllB3OQ2>EeEQF`QrCqtl~+IKe>Kx}qiMNm zj~kc!BR@`I*kOA!E^#$XA0I*0`qDj&XkuaiP_-Rc1?Jgo1Zt1UE~s%nEe)~Vz1(he z9r^_eRI_`j+ezD3tuF1~9yJWnK=JifJUYUZmzhOb>Zc0Jw-TQ8vc-ZxI+X@izT;5==<)WuAVzslg)3_MH{cCnOaO$v0 z@F?^7`!^Nc+VJOQa=0|l7u}tEXcbMNh~nVKAb?*i0!S=z5q^i~0D(&Ib{Na^kF;W< zHA4F7KLl%t{Uf|twFF)`j)Tsb^2zujMoq_P`kFkByn*=5%Je&1jg&!mkX~NB{1_md zP!jsKm(shJZ+o(tgJmy;IfQ=2rUdeS$d8rFUFWjC3o`U+xgdUlOk4rEshm%UR^UXa z$@!-41-3#~*pzlEP&gzp*X8E5K2Z`=li9x%cvNnZdyp@JOp{hnivG&8Ju)>Fnq)*e zIyVG5lwMXy`+cRhYpwPK*-$tjViYj6l*S?C0l-JeO{XB!7-a@OH_J~(;;s2HQ z)B69)`zb6#IP%f>3%-^i1Opja;qpWr)dK>YL^<=$w4cNHh5r7Kgp}{FqQ?MD@xr4i zf?wh<5vybQu!5k1Oe-9=1$ql#@T6b(KArxC60~&g8ormIIeMubKsINaP7PfMk(Mi& zf_^cFM@Izf!(S*uLP9urc)pGmsyLN`ja5?kqT%|~Ekk`k!G6tIp!J3{1_^0&97O$R z)^rkJO~pZ)T9YE-F+sw^XcyMtPxd9-#aMOKR&@|x2Y6K`Q)L&ZE@@Sdi zEY?0_!Gs@ob%Xf-(3ds`K%=a!&5aJtI^_ez1;ffXj9R9vUp1kB2E>+FKZ1fY?H{GI zdie^+&wXEy7sWOMvJS22cx-Xf+B09^Gcsuv2&h5?v=`5Ff@Eb0gWmd&r7Rqu#(4RU zk#h3$ryLx(TJ;<$F+UH0WE2*$ z=?NUA)fs1miz@*~^II<`xHrh$$9>mIfCTMMT}8sotZwf^fb7XIZQ8`8qNiwf+V-HK z_aw4MzB>}^o|%5DP?@!79*joQT}%6l+5lKs9a7!O>=9IMy}yfbTT=##m|_+B!Z;GW zRU-Znph$2b9TKdn5Z+*!PK=?k(#D~yx$vCmHSS@=XC$4DHNj&D`dEqC(M3#)a*0-3 zG)SIJEDnztJt=&3d!rrGV3DN*rIHjh#r>YrFjAX7gD2}9ak}Zm+=Pn;IyS@BxXWH< zs&}UJ8(!!|G+}WY7`1^#Z1H`|rI%Xy9J%s#7YdIM*s%%kz!;x29k?$eid zPdIrvw3352F`U9k)NCsLD?lga-MF|u41qIn_bjqOYi?%U2MM@Ya{{hCsY0+yp0yl) z*+75TRxE1OWwNq->>vy}irqmWm;tVcc8;aA-Q0SjCQqrp40BdzI#X4EUS)sd)Hjv3 z?LB6Piz`X@V)aNvG-DLLV0%J=K>q`|DUiqv`Qu*g=&`m@N9F0LJ+#`<88)x_LUs5h z_mhZv&2U+|^`j}ceIQ~O+;!n&%@+!j%!MHQh*n0xlj|fgr65|-HcqQZjpfzVyXtke zGZKTg={FtjHRDblmex2Y>GGA3UzFuLtIWH|7$iNBV{=Py0OkjXwuyis9Ju-9N#XRN z@nSWibr-_u?pdS+psWKpFSFH&&Re%{^#`PA|6Gbac99u7PulxhR|mD94#i=5n8Ut% z=}*2F{ZzKbTnS?Y;Hm?#!-qx)tU_7un4S2`#NGZYb72MYpO58F&o%@|DqTbk16o*W z`u`|nh}H__jL0nj;oA|dMvWQ^pkahk*Rf0VM~=|r?L}*Yuzu_^OTC@l*d!ZuO~%Bg z6uyt;DJE>)h;mrkrZ3{K3*I|90FO&s7<=rH<+njtT1rvW8kpZbf@<-_2%GCf$8A2a z&i(!TckJe-JtrSuGJv+5j;3B&ZHyHzqDup!iXX|G&rXhw5|qMVO!Y&+VPHq6+B1Iv zu<$EWuUw*`f;C&zG&GUJYmw6$9!yus$d;G5;Wu2A!f8#WNhdQU1*Z+w)de=`+V0;! z*iV`^{Ixgx5U(hluwpueU8*dvF1q7jja$u9S#{X~$eda(e1R?q(3d_7WR~mH4IU9< znW7#CL?2O&MnDdY3S`^J`=QX}>f*Y^%fuwkCf8(2knRGk_KzQLl2!d9p;R}Pl=~yh zp-n{mqsTE;!6`$->Lxv^9gbgA*4Ewv=EM5>`q!WagK>#tqZTiFfCKV&9i#QkNGPT5@O(Tgjm^_th@_Jh$3&EZBXlOHfJ<~ zE!vS%*8P*ZU2t|txQ0X#g8<5gGwJH>W|HcMZC8Noh&fQPG#ryLf5{+AuJz}yq4?@* zebC$Im>&so>G{Au$I;NunsnJo;cI=>pPp2QvH`5040O0!xBwtfs6ISnqkDUDyfikZ zVYN5vFgu?|@BwfGOOEp6O%-p_5|fkj+S(WaitwB9_o8JCxaKRj%9g|aVvJGhMjI{Y zlfd=Qs2#@+Y?B*7!Li@lIkh^6ZeES2(@g@`K_KLzaTJZ$_Ls5KxhqbD+Cwh1DimA- z5Wh810erX_j#IIfVV#>BkP8c43f7>$`~kKV@BPZk=Z2xR$vYvp3mH$9ywS8#GfV~W zZ7S~`>r*P~>!;bJs1HO60K&+;vhI*-^@slLkK%4C2JGad@4uoLh|DRifNpZ|zZ=lY zhi#?DsXld5FCf;?(XpP}$pPGXd@AG#x!VCk_O>S$Abl_jDu;e=<<(eviPR;hm$1$Vg4t^vnz`qE5?-qjG)V z*o%~=r04EC*wzP+W7Mh7I#FLEC1EMYnBiXbsL{x482402XtTk0|1B;6?l4_sDUFpX zImQnDBt~ESkvm1D$I2WC5K4OfL=8_*Pz12poox;)0w8?{NQ{z@w?U}3zR(}logjJ3 zKLwuqZbW&cyV6?$(%d_}2scG?&4Y$Vk$}Tf=9vmgPiKi?JiB_ag)Y2E3s-Kdu>{OF zGE+YyIa&9|{&HHNO8KntHqu;w>CtS13p2OKD#m3O#SVP8FpjR$ku1aLo-Hh1?#!;89Qzf*n-~U8TmEDOwVsB3w=HqpS7Zu=W^eEc3!_R?oxQ@+vWq5 z6%UpHndRAZ{B!tpQU-LoTnwUS9B6FwV9f;ZvD1b%Hv!Y6KaRZ_5B`e z>uARz){HyRIn=7fvt(Dv3e96E1>27$VgicEieEs7W(J`hGX>PkYZj~E-Hz}*{_fn) zm*X)?UBDBVPIwF(z8xQ(su%#Hbi;Qo&JtH#rv7=fayLas5Id0=sUG?T_Kig|L05&wYSOa)X&{ z>2Ge-ox)!nP=B160@ah`oIJ8D9Xic~Y`MUST}Zl%Y-tLBIhtCz-cJAC4uMzjaEm}f zzp5G>uD_)1DK)1`-Tdd?R$XLP!OefOrb8EkmHd1nuX^Yg=@4QNA9lkl?d!=8lBE;i z^(`{rN_>I-mPCYBi^ZfN=#UW0KRPjn5=Wi1M#FQL@ZI%w{8yCY9MG|<2FAurpd2`y zQUUKjaj5#^*?*rdb*T{71Z^4shvgkEdA0yNu+yeB2VJ{{J7J^Pf=a!`WTp)QiCn$~o6+Ne)MA+NUCF9zv?0JPimY z$)N;!ZqM8$tXh`SB2OpDQDgDP-nc;?x3zy6FZY$z_f zia=Q*+(D&&$g(Hl1v>WGWGhwa0CsW^d~+2nf;1r~PcM3$5PAxT-d)yf+;}ZU)loU* z71~0!%2R%eZO6VYnD4x)(taYFTU*+Rie>HX3uC^|o{_}vDt&|EWg%!?nPS7f?@aS- z)GM89zt@?nHd{-|gewSmcsLTz_{zWZFz=!K0gR?x(Oc&f)ZefpuLMh{LV(kXiImhMq zulj1=IpHEJP|&ft(S8QMH;yJfjeR=#T_>Bl z96gfLH>a)#AXZv(bqUcRB2>iPG1N5}dC0Tizv;VA$|t*s__0~J-eqhM&R^MvhSPy?puhjq>&Jy9 zj*o&md<-Ew9?8o$$U@ZTzDJ23?-IN%0J>(Z7Ki6_YG=+Z5-u9d*#15I)XB+qzJ;`K zaL|@4$X=2Uyfv|lDutiZ&!+yIplD5#K7uTBEg}TUr!(J zc?eHT9@~%jk}lMUI(IuYsBF@o?w)qEtq1=I;a>=*_X^PUTkcTcvHQ&2<|)AhY`Zd# z7|V4ktMdvr0In>FCJ{cfKnWAPzMd_fY>K;7Xs0Q*vL#w^>& znW(`BSYr``rMk629Vyhzhw4@9_ni)^0oUGVJbAQ*BmMQgy8P2|wCG@_#1QeJi$wC& z^kNrdi@>?aPK&ZHP47!MKqFxn*!raVQK%fi6#=kogQg~EHHFv2j z6D5$$pha5>gYUbpx^!SetCn*J(G6aK!A6+aId`eU%L{(TMoS@I-0>6ZeIOQAn3HaH z@?z*XpJ0X{DD};LSAZa2`vn+T5B_}AfwgH)+l**`*7NTkr9%>5fK8pL}pcRT*tO*rq9o+X^)_`_DPhX(PX^ zQr!(8=1uM*LioyJ9<=i5u@8g&F9ieyi1{yn5;>$54B1a@JB(NPh3!;Or>PJ;f9NRG z!5>}wENVxqo4F7@YmPgJt-ndKUOgfpP)L5!yJr4nAzw)GJRiKD%j!Cq?0~Hhi zKygnDB7f4bU5~FN?>1>{&)XOa@1sfGxP*j+IA~x4fTUSm9;_yN|0>q?%3Z0O7G4q? z_Xuop1ys}z!DvxRG;;>C(D#Dy&~`i;Ld5a=MHg5~h6dGk#%Jii-?O~J_{|730vOy@ z0;Qz=D_PwVDHEcHSz`Oyzt5S^`LVx3gT;KduQ{J#jR|U%P~UJf?;(n!6QY2pCmd^F zJAR-Wux8=CH-G#Kyw^lZ*dd3x?>b%=P34@-?B|(rm?=R4IvFzZ`nebza81(H&w?$_0DP71ZI2EKfP4Uf7^Hn~x$HU& z&h&JAAx;9oHVMcU>_H}JGHbV4#bc<>2|Yb5-v8A}*}3AH+t@gBNT;)s`#3>eEJ~kV zbg@bn1b`s<$AL0=3bBjdo7_NSEd-ZBA!H@MI=y%Ao_w!e^T3MVdgA6Lh{WEqirtON z%w#y}?_XTo0nw)>IV7us%@Ma4AJxzK znWam?ax*+9Kc9_F6arY~_>>e<1d8$xAXM^CNZ$Py0D)|#;!g~7Ha`Cjk{6gSbsoBQ z+$R{1>mic6xqCR5)W3lmOOBB`F2%O9hN({oc$1J1dMad${rSiqTA(pP=zfI}r+V zhUlrs`%<`If5_|r=TX@he_oe#Y!6?a$Bv#BdJ*zFeWp&x?!;qe0|28F_#W)M5OuzX zCqAQS1LwB>X7pt~Q)B9cobSi}IgAfLslAlm5dTp~u7@~$q58@P9FISWTky~+>zE5~ zNEY-gmZ{6aDdS;4GiHydZGA^(2jCc#(RvIe@umWoK_3{z38AQI{N9~8EWz6JF8XY- zL7gP{F%N}SS|ImpU^UmJx2V0R%e`?|rj?ODd*eEPodt~Kh>)tXZ~(w)pq$X#X?Wpe z1qsLz?msdv73IsP>#>`vN)tx_SylXDDio6ui!qs@O!k-m4f#dknI##thhJClUaFh^ zwe0{m^V%~pJ5Pdy9r4e9W6wZ{E3MEW^D0|)$KS@bd##8XZJEry-BiMdY{41{ukyEC zL$#baUvjfHHIAb}1z?V;WQynd{e(dQbRdEUlh1uAK)&oynP^QQ4|I(<;r8J)tyj(O z;QP?gZ2XT;o(wj=SIMsKzYLV|ls-=^s%-W8(f@!Y15vuX{~8$DN+R>8N|qrR&aFy- zb1Vb+!r7yK?hj1Tboe&MlUd4Zfsd#5(78qRx9KxPxy0+W9DpizvvpVFY=v-sWo{#v z2!VwZK;+k0bAD@=ljl>xr=%#;sHK5{0l~U*5r=;>sEBz?15|=|>6~OX74gQu>_F|p z)PAbj5Xk6Xjr#C`e(_6D2qfq1QTNxGfFkjGk6=mW$FCOcpwarP@rB3 zDo2gr{vU;B-geSM=&t474*&0`GfwSLy1W{N+(NKh(Ni`R{ zut2_v_Ba5G#zz&g6l zZ}%dG3w#oW1n=P!9q!Y6u0mQq078Se@zLtz>FwX- z9B1(l@mC@E1{TQ6G{`|7(V&Ti#Zu0XaSXwa{cC|BA-)#-oGXrxRvrtC?Ex$M2k7X} z96~yavZ3mlnh=TsSoPtRUMwjk`zpWwM}%G?UOPJaoS!f?6Vg~(3MO5Jbi_qt!cy_6 zJsghP@D*}3xT4SV~|Hlz2LSTjpIT%H8J z!vqxHhyl{&cJoJ+j7-CrItpjPsmmn0HwFBFWvnt#{)J0IAx}7`zkE)Q9z(qfLONl<{(yNI6VT1}NcxlF|@U^%H{^D5bxtEa5!iPh8vG_nIH@6d~l8h zqp+pOyMV+57#Ls7koL~q7C|7^xXWY*XaE;loY9Z;be`PG8PaYS40 z7FoyknL99bTwPt&KSE>K;x02?y`(<%J*w!n_m?^$+nZz|0vBPxSy>n0T%Z`R=akRO=rR#SQh4>t<08&q>&wcv zy>SYxGdkKKcJ!k5xwom4-s))$p= zDg6{c$}6Rw2*F}dCJqmcGs}t(Yl`q^uP^f(B}O_$@}A&a+}{BST{1GVf;Y2|ZpfAq z66|CA?~I>Q0^GC9kA-=h?kI5Zp1_y3R_h4^26!D$p@BTb0EuziHNC{A=D3gBeaz-Y zxbr&X0P`0ty9AI1+kAu%pESp92+Q}H^l8`LIDo42vW1oN3?ce^5mhf)W|JZI!%Ex^ z#DqcZxHU5fP6uEMRm&!4Y=LFS6WRS@zw=DN76<(ImfZep&>0@i2#BRMi*xtKHTYyx7~#RwOO zXu_PGBO!VJ?)I$SW9zztxW?g@F(2`b4!jgvM|Z>->c#K|Yi1_s?)}2~yRMHyVEb{Uw!`5%So7rEER_Z}4jWqot=GD(pdS z(oB6v-p{(eGZ_uGS~9HyKJ6c`XMr2)#`d@%$xWM~Zw+G=`qvV<)4t{V73BG!TyR=C zSv1@Z(OUoBp$R~a{=L5oS;YD&^dhFeU@x4^aD)NdgqJJMA18<}KtMMzu`?k1k$Vhe zDq^>8FI_4?2g@#F;Z01j0KX*n|3EvXY6H$Ey~2sC?}B&Qeq2I^-s{1pfzdWNBzOl+ zvosy_-`IQaxF*uRUsy$DEy%5`4HR4fQ4mlOkZz?{5s(^`CIkr5`{-I&MMS!E5s*#< zq?f2Dy(m=(5Rp&=L=p&uOlICIy8GOFKj%K5bKdj*@jUP6bM`arjFTzXOeWX2{C?MO zV3uwh0spdYMD`*wd>(n#r>%Z(ptj;fUoEh$ieA=P85`N%uK^`DU^7*;6Igv^YG|u4 z`@->G-@l0vD5)*pwIMp~j&~MMaCl11ZQ+X>KDl<)fkB0@aSZ?qzc$?B&-ZJ%=~8qV z_&?8qFEqO16YuyI=JvXYNbAvG*be$`NK8P(dzF8Aa50_?<@-L$E8p`VY2fR}a8IL8 zrK!xwjdb}u_v7~?NQ(C!_Tx6T`~k~u`1A(BK+GbUq_?rUXKk0^O0~0tg%*tf48uUoq88^KC%5CHimG<}> z)MVTy&CpFfkL2uqg22!ZaB;hLJusf@u(Lkx_J)tJ+BtCF0{AO?Z2@!WO`H5^KR$I6I#0T>ZRcRTgwsB_iBYYM~u! zA*awj0EO*Ma6~5tfW^w7>V4>(UQ%+h>=ov!Ub?C^oyC6jqbpAuu$`z>^X4>lw}R($ zX5_o$Ov~>uwHsPcv%Vi8ApZ)1aW3zhaOn>YGwCe!i^KXVy0-W2hwnMAA-h13W($+q z(%M?W=EEtV5zvvFFAF@fBx^Vo^!=csLK<`L0nfwC4M^sA`z5HUvw!xkk zTE`Co-0(c@K%oPSJM%9X2fEIm&6f|Q?A%9sErz9Gf*S=ncUjK}2~ki`uz--MzCWP| z-0B&N;0Xb67*{4;jYzAUVhX+cCcyaiF|S6U8x8j?S!=4VAa_$yyO_Ns)WH@|uB(QI zMjD>p3)oW@bt!wzlc2CBdN3ZAJH4O)%+40yn%1mFU0Eik+lWAt-8;5 z>YHpkd|dRg443Hbxw^efsl2j++~Fc6rPD8lhv~15?s!vba&h2>xWs~D$$86cTU)GK z%$=Jtul76<-orIZE{cxQzWht9=B94;>E6bTr?_^W8dXtSX9qsM;&FbtGDodfrQ5H@ z>C#F9P0py!D`J89e-aM#vL!X^l- zEA1w=2gn4OEdu9-?d(23kGNttFti~KKJuC|MGCs~n?Ph!VbqC$kW>~jm8~Pt;0I}h zJw2>+tkPxD&fXQi+y~MmbeV$pZGJ<~(!|gsQ@p|R@501=A^fkQZo-7JQ)lFC`kT>P z3y09ml2T{QnBj!|ywTA|Rs>*-tsUGT|<3+#ns#v0&y}+tDXP!J|^UIk=qds%7Qa0zL^V*)GO*6&D7~|y+e8rNL zpO(;w9n(I8dB%$4<4b6ds$z~a3l^6 zI`IZimC5l(SZJkrK1cRF}WrGl_u~{b$~B7p294?jdMlMhGoY`7*k&&is%ojCcu>sUN9qxN}{**=v4v0jX=nL$(^ErYrxJYvJk zCUW}(Af?QlPrc9655*T%e@#=-_DQVU!_ze)R@-dZCZT-v= zMk{gY3lvIOY3Zo7bp^2PXb_Ft~BoexY3P*_f&gUqpL8e^`tZzO%1p2v9 zxQgAEqiPZtfRj~S$uk(5XpRgDB#jh~`|XT=u6`JE2}1A0#VycI zgn6n`{Z9|5qO2H#fLFu_TvXRh(2w5b>q7+S6P*RV$qGir^5BlV{GgTY@xma>pyaD` zdUV#%dh4g9t1e%7L_S-X?2D@xSdDbGwlT3vQsy-0TKtjjGYr2t%R&x5u?pQ=hTndvSqnmjiR{{&#D z6ir&s-OktzzV1h;G?1OX+qO4$0_~{wYB-GgU6mj$L21+IVPUlBU_pM>oBbRtHGKIy zfg2=#fhEgZ8#aRZkt6?I=PvmhM+CMH0rXtCIh5gui{G*O40;^}y>_5sz#1}!`2_`N z3#Ll^%+}XE@^1kc`;H8bx0YV&{4EG-ZsGv$0Dj?{Q_;nrfJzNvd-h9hWd>mgR^{R2 zw-Jd|KX2D6G-K+McCNykZ(5%t%3X7ZlBX)Z{6J(OT6a)wBnuU1?r&Q93#Cbkzw>}@ zX6aT()63Ho*E`yw|F|ARr-F7yXk-qw#MU)*g+TP4Y#vfAA@fr6)5FFm`Mt7DRrPmq zmK(S;%v#hU;8wM_OnlSJl72(4Te30G(6JYmz=d&9=C?k5MpWJ@k!7W-p<5u+_+!i~dqH|<>uYZwp(P8~z-3ZxcLedH$Lm(1eJQNeIfYh2u2npLwh`n@BKw_W`w8|~&XZg!bOVejmT$7WN%b@LS z)bmHr59lkv1c70JQq$7Udtw^ zytSqhq(9R9Z?1sV2G7t}nYv6%AzCF+KS$8i2pABMpsS@InvDG&Pv$;<{0(E{r$IGa z18up$Z}%m5f4^8MFE39-8XCNdu6Oh=@TuHBntBPngI9VX!z^IHMFvdX<&|vAW)B7Q z%Ok$oLoHA{uvj!&2{R>Hh(xwjkN`8mO2RK|uwI!7H4V>o5%AspTDBR)@a(;WI{zn#pA{G!AQfIshVQ9P3f=OtVF*t zZn?WxxVgCv9s7Rytc9nf!@!U;0=L}-nz^ovK-kG7^0$%JW1)&|9w*T2Qym5e8EC%` zGsx4iJ)G05Xe+m_loC}`?B(ZZtd_;2H2-f+HLyzeyCF2S71K{e<;Ct62ri-p;2gyR zZRB(}1Xe``ZILt~G}WTydPnv&nj8ZW=xW~+y9aa;ZdJN@I*saAWU3ej?!h`srSmtI zARw5TCC?XCeYB;0eNOy))a?5Ys0jeyM0H52d#-}L06+g5Y6bCZy7uhHVyRKDxmf)V zH-Dlhe?Nzopn0qpSLq3ZiU-bbOHt2O|b=+ zzGR%!Q3LB$tKG3zN-@~j*$Khe?!haWpA{>C{V9#&Qx#48j_xDgmJ}}A6Ru8aA~4|M z#d4-VH$76l|Ey{;)!T2d2?5Pf8Xa}v7n1+HhtYcRVrND_0QfS{QnD#$&j@u&l72|h zq7pasj>J~u2SA^Z)Q* ze*AyV7y(S7ItuEwk<~|w0O*WOQN4e+wzl>qHH1{)38c0*fTBa-p~#;_1|$Cxg1z{c zi^R%q-@R4wgAo?oW##KS`IF>NBsE(HhuUE9T<8>BLE>avASWNJGGx&8a&HTyQJ!*W zYj78V*b1J=wgC$ydm$!tU~X>CLXR3Y3$wvq*7^N|(``#6>cpu(^;t~TJ?qhm%1X27 z*rar`pW-kUm##P|=QK(jCdMWaPHN39EcCwvB%^kw?_%3^t%U_Qz;viprtZ7w^o0Jg zv17tiuOny=HVSh14NdJYS^@!Muz9!rz7~jB4p11cs9?oVKpXXuylXsDYSOJlHYvg) z5snbykd1gQX6ZXLUfX85dg%8@MxK8 zjF(gQdId_&GHrm_Eq7swOw)!5H74~C6W4j&71M75HChiZ2J4%K2T%W0?2$b}wti9D?IDwy{o{u#s% zNHNpw3NpY{ib3;rnD{Z$XCt#CP)sW+&VqR$F>dYAOk0Uva|iqI;iho@Epw)p$Pi%& z9nI50$OcGxDio4|1IkV|A`;7(5K73Z6L_&FvBQ`wIWh5AyXS--M}+n~6eGz?Tlb`m z>TO5A78aCyUNKP4umq%cUQBfnyY=&}Ye31pp^mJIm|zf++x8Ru5$n;Ynh+vthMjzz z=6{hiT5ra3Y|uci0QY6?r{-NJm!xavKL(HQ!5D;9-3{3mTD5-AOrA#T@oHa9i+Em& zrJd>y8NWntH9+sf;a}%bjxw%JY~9DKwU96a(lc;zhtOj<{1PJ7FN(^#$f9*l8-R8X zDLRowXR~WOmR@GT0xzPU`(XVV2$(`C zygTRqH`JyI_{yF_2-k{QgJC&yRjuL0QaAL~2bp^RQQoSc+-Cl=w*$OmP#0aQY=w3> zv|$9Nam@q|Ju;!Zt%by%fU0Rw(TQs-Ox6kvmBq_P zyKnz~3Dw|cz_4u0web`%N4`l5_SBAsEvp5;&N9x?Z*8jyRl5if<#S}{wS|S%xzR<8 zcQyxV0*jpSi*?`qKnKH$=3?T6m}a|Z(h)HPfXxr!9Q0E1P1G+&1*rL@<7j_m=yK+( z`ufpw3qW;%gAf6YTUdj}$0ZSTkt<(BARz|ojVz%~l}*jfIwaH}<yh3ODdr-OsAM<;$&;`GZM}{M+lexTJJU%)Mj^C@;>$?O>V- zf*;ICD~NF_VPu#>a51y@W&jm+6(K*DgNbps&RWPL53oMm!fK{2NGX*C6-`pR zk@TK-nA#WAv7Y%Zgb;+^r7jgK3Oz+X=6wWx*M9slT4myAK)hBLh)zIu7Z$n#wZ;+Z zru_=T!^50^0ewWFR)TsDWdL*1M$%==*Vnc4`#D&Gb6|6HPCn2%mO$p1A~;`?{9m~M zlekGBc&6SWn1kgtH8rNaOy29}G}7$XHA4Lb@YEhfA0HrNMsk1P2g3u07Xf@Auc%&< zy>c;MT%SEP@vkate$KZ(+{XAvH_t(w!PXn0W0gQ2egyIm3bI@v1BrzJS_>#dvt9FO zoDs#=Y}Eya!$)NSO7RpG<(#>OOuZ^e!~a6Yqy%aK3@8A-x^^`16I8mx*C#dhcO^&8 zvoz)IgVl4OP2L%2upAr#fDsLMayotR0}O}5@jA#P9%!V&f7*)Bl20oEE^muMlX&lP z#LkAk;@=6s2y&MGd+MJr_oGVGn~H0TGOQ?EP!!~GFmZhob1(s$`c+7{tl&IS+g7gc zKE841hTLt{20f+&Rj=!|Y7O2jxxW5zDVbDOI;dlq-a^`{1!GdFCA**V=q;k_7{Zvo4AydY^ zV5SmJ4klpD8lOa#a~32+MWD?hqu)32liFqDq99qIeSCUfVP6 z+VTGV@0==4KEA%%;_Ndj!gfNTYvV9U+4E|s8=tV94>?OHn>KI^4VD!M0q*+e$g32} zfLS17%HTSY$|m9nAu>V6X0&ZjFEWJ`-Bz*>QY?`(HAwcELr7}7kc2Xdy*dW#G+g#7 zgLzXKr=i)VjNZir@h=82YLPYcO zvbXu%eu>pb>m7+Qv&5&$ZlhJYxZAgl!o$M_+#^XVPo?!<#9V-j{pwB{zpgN`GntYe z{pO4aFExiaZ%W;%{w*@d{FUJn1(Q^gq%Q*Ft+RNB1TxiGWBQu_11C(g67pyK1r4#&zHy3xmH=qbaY7^j=fR};?4j4iZ z;hSH*uov0c%qAr8;Jjvx zJ7}2>t;LD0Xvol%Av|Vt%i_K6r~c8<*w$0~B8CQ&F4oXt%1K6&plCF88Z(I1 z`|ab)lIY*f1EE$|xuph=rHB-Z+h#(Wmu~enRIp4(1IEK@zE6a^O9dK}A>&UpH2=v0 z@(zjtSgfU0wME0^v7sU!-9(JB- zt%P^ghfKAd(ltfASLQq`wgtaxVn8`dYg%WLp)1gg)-g0t4ANSWn!-@6c1cW<305GR z$$3L+JCf20iN{5Id(kkhdT-;hMZIQeq8!u(y-Wv*JxakQ-MK2b`N3kPR}g^b)M->7 zFDsj1rQ_-O$1qiHp+9v$qMyfXPc9C#Y*8b;AWLT_Cz2>^(b1*PO3M)h_;CPjBEmHP zY5Vz9AMXJsOKmNUT|b72?!8<++Zri9jDsi5It~lfU$W^x9{XUBrm`fmXPX*{`dYZG ztZb<4n(?C(GI7t(M1vc`FDg4_qdnuwErC6D>=;NfEbP*OGA`c~uV1h_C8y}f_vpSN z39bRRQug%eapJ+M;0O)bY0S-grq>YeUEcoD=-n<>TQpP-%ohf_PJ$@{+Ua?&&)Ghs z9ydH2EPED5rsU~2l;sP{dHDGFY64};Py;dLFDUvu9R4f@ecaP@GMKu zWRfl-F)+OD(yc}Woeaf_F?f!h4+t1z)Hj)*pT7;+C_;>4X+8TF21DWf3i?sGvuAGs z%liaiO6C&$qd+GEWuI$<9WH2^C78H`hU)EdFGe5MkO`9Iu>_HjNtEqp8r|T@aFn6X z^A;x(kSY26qd{8h6kKSdD(fD0h%4I*lfp8Ulx>Tn{f-;K>-tjX=nBeP<#=0-6<9AMkjbp_h9C=t+fFQs7{^`@qY+gfeti+*%29;_|9A5nsEuqhFHsLOR;Pm$nKVM(YZ=F0Z<1@EPC1FUz!-4&+Xi2kR@8W2!Ls9?QS`~%a-PILX!wzpDH1tSw z$)2edm7E@%GD2z@R1yIcRRJ}c>3$(B0f_>@`ZzohnZqO6m1BVgA}3Tbe4x_#9L@*n z=p;tuhtwAgSvE>l3L1!EO{y1pPM$~Nj0*O6`maF&UmDn5#387*|I^w+Mx;t?NcsHY zK|VA0aOwK0g-PBk z59e_x14oI{5R4Mx*|lp9yiO_2={%ye|2`a{8eam3 zf_C*xqwYn^ymC<7k`vYn+C>I@x-AY}U;5fC_=YzW)MJEpuH9CvD;_u77p3_@Utixs z%QX7%p+j%RJ*wt}xJ*sQJ-+PPwabx8B$KluE*~u(s~q76TkhiFSs0ovJsR}~^&p_J zvLI}(e(sQaTj$3E6DADo+)f^zArR2|q#rMP_H5r}Wbui|xse%TBqD%Ds*iC13PyH4 zkq{Q{c!WyZ)yg5glY_1Cc$>9@v0TcVU{e+chs_(nYyW&|S_cIbr}* z%+W>kqBOJeVjZp=jSAG#Q=O(_C&mXo$`pvMpm39%BMtZD^3jOwlM;I#&0k$_%u((> z0<6Og8_uMAn))QL-9+if)~7T@JlP);Y)&%w-yamG@xIDvF=XpV*I$#Kb&;He%qZ4+ z)H-^XiB_#})E_p%vmbfe>hYS$cMc!X(6^&@D?E%7O&hT zw5WagIRPJF-4lPu@=WKK$8?+orHwq&(x+1+82+(G{s{?Ai?i-zUHWeQ>Yx|xwdp|I zlrp`_lO|6Au6*cDhv=YZz7q$YDYRg~NIZCciAM%rCJ-=R<|DI7O20aPx9o+FES*>7&mblp6SPy5mTlqTN7ZqCG3K=fYwC&p zllM6eMbgT!$Ha;!}N*&a*RiOLvN6yYVld!nvhjw?eNXkh2Kt%gl+5#H=t4mdT!m&@S zNBTSxz+na|TngLZY`{q&5u}Pk+23ixx24;EEe>(6Qlt}>pI0)W+mUz{+OmJu-~5%W z8%;WeAf$IEW+QXII-*qO%=J9gKQ!oaVt4JA$#wp!58IppB(Ot56qnm#wx`Eq@fLu) z6*K+LB=)Hti{Z4s;p~Jp->oMlfcYyfFYFebo~k=;RK*yEi^Nwi-P28jDQB3qJt>`F zw`!_BVk3XI`e3XuI>G^WHFNrb8LCPwzCNG)e8VDfY{gdcNm3dTjpexni)DEcumj;FhNpB)A-XjyLJtwIS ze9x2b0uwjo6W&=lTC4ocn``i2%o8#L?Kha3TBaNxo>cdW-v%XkDHMu`?%4(=YipZ< zWK76aMbE34sHZxiZ%U*xRp4!C>52F)Ru;z`4MWh%6j zF$vX&d`)T+QSSEkuJ8>$cA4E(!<(N*sKktNC$v9<7C&TWXMe05&VHVn+JEh4n+RYp zFdFQ@O^EqTu$v}tDlixTE+BNVU*a)| z{WPA08TjzwG9xH%P5chu<1+VqT=#sU&&EBsID9amM|G7E8o@TGoLf~}Wf5)sVvsur zryFfc)6cp%L`3DuG!^dT<)w^tJW&+#KhI{f1LwR9;_4!r)SF$8Mj4)A@~tf2|3OpG*PZ8>^KeTa{v}={HVw ziA7jQB)k6-VSZRpaG-j~+y{ZX3kU>gC9hk>gqBEiMbwy&08P`=)m^JtXjX5YpO3_J zsxDnyN2J|?car%ZMSjVqpy}^XHd>fd5wO!^?9x{&?b3#)Q6-IyjY)~A{ak7&o&UfA zj{wvlKPRV|#D=^(R9C7|38H`BMFbPFsCLVBIh>5KcVnRQo~`L1aC#5MN}xP^+BqK6 z$xxIVa^`^qgJzIDC>iw7UHo*pBDj09XBcy|QblR@gFU^EmJgP@m6pn<@FupVZ0sC} zesi;^e}{D4i!_hxUS3{FX=!6dsaDuVUMIivYGWRX9M*4a9Eg-~r%rV<$r*}Td#mXZ z_3m8<6_vo<0^$K{Z;F?arZ7o?n!UY`YDzwrxTR;5l@@d*QacWQQp~0sK;k(uXvQUd zL@7T8tA~ucB2ASr-?n<-5|nX65?Jw-x6~GE4Pm=fuF9wqpxgr4tb|xiUAG|88^Eeb z8m}9kih#SCD|X2AOyaepC1n%3#lhStpwpf%LNj&vS2Q(`7x&;wqhz*PtrblS0$E;l zK3Q{JkRDgnm5Gv<+ub&$Y6UvJ4Aq(1Xe(MhmNF@~nYBvA{Swv)Zucj^*mnu37N)bR z(|gt6Mz#5KCxz{%r$Aa}Pc#n%dYN&L>ok8B?z4Yk?nM&UEr%ky#?=sgq-kO5WX{tc zJn%f?<2WiEAw95<8C1iTSNfhMy{&Lw?Czn6=;8pMJMlgEofhUX$&i6Tq=kjWS$X;C zR)o635JSI#d`DsQ@R2_kjygcRoOpV571+!h)ZTX7AuTEC?C9HcAhAXpd?sQ(gjIia z15_e$adWE|-2Q+gESf(>`H{^MH?+AV{Z zb5fktSc%I$j0Ay4mzQTUBj^535y1nvz>(i%CDJvJM1TpM+KV=`{N-^8w z3Z#KcxWMZ1AMgzDf{8HF;ygw-Tt9<@L$Fv(`|w~!pwMfQ|{fyk!O zarWHY+-~O%RhafGy&v}o0ZaGp-7}4rZTiyMss*mVsvbk3{K*2FQcq%U-O5$n^Jp#Y zLc|ni+8FTxJh1!+59|lomcsG^S~eHaxDXO6)n;O?(}OMjat7NzxUDQxmZ;tisjaSVT?7ph!0?l z#T>@Cds-!-!O<|BsnpoX<((1L3jGV&deIGoY6R zlSai&jg)amuYLE8u*~T(X?fmH<%)nh-GlF`{G7?q5dI&TpywCzS`2(PbLd}H-zL)n;MxXl8HpE&j+2!-iNDZOe*I*8!wq<9 zwQzprY67nxhgJQ3LK%I!Tve*MOG`_g&>kJ^i2|m$IoyL|?uE6u1ClOb3)&jn-Dv!`ja`@~Wi}rm}A^%k`c-DNlIF zJ|0&o$HaMGrOBc(p}&e7Cd2f8*JVG{>`z)1EXy86+sl`J^tTv28va+1jA|)&M}Ok9 zips);fK~EVpQ(<-<%k5qGWV2M)>c-1-@bi&NYrSkYUVH?TXJ|1$D3qm<%!cFMfT%I zPD}z{Bn!OF`(Pa($DOowD`?8^z|?#sveo`hj$E(SDy~8Sb!g-o_=|Nz#n6jP*6D5D zXO5unTS&xVGA5ac8{SZiQx<10m+|$zeS2q}#p5@ z*!D@P51=D|g1IER97y`MfKYF9)>SjmDDhEL;|r=&oT{{x+XPSEMr;VbJgeo6MyJ~1 z2nl-U-M5kn3N%u~?>t`t;sX+~^3CQyNJQ)MR*L_-*x?rr?{TpMTT?YffT@(?wy9Y? z{r1WQU@66S+6DxeKf3(B^CQlM{Q)or$YLONeRI7D(k1dK98TTY76rLa7!@&fgp#fb zypdc*b@^smk@VI(Y{I#Dbn!aL{~8uKiXJvsTPmD_by8p8Lf}<7bT>`fq8g-+AA`iW zx@naGO*1pO;JbEH7OVtVYdYI*T_loBMa|xSabUY(UwtSFKiZL_IV7~GA=3u^(pY;IdvobItWO_2&~I~B2e_Gj|I zdzb($9-Lg?2GpbZS*!?}o~T-=H+kU;qmTGlQKFcE~eEj98xVcx#$ z2zQGbUY6&p{fz58S}XX;%@m*3k1y}fRgsE!BWMb&i-g1rD*6q*cAXwUi?>4 z2gpw&Gp>G&Z?Po9P!n7jKj2efq<`tgxY7%$W?LNp2^oIRK~G=LTCDBSA!6J`_I%Ea zRL$2A47eP9_T0H#P|v_WZ6gy$cz79!`vb0wgex(Zj-uL^5uye{#Qzori5^AWJc_pf zQ^D8M^Gr|?6`&zcSmWNHPO2~P5;%A=#FA4`a0VK@U{$h`gFPTP8suA3s44O-Xe*g& z!$ZRtUO+zfi-0iZGsuC5CS81tS!)bBZ|pN@+^FJxD6c%1_}MeOuT=m7WGrWACrnSv z9YuS#GR+o`pheuw1i2Q1CpQzP(n5H10f|#;0dMi}+$+`Wq4dJyFj;8+0`gAqUuFlJ z+UUIdHgS6PYj^%Th3LZV?F*wyDDK$fgX?cGAl#+?s^L7c!jbyTE%V~f&|=RbKG@EF zZacXfKC$7+lU6dJ24QekniS9pNy%@?5A7Xv#xBVGh6(?8b5@`U7uwxs^QV$Ges!>Y zYFwR>I4P%9V{rr(aPK=md#3Zc9PfTQE_V6GUD#|S_im3vQi-b|@Y$tj1Hl?P@{iyI z=cW|p!Z@F7g>L2I6u7encDpNdDe)9aOiOa!Fvu-e6p1C>2A?jQ~R zwULRiapmjRw%x#SsL1O$n5um9T?1TSo@Lg-+9&w|ApSvGQoN^yiV2=%t(x zfG)RZyv=F&g5P1BW&m9}z|-ae6CZm5GTy?(Yv;Fv#A2sArt-iDJV+?sbX`&d*+VB> zq!SE;)V@(*YHxF7Rl|rR@3Wt%7kFEK@+a!KX{1&B9rY&s>L+ygX6*k#pd1GBzR<1z zdK^=y(mx3WdLMWTV)vrfCT!wQT!YsW91CCZZ9}p9oi8z(W+EN!e;N|O%rJt=OL@Y2 z7Q{kx^j}e!R1j(GPk`3m6qXkh>vnCQ6bc1Ch0W$uO<$xtuRp+?&_N_jQV0?WxAwK6 zpCk;{dp7eQ44UyCqGA50?!|uh$dtcw0seF{TvAYu*k^bn`~PNMP};}dY_tM6vp(x2 zmJ52nmDN>=&_Sg$8fm_hap6NlLp+s0EO-AejDguEyUU5IwPy3lX@mBp!5q%@VOb4t zPNSeFPZx=KOj8%S5@g7 zgmitNJ0g2o8S)gm+7APSA%{Y`$5f!*NBo3NdLgE9tc<(I3=p40*xI?v(aC9W#7_+R z;a>cNR5v=ou+e(GbAm8G3wLwkgj~{7&=$WL5Fyji38#FlKc%EpkoO^0>sXBTv6xa) z@Gt=8)NPy)+p*ruM>8fTCtdl@$*n&r;Qbw_KG&@P)U?;u#7BN8{{+>u*>blmC#h%e z+K{RChEHLfoZu`h!Mu_f z4h-|H{+!}KBTa(i6?KvVcE62*Wu)I)OEx0uZhx91+W!l4Bry1pK+v&T-uQ{Nbl~!U zA3!%ckJHWL88)S>vnHAm#S4;(&RuISkVVh&2m%C4dgD4B)EoszR8_$#}E zh&$j8M8>*A$UtU>;bARbfB!GOg6C`_1yx)$G&HP-)H5?P88e?VE6U1blJ8=OXF`Pd zvEopHI*p{h;4+L3;)wu>+2F4}&O}-DCg+I63yeeuc`cW=VC!^CovZbyn^YNJ>?-JQ zH?j%{>jfaq;0|1Q0Ei#iQ>R|Hx5a@J2U*94v2rQYS~eBc?4QEOpE_me*c$M2Z6-n;^G1?azeom60bdzg#V&wqJqjKDjhu$(snvZ^LU~za91<{^JsIBfcb61=uxk$D|x`niX0u) zd6mE40gEg7uyUtvL9HIIZk5W+1u!;7SujCF zQd$~&^X5fxuYhLn>6m|#1M7gz%sL}zMsP(%TU=133dU{qika6Pm%$OdQ!_>!v z3Y|kWFy%?doPJW7k56H!II(xQ4D0OdENXzfil?oXRuG?~Zuh*zPwjaGoQKx=yry^W zE(q)jEBF>mH5ERzi}>!{yZMmhl$19hYSqt*w-g2&g28uFmxwqm4)EsEoJxsh`^OAw|(|sI}MKG5)fPP^MqS&^jRR)tKm%2 zaLLpqTMjYaP+pKF|NaL@&gcFw3w|Bpv;+j-Y@?n$0pxDfjc3wAXf2#G4CkLyktrQ7 zy}G?hQeH#?Yjxe`UKY0G`pJ;SwN9$}5G7kmXz?g&EBr6hLSEulj}XI&iHT(Nd{p7Q zk8mcSi>b_kL|NYB!gizn&-S(hZhHT3XZdkPzgM|B=OdmR{u!6jN^uXqapMB6ekC5f z=0-FwG-;saOPEk-)%i|!V1D$B%dZ=WpIc!pyk;Kjo?-kP|90>S|f7I{avI;trtIo zJ!2qA?dueDHNOo`*H1sabQ1OZ_LDk-Ifqkr!USJ1oI~yoWrx|{SeerRYv12(5BS2f zg9)5<$x*Vw{y;&+zbu%!k2jb0)~PAa-V-uTnDM>mE>{XX8ubah@`C}4kAEdiB75AWLXA05l1`8k z!J!#^%SAN5r1R1=zca_p0N49xC`Bx-KLrAxOGcuJ`#09LLEsLy5Hu&-NH+Y8DW=+g zgk{hi2R#m5VJhjp*w0it80&yKA?enyTzn85{Rwa{u>H3tma0H7qawN#qOno!1Ia}g z;E$L__h}jNf-;t9&ZIz0{dQ7TF=^fd-rjceSLi$WxiuAp8{h9 zh=i-gOb7rzATHpEl1c!f2@fVwrxDm9^=EYvVs6Mk&5{maNEFS&@+lh+2^=m1Q6+9g zYA=me3Q)k_A)@GeFQJ-pt0#vokb+N0Nbvc3K5WmU6A=+l-3oLnO9$P$d_MfAJex;u zgV(!TLH^rcxL!0Zn!})wg34aeAP`L8xFD@RLIddAN$9JwjBFeVj24b@^Dn-M936yJ zu;ArB|JND$zs|`2o57&}*%@&q3%QbcH{^=0OxkR$oK)4aG@p1+;}^01A8n5x2@G5t zUYB#c3N@q1$VeQhF;H4M81ZD^zJ1#YRk7EZ+Qr-RMA;rvpC>xNXZ zG!VZRGIg5vOwa93QJ5HU0qM0)f2G$7J!cN4}YU_aJ# zf|I%HpN2J!Z~9RnCx*{v^FL}{@lKPcQa{Yk&p#xB`1;sV6|lMe#RNe-{AUL)CfNU+ zpxi~G?BD3QdVxl=ss`L_TTAC1SY88JWHKrVAq#27Id7_}azXx|b`QJKZ1JG2GZ<-~ zj4s74D)?x-3F_GbfFhweAFmi-&(R#lWx-*JrqMPDQUlVsbQ`=s44~8+HLZuYxp~rr zs}?|6T~*bLGml2Y$&stCIW_>uDXTIclmW?;N!q%JK)Zv9)7A1VcYrYYfTS2mNec)7 z`t@mq>V(U=|42U76dAFCUx5VH{v-kz$~Iu2T%dqn6`Qe~RQq-t5hi2ac!D7bdLV!v z3W|^nxEq{2d8-tRT6+U3O;m%@Bx@gxo%XB|*tIsPvkNBPH{KO&TTeBm)u@l1tjjGk z(W8-GyyDcrdhyU8*s95%j(^;}<2DT?QHkClF;OK&#fpWMguWwr|69^E8Xi3PXRpuSPKt(%IOFG4C5H@_ z8N*78Rl=5K6TY(EBR17cr-9E?#dhX!>p{vY zUg+G5%Qv;beJ9TK70vr3(^aEad_ekmV+tKXCCf>@j^I0(nH;l`#MI{(nBg5UMi4!H-p8TqchlF74g;tA z4!NvF<``gt&^eR(`IPMHoX+wEKXk#-K;zOJ8|={*&Y$cszLzF#vw=>?SPs7t=URD& za=>L*Kib@zg9o_-`8KNaT1c%D|JC*(*c#->Az1#mooW90^TN3TqSo}eZ5G;4O-h_B z2tfmZIm@r2;^OT5d1PedX?kJA|H70nk4MKo*{}!@qfF6j?R5jhC`6WeM5jG7=d;v$ zH(x81M_Z+oC~IDobvTE97!0vqM}~fEs>&MbcER1kOT^@Iw$Z6EHubBq&U}7yB;Jy4 z8v%x_hQXtSM!Ngl+Xv=V3aR+QyhOM4GkUfk1Hm2Q?ovcXB&j;4wWPXWEfPkhK&HNU z8Zzn8a9A;_#Qqxd09%?PBa;A=Z5T4APT4k&dt6CpNS=+Yb`=A13Rr9f9odRqA+g~J zefJx0D4jd^yk6JE)3ZnYXw+dzQ0V%H3@hEr%^lKu2li8KA<(umaX~>*=q?ROGHGPQ z70C7S8$(^(g1K!S^oV%2WY8|4>%l6+1GL$+BGZC{tG`^>BF##xV=4lBuQ< zp7v289T9z2h#t3~|J&i+26Vz`Cx5786bJ|#Cj;oB z)gaSBkc=75Wxxk_ZoRiVX8x~kVQ+TV>Zid&c_VDKXGL}OkcGL=h?M0Fh$CJv3oRSoTQM*eVvsCG z85v0#ld>7`P;WR{CkTdr9cI>=diA&EPxuzC8wKTLg1J2^D-qM`=rFBwQn~Fpbj9hd zhacR-_PahEi8FDsU&y{8(fNfXq-gcI8GgAK&fQ**W;B{6l`wi_D%;J_PxL&NhQcRYKZzG>s`3?shM))Ug_Ovhe@>a|@+Z8aFmvVPNm zahr-+VV^g4Sve?Xl-zwTZn)3hF+wIU(e&lZqkUwaHXR$yx(DVJq0k}5lE=9)qB$1R z6{@n@xF>eSCaC^g6{#>}S45v{+!v$X4af0^vrHcyF4sAq3R|ws?1r>16#3pc!6bgW zt?B7H23;i9q4#e`*19EWrY7-hIH2Hrf)R%+U$<+xkY`*L7n~4^VVb&;zhrA;pGRG} zap6YGB<8wdt}?V&wxi`Gcnt>3Ebo6faBa35Uu2p_$mf4(KTh1;^zq}P>N{(*JmyCg z*J*x-gM2SzmF71Dbf1QLvIe-^TlRQu{4A`G_|1NnLh@&3Zk_&`$Nk`*Uh}Ud#^YZRK=I3$9&ScOrJQ@{h zctF%3xz|oZBdY7ZC9KBEQ{sNH8~PSr9yFRR`G1;w@2IA_enB{Zii$LmE+D9&sPrPz z5l~Tz(gg&i3StnXmw-r-uJqodNEMJ?f^-lFNUsr)gdQNYKuBgs-}kw9X4aZNzIA85 z%UUES=j?ONZol5{aWNq9aBG>wd_3D`OUp@eh`=6VuK_xk$1E-_OPR0#B+g)GSw-{I zVeJyyDxS>>l!+|X_QzG9!$LXLn`NKXZ@RqLn67m*Z(kk%So(y{2SfXLGPIJ%bi@u;$&kD9P!B?r)!Pvd+O@P91+7D&xX^Zoom!idwXMz^>%! z)*Zs0f^bRd`9Pl+_9#Mj3Igs9mBOtuEyuMqDrxQ1~=);gg>D$xCEFD)3PZRaX+ z>APRJ(OXa@rbyYtglmF=_a;yy_c>!i%lisHCdslvn|5<=y*~LfS;Tvz+u!kHOw5VK z59Qh%jX3sLX|;w%4{_B+6ggz}*>TmUo1Z>KEAN-gkU@eXF1C!U*Js-86Pv9qjqIIn z7?gg#`NrFkDdOUxq;3DjzXn6s@{x8qcuGJXs>A6Z zvfg6>nHf!FTnCMbm_^eJlZbNsRCS~c?5W zv(LLp+}xvINAwgt*JGNcri5r>tHCDuN@RZ?iU?|pNE$$=$SgUw{%(x6iofF_TB7}i zv&lzp2R%RV@orkRrO5!xt?N?V*zivqCiM$ks|4<28J#hq%Ty?6DqAmnF#*P~y#FpR zAfR%@bV6g#JJ*WK;^CLf-;Zwz29)D&mu#Bf)2^ zZi<$lrlPWAY{6A;_vC`sbI-)@oFcWBIb6zCQfNLl77d=BHvX8Le4~iapb5K&h=@m* zriboJP3H6i4AIyTFHcnH-0dCEjN6N>Tul8Mr>txN{U`CQQV*>% z@1LCXJgcO3q`%*E|6G1Yed$jLEK&vW|E=QG_f!9`imckykWJ@)7!JGme8BkCRq@OB z%#y99CljIoh2h51UIHgTnJ6|8HDXc5;f1ICl=Sg(RclQroYhc>*!(w3y^|85fk1Ur zr-Vo@;R|YgkaJ)Q{ZVq@Ah$+?iD!w?QkAbt9YSwj|55iObhAao)O0?z-cm6w4U z5ImSvCur1PQ6~I3X(m0r`nfL7l}YtEff}R&W?I3)zdDd%p}uKEDk|n{rtFxTVNVRS zuA%x9f8Z$&s&Y>`p?k&G4mA-Z=N9^=RF@S5&(yr$7g3`D0Jf)qD4-A zRS%|crP39b!Ajl^efN%hP`rvA3;i{K#js7OyAxEc%c$u>eWQT7Eklf`;;W^5Hyu6* z#@P|6)eoC%!Er|uTLQ4L=+c5fIT(s-x;CFhG6pLM-uPVp4Alp`t|>9#_{t;PZhFs6 zJkz7@E+){E7r)0}R?(O$T)KMM$WY;Orv?K!sigY{&|SjUJMipMsu8KYbsa9+Y4DGR zuPBt&RI3b5ynjR}5E!@zt}u<1#D@StD07&@NBuAzIho{2;Qxb@poaj%!-R-N1y{QM z?F)e7I26A(uGyl*3yU3tfqrTG9OsFIdSLE@?y$BTKe%;CXfaSi2?h^2(aGI z;8Yzx9TU*gYI5W4_P!i*Vi3JJxn<_|uLbzad)MR%iLeDqZ1pTC9x!4-a0YXcJ_ZZt z%5*%|M@#u09``aIS$ob_FM-lhsT*V)u`ySfygeQdAx9A^sK!avVSry6t!!17egk0d z!RwNK%MpsTTYEb}F&_9SER+=mElnyHCjPS9K1ATzR4p^l7;_3H`-|DiZ`E;|D67xFi-VGY_+C3 zV*=dUwxAimuC09%1x-)l7b50<8H13=Yxb7Rt%lvE9RXa}JDgD-7?0H72C$=H9Y5Su zUhdgmq@1{}86g}y1^HJx@1-*b{=Y~SE;9cDC5x#6j}u_60QCfT5Cm@;H-kJZXd>W; zdd51Wsj>mK3aNEMi4Y-8#b3TpOF2DPW>`uM_-O1d@J78woTm|52W%6IweRIzkG*g3 zqJtTu7bOOky@ytZwYp<2a^j+|%{a+FIlL+Mttd5iqn699EhDg2BHir39=SLPQSm}PG?!Kq|GnN-aP>I?A1GvQnJ40j^?8O1?}uUi$224V&TiYmf9 zEd;TLcy{Xasf;+b=&&U|O(Zaqaw-ifil4{!xW>A%!GvBy) z*+Eoj$+eV4PdiSLf^x)UKiLk^c`3(Jtx^&0sq)eUn2DAB^uM$c5uwN@l03pS zkM?{z;dKpK#$VQ0Abx48x-^DOy-#uR4La2|1fAxoaqi-6t)1neP6>Ca(@Rc!Y5UE7 z6z#wlgKwh&tI^t@qnR$Jq&pM1&3fCxtio<&f@~Nb>Rtw`LVJhGHRew&OF;lMv}I`u zdepr*Hn#8y8V&x3K>}QUwZ8g90&G)UTU3b;c5JMJD$NRfY`7$?p{tws2FxzY{2d8H`0v&5sOX|(qu*8mODOFM)bQKkqg!;wVJM|A$;WZB)rbs!R zf~@p?&XDkvPbFsK`iRc(ZhWMxz#&dDh}XgW^@HvQS)OAX5Z}A^ zXy#V-W(F#cV81HLi>qoGKLeSjMoxc7@Q#9B()oksxJu- zXS@~!{69Q9Ov_#b{JgkhHBalg(W&*QOno-oFi8GGkZt-6>)%*b%Q4-L|0~JyRup~u z#PJilt*(N- zlj8(_L-$_1$g<88NFcq|16vIuxqFjje|)mj*judr!wP2&pr=^=OnztNz8H*zrSFY- zpJ}e^5hgNNN+aF|mC;s5fHKwh0Ig&h~h{4*r9CgOV! zYn1oDh%ACC9`B+11&w>P?&H{voxfs*DCM4YI_XQcAJI`;%5U^`%39mDsN_RylDOTa z`oZB<$X>7Cn%^I0{bTELHFw~CaA#*}!%4_jqoFyRyO;brMv8XANq@#BP>IIE`!9dr zg?)Dg-Bh65&NuaH;;kF;;H2)qTiE|?aoSgyTIZTpqeicv&WnGfgW}#a$lt=atp5K! z>h;hhh;K;9Sx9q|>zIvIf9KiU8A){=9UYb?CaV!r>8-4Rj5EQ!$L%q4 z*R$Sgez_%ZM;9@oVK;c;%+?uaxikFyH&#-ng6A%SI_P{d(9X8D8hHV3GRWrqL&2v$ zx7egRbA1{JZwwO+$@A-(_(#7N)%`YA?uW{z-^-Jf>vVQy`KLrkz*7RXgzw(|df zw7?%4v($GFoXyWK8rb1I;ULMQHyi$wJsVE(3m$cxqaYOPX zDDYqvY4q$_gt**dfmvzm!=v+218WF#?@poT>hCtkP8VcZNBf?549dqFm_QB?i~DAC3Cz0j zA2qyORVT(lxBL(4iF{X@4kQC{W9ZL#P5dIKa-=0;HUSR0DwO~-4#vTer-ZUi18dy2 zcnS&&$snd2hiVjNxG8zRI;XY4#-QdmBwmX3__x^0!vhlcz&Yc2T4Cd0mV7be-M-Ur zujFf(z^@<&9`y#@;gOqY7>k^en`BiJg6!293`g~Q@iSS#syf@B65_P4KUPhzQ;Xu$ zSHG*=?_Ut8pQQ~qzKAS)dRQZ`!_`7yb|Qo5E4#$YH8JWIrv&av3d5QWaq?ftSSV7A zrKst9xqK_O$ApPL65z6ba2^(j8D!h!2^m0EQJ@4VxrhV+uFgI*W~%UWZ{}J~f_j<5LvNS*A~=%dA-BCz-$=t; zf)l}zA8Tv-gAk?pmH?`*rFi;bji{9^zd$D;wLj47rJRZ;kZtIv_V)HFKYDa7f=fOk zr01+X*wX-1sX@Ui0M@?XOy7|{xM7nJo078T&Y4E=M8bz+a)k#PZt&muR$eZGsM*%b z*^oIu&+xv9>Cow#H=_0`Lh_uBK62#5v|v+oV&bx)E3)n|bo4|aSkLPV??V=(^%f2y zMuH`lN4u7U1zA1V<*=m>5%N8sjj|KqwK9<~6z0B05Ai`b?&xeKURL@Kc3N4`&juT5 zX}VUFhU3ofi5YS;H;VJ;Ftt@LhfX13MAP8?9XjF&T`5S8o z(zVgWWhS|I5b#jVO)=p^r>P_n4QCBJ0$!YOTQ z04#nSg)>B8<}eEsNeP*fPYJ|HC#S)WUIc+uZdg|d6xZQXvV5#<+?4C9v7VkE-}ct0 zlJ5v7PF6!B%eO_;;j-E=UG>6nXwJnQ6EO^Li)qE+r#HK%gxR=uBwjacYGB$jE#A<1 zxg2YWu@O&i4AnSxe2kr_7uvpB+qlZtchs{j*ufa`S1&|T-h|-BYESAchK3mgtT@F8 zH|aW_-kFxH7h@?v*^Jh*8;-3By4=d~m<8}sfF)|RP?`)%%ob%R-NJn|tSd&aAk`j6MHXa}s_{fL96=bB9jUBtKH# zHJK&=tIVj7l}K1Me*aTLmODjQE4t`R^Y> zMDVy>u)cObLz@8-Ro|8QygDqX-~DflyLES$`|5(xV7G3sDY^|`cyO@q@Pt6D!zePQ7g}em<|b!!^j|0mqna!`S*E z@{u*6QU=H6qCps&>BKvG5STf34)*t}bXjAGzwb)tMA(VTr%bQnPWck5ID}wQ;GL1A zse`7ex&wa6CW|E6W5E zpMV;(KOW$St4)-Na9X}a+RZJ@jp1$RW~V|;^2NppcYQ09#R!an{oaLFn6?kI%^yY} z9u(u&dvB8haFmfGcqiJK_oY3+0)^V&<<6Cq>Xm=HMfqK_6<6;1EeSEJlIK&Kk6SZg z!F_6&-Hk?hTZZaeoE86{E3l>Bx`3q}ha`EIlK}KETK?|hgABia0T`gRa9A&LlC-u+ zc@)$hSVq{U$-b?27o_bInEM(9C-dVoEdLj<{O2y%&`WYZSBBEH(J^cgl4JH|C)u&StivoHTaxw_*BbYC9=BekTig+J_ zuU*(;8n6lhtlI!AQI=UG&}VC(AV0fr>~<>wuCT;xp=uxm^E-YRmIv|Qa zS$8{K&YKRrgy%ZjE6DofT7FWs+_P#UfN!fF18`@1stNC6bsVA-{+-KRg}XR_zJcZG zI|3>piC5#k&|J+RdS*W=lpr0u#H;2$P(l1VC6|s#iG~RZgAyc`FZ(CJPXai2>yJg& zY&B%!D4Km0Ypc3v?pqawYTHiwX@ijv0@Rqu*qeh>kReqwq8Y^UhYb0Svm}^#Ng$yN zpWC(iqXTifeLKrmnwjkueT@YL1+zz-UYm;34R0=kj%4icXd!Wff_NHEu|3Xj;I-$9 z`J#(zDSL<;;pn?^#AS(o)6r>)MfhL_K2MX&LXA*O4Zk;CvC1(mf#)>BPn9CHcfI-y zKmo0f39w&xG`itDuW7OS+MP?zgLXZmzi57aSln0eay>O)FZz?J@H4`&z2QbYF}I(1 zH+H|o-=zE1fS8SQ$ADlPsauxPegu)*Ai8=@gnG2ebHV-Y%9l$OigwpvxZ{MTAbY2;|%p)N&y4t9(_T#F! zeFnsLXU8Ylq=^+=jKAY!wsCVqn(v(F1{(h*8UzR9wE1rInW7H-mJC@EVIQxZCq3gK zL)_FIBG2Q`SBUYvH#@;gaw52b)7l61Y1I($2M98mTHBwXjJv;Or4^%!=|sx*1XE+&!5fk zHCsw>x}7FE?J|a?dMpJ5H2Em*m0kJ6)|Eqvn`p-NE%$fn3%-Fhd|r?i;k%fPdber2 zMg|;(APrx|_UWlKya_i7k4$ts{DPe1Ihv`jvYD#(e!o5?M-FMg?cd@NzeQ1=^o?{L zvbm!TANkXG+ch9cstFcfA=CrrL1mE75=2LX&!0(RFx-!eK*+lpCIVZr5Qak^-~TNS zhkpDCQW9e#U77f8$O&l9IGHCYf=2#;b({ZP@bdISPCr273i}sMpL~h;wobg|MCog~qs~OBaspzuU$PEqiuMpF=#&KZmN}vFT>e>H zjZae8a_BR?IC#ibUsp>#ids5)tDJW~B}~ll5mWk}b9!iqmrf*9nJIh&QZV_TqVV6G zE+;nY`fhe-!{@bnY6O$qjsE@wzoMd>7iHY&KsoR7^?>w^GQ-H1l(d}6dU{NxtJYNM z_FIR`%+Ib~y?X8Xbux$-VQ1)omygodlkY3gmMX5FIH*4uf=UkA6>PtntC$aEmEuk& zGK)HXMicvnRyW->SRnfv88g^)))pK>CyF?vDes?>@(Qw%s!)%@_{fFU&p8~6u|lH6 zc(}g2qzLd?jW$_w(qQ{Y+wA=&7c<=LHXE@5#yMX#w}1Nho#+MZnCptpqM(zPX!&M| z)N8Z@L}7>FK~=x};fE`b=9<*j*x#kLUY9Fu94I$eR)aie<7%UGKlQjLH}ZNMM;C5H zKf_M6SgX8!D;B{i8!|p_KoVZ|kjG=P*d0+N`8;qYMaKQSs8#>zm6V+sU(*r;zo8#- z+%M*p5gL~uYtywAD$-<96yqgqMd-^$ z6Dt@afAv^;ZqBsHrKKulEaIR+M^xKsmZd_l2RbPDi}qE6sx`((DQ>0Kd~`PMgkw7_ z90?=zl-JlF$j*1o9kaNYh`FSOD|mRw7r9&KpsV<#)zsOqsfJw){q%|BzMU(ZoxJ>q zl9}^cv-QLqizyAAm@*W<*JSmho`XNGBBD)+IOJDRR@3krI!D|OFRublWY^7cNR=5L zh~1Px{5J3LSlazzy&t9L`5k}q1tLwBMXc+%!2Mn%XZsNb9;uOf=X%r3{l=|@j!;k- zYGKp}8bJ8{t1nqH8>qIQ_+)G!yjf83@VN8B+?-zc4UdMPQQ+_g1~SOS8Gs+!Crbq`Nk}jO#A2};DsN&tsqk@-s0tSELaT@I)nkcUx(mr9 zmyUig@GaAMc-y_p1dehXvIZr;`F`(xIlvuI9YC-Yn(}zk8`EMiR#1{fh z(hZ_l*c6bt6b`0tUV9VP<0f@e617LsNuT&j;Dp0Fh^g927whb+)JgISo#D)I<1+H} zu@Y0E1>~C}j^g)p@sm~dtM2J5q4MAvr`Pd8{T}BOez1wb0NN1rshX$v!tT^%04Rq2 zy{UZ6rJyI$7nq;D`06^Jm)e$`P9cXFLqsSG za2g8h;kc?3UV7#ld-7i!?e8V($*Dr*s6~Wlr!&xm!o3B=PM@}kx+B-j@rMiD{sfF0 zkmeoA+$r05h4fN6SmIh8@8@7&H_zRvNk&h7Pd14}!d|U|q&M5NdWOZnmB96b%cI5Y zPYyo^fBt-BN=#;mD?#AXr%x-rrlaFlr5_kYw7ef?6}zqXxU-4J*8J5I^QX#sGR@RE zw}QlHzQMt#ABtU~P9!wH1>&k7v+6?v$G?36p1F~cnoU$#=Zp#2sqZ+6#*V#aR(x<5 zwGK_EQg1KGs#axhCi8c^b(|p?%DOrqljQO%2G}5Az3+mRCR~$`eyvSZEd9)((nyyJ z$5EjQk&CBW@F%gALwTCnz~83FHldRDur^V3&}rba=(39XMvVpozYCeJq#w}Gk{B?Z zw)OA!t(da*fFL=|5v;hm$xf2$3xeM&knNrmVkV$b2S;C}&vmzVJ%w?(1a+-Rc5QY( zw}LC?4p&lK9_#462xbH5V_&N-Tip;8?EK;^`(|&=@SEM3h9QUOXxs3)wE;Yt@2O(# zM|^j=_zIHbXYT0=YdKHZH=p`?|H6mMLHi3iXMTK4o7GgYUyisq8~LE*p7N_#MQCr8 ztoxHKIl0sqAW>vY-J(vFc9keEvIn+IRuFlsHItC|@$PckllA(TTU|XpEhrpw zR7}kK%<6NMJCfvqvm!cIu3jZ`zzlQ9d9eT`WR9#=uW>ZE%$PU2E0(3>uY>$_t#yl` zliH5_-eSagF5PyP$7(W8s+`d?cRzt&{^~i# zq`r8daC|dN>q>}{2y8-H9GIlX&usU#obH7$J1YspQk#-d$5ojOHh$l}iLFgmQZ+B) z*u*jO93WwQrI+XcLOmzhN8AX%F>z05J9FaTaJ6(RLQy(JWN8)CXmyz@DI6(#bo%w- z$g8XAl%Td->zFC*R$~N|ROc;P_*DhRZ3jrLri%&)jTt?5O3jgHCVlAvHTyJQJMjY0%?-A*>63RhBZZ`-xfgM<2!xAi?G0#?loVMolwA*c4`xF zDZzlB56#l-5&Ac8avxCa9i#L$rF5qqhK(t*j`fQXr0amU$8<@J%Y*iSXIa zg*`wNu(EhFwdo10ZtragU`xLwly^uwvtWTcA;5^cULXvRN z8w>@uCwmku?-ojOtRj(Nt^^@kle)KMDhs7IX3J{(?aN7RF!<-3qj0$4ONQ~Bhs<3? z3xbptZVj)yMpkG-v(Y{ zFDPG+Cx&G;SuRc98r)u>K#?3-h2?-JJJ=HeZwcV@dY|d&fiKQ*DLiOahqdhJ!nsDn z?KJ4qr)(mbxqjVilK0J+V@5?pD3H0W`wd|}gy%wDW9zB%y%bvYcY`Kgw5FpUNHH@y z7sa(w3~>!W%m6<#-(9O2BISfO*u(xJ9Ri)L8w&q>nlDynug`!1>7?C}H&@G*bimRq z!LsSJab^5e=57%0DTu-8bgrz~UgmOElD}zjV==CY7ObeIID+PvCx%ce0an*be4ZR| zJ@%ekX#4$=Ta!tydO+@D0=$;*8|k2hMv$&;QtAsE@{a|$!x|Whh;bn26loh$Hzyd; zS`G+C?BaZmcgK2M1j6$d1u1l?6%IZiR>e8M=Cw~=^L9s=Li@prvCi?yRlnsZL}fH= zMYVOgvo-RnO2SC~#XZx;Q(~|>d%CBVuV2sT_rIFc$k-2^oqm(bOLC57;s@qcnE3+NpCn4EoKH9nc zb|d?JS|qW%_x#ntnKx_W!eOkUr#$yJbVq^PrsdmHiN~it6cq3)tEiCqS|-u3HYAHe z1`yho4C6oVWTsFUPUTNOo)2j(Tx}4%zy>UZMq90wwKf_QEGy$AKdo)P89o3w0sX1c z3*%+xHO0I8OI$M?s>emri3GVdnzHrZ+zqZ@!qHwJCqs;wpNJi6s^30#9H=fFuzix| zVf&gmA(gjV{07q5xpt1@`26jbsV?7EoE_YZi>h1?Joz z*O$J50dx07wng~$ln-gJ{*<(ORSeg%;|y6X05ICr>aDM=V)Gqe&m1RhUQT}j|1p|@Q1WQX<2F%KUv z|5)3^M8&O$zDdxF0pNQbWq*f8$EW1WYr?zYh4&YOyY7(qj^A2M;rFf~9dj{X^QX_e zdT@)+QbAdH^bh+JBZZS(dUfcC=^0)krlcJwiXDFlkej0ObsnC(4wM5eJePR_P6dA0A3%qxCmu>Ao2EJi$<^@i^VVxYMhc&#)7Os7^ zkloahge4ZAtwLweoZ_n^Xf={onB(m#CLqv{^~CUMjUIqG^Rw7PTtLY0H$Z+J%*dxU zQJsd6emxfqSx7zk@#E{dH^DW_9o#QkQW@IbOY?0y(KUmw;N;gAUmQGLlImhB?WWGa zXvFKXHa@J%tilZ;_g+uGD|Lj)1_G(s^-9mgh`2F~@6OX|$-7pJTJZ3)9dfuy1824s zlxi7^9xD zC_JUGd-AYN>hdE)h9Ndcy~$dj{Sygm(d6f%jzX(WvMh(_qMuNROs#7B0JX@rQz`I9 zGidUX;^*hz>@Km*?orFL4cdq{8OhJjZ{A+~5sM-BuzvpDbOw6^_&*mGb7Jd`h**LL zc7tt77r&BbdR>|;c7gq4`&ehhoaw6Me0xCX=6s9F>0vtZjoh|+*6GbbkB8poUDahn z2o?EiSTS;ZK6e+i^hmnj7`OlQg#1yn^RB9v%M7oiuLm|y@{V54wu&}+`2J*J=?9Rz z=b=5}t+2505)v+-t0=ld<(P^|Lp1cuG5b|wb)3s&gl`TWvonmgX-{<}9p0I|PD~sl z)2evJ(0aaXty>%=rW%mW{*=bIez0s}!PGLl2&R$v5&jsMoLy6X4h_Be)l4?EK_Jtr z`m?UqCH7!vaXJ z8Y9w#IkEuiLwduQSXcxD^5V#jDe)=1Y%q{6ALg0Gm~w!!NiEeqtaVE_HFU=kIgY&| zJ;Qf+e|p~2n*4n{P;vbRu|ebVwc?V~4v*+x1YnMydGG3$xniEtFPRs;1*h6g1Lz3- zmlL+UkT9-GdmA%1fU`nu$qx)l2)&W%aq=pFYweq_oQE zNc&K9KDj9_K>-SNt6z*JrYwNaKnDc^San9=jK)m*2JT&ZU9!!>?%Ni^ZdczHFH;|e)Ve>pPo zcSLNAs~iw)*Dzslrv?@n+D+KH|04KLQI(%Pdr!N+;yTyrQInJtDtOB^Lf>(NdSpcO zbkznUAxY`@q-g_Ek~%3tvRAJ9om-k9-?aRF*#tCVd9{qp0QWFmew939tg08;G@tJ5Cn18h@o_K zp$W@t^?YXLOYZO{BR~t^elL)Nm=_pVAshoo5#q=9H@WfWDyywaT+{2rYLD12OD*3a zZ65Eji!Dp!s6`Py6X}?*=@$IU5#=ggaPXn|# z%E{+z;O691N4NXDy+I-`G4b))pFb-*UtjdN zx_6#KZ5n|Xg1z-Wd-$}w1jGmJ6IPyWfvC#!?(Xil9e08Qna|x4)P44hGw!D0JI^{xCM=q@zso8JFm>0H2TQQlA-9Bx~DyFYhZI54R zV%e3DMr?UA@{CTx`n}$cCG~^niC5DG(rn&(H?nsE3d6HwbS?SKiaMt}n8y2@UK}+0 zx5EYtU$+|3!h_PeDNVVg0}~wG!!z>q?6H)Px%6+}LtPm&r^IIltY35CUukNDvMH+n z+O9jYbIDa?Ffp5@(RqmHOgdm|4y|;0o&Uk^enzDB);mE!2d#!+UGCS`2&``e`0ZFy zRT@!(C*Fpy^OHshT&o!Qlf-~ZEHS{fm7ald-JSS>f4|T~qckZH_gJuw_0jlO-e~W#qhA&F;X|2awo~2Vx7%;#PXHe+y}UE{=)f{^ zo1ZvkRpqmgd^wY1vc1>Ar0@j1J9OQX=R&f4>g?wki8YCM6ztRUYA#Gm|CBVMRW!v8yW1*1{mpd+rVMK1zTXR^kUUOp;R2bz;w3PTVT9)>Kyshd8gt!O_G@ z9MuC{Xj_^r=*}=oFegr)O$;Q>yh^$cX8K;|IpKA0I!=`2ZkPx!)k46^i?OZ&8iW!r zOPneF60NZSGn2dz83pg!NeGbJ#<}C7M-Yi0rb7e8HfN08qkXSBc2LK_#z8;OMxh_`gov+IRNRPxH?OiD%#iiE zE{3*8nkwuynr3|~I_FC~`SpCCwadi5&j-@!rW^A4{rG8|(^Cqn(%87zhlPtbqfw^BkSrvR+o(=;#rrln^(?`cobs=hRof+Q~r zo{;P6SKPn)@MAjqNfL3R+_8vDhDA0cBr07{l8BdyUuv?r4w^iUgX?*sKOa%sC=vUi zq~Vm8pV!sZjiWUk6Ob`ZkwvH3)o(fg%_}We)A=BLUdee7B#`7A<--Z$v*lG)R9=Gg z_&;r54hVpWeGUd_WT`3hz9+;#@HbrxE;~Q}bjUXIUX*?!jZO1fMJDU ztH5eBh#gCopF$%`?8HNU={s)uFzrd!1ZyJ_)%wK#;rtnm) zpsTls9739O0lEI;Bf%T?WxK19a{Dz0w{`S%AdvF%@~F5^{EeY;x;JiJ-R%T+X=(`n z4H~vM3T(VVVR?Cb<U1GjOotIn!hx^u#ll>Poob}u+n1+seXMDLJDiqG9JEG zujXpU!6WUabZxedG11Ua;fuJPrIqE&sgO`ImShTSwQ6y1(M=)XUIrUl6@g*xgkiP+ z>Cj7bLeKb>0pZq{MM2`(cBx_afBP?;H6er1$^4A~2w;-<7j>ige-{q?AJpi-z%FZZ$T{oB}#w9GtmU#-D&A>K{6Wc~yxc=D&EAhmv>cH4p~>_tHG?_8Pe ze-_$RGRAMpfSkt zr?yi_`oTx!;;T1~2TzlDchF!XNtE?a8GP;*^2dI6S2g*_Jm#3 zrDSNuW8h-KeK+veTq3Q}UKys(HSKQTxviAwUN-Qp_~5~Za<)1!!Yhyp$gizVOIofd z=)!YQ^}{udAC>C$<;2Lny{yBoXT~D}Y7>V`t1#XAYnrkXAkJGLo@yo}L`$!Z9fBuN z*r+6-2%6PdR~;7BKS^xVV$mz!TQjgXDN z@zlMrvU$9z0DlW73VFq9QT_wYh#VWQGnNY1)2lP0$QT*boAo{Ma417@=v#bf97r;z z{z=%B+Sld^Q7_t9;Huq1PxA1}Vpi6u>Tk@$8}tf;s&GBNl2_)}RIMuEACq*>*) zJNWTFy>-#?gOo3ejN4a`5`p3Q^XEzm3Pd<#D}Zf*%IDXEuHke1kZ z=A9IZ)aoXQ34h9ZyG8Uv6E6K{Y0^P!DR-pu1x6%_T8HG>B3AFOOP!R?-A{5WjqPPSbo1a8weG)Q-VydV?K{w=x4lQp zGiJl!deeJdrogvJwC!+rwHtTuhe;V3H z;#L0KRiIngmZcI(Iw=EB5^W;b4Q8pl7%9+Ad(&vw{Y+5(m*Y@@A_HkRg@$Z?|MeZj zr77#`#v(C3PagyJ;mux(X9 zZ)Z$vjSZgYT+q2iodh8&DqM8nR-cZ?yKACNyx^`H|j~gng{p`0SKn2a-PS= z;EIsl-c9NnFRE-&_UjPH$*>2?iaItvqq_M81ue{`UURskKH0oPQLD3<$V9Ne2ga;_ zcYSmNQK~{_%@Bx!t}Y`f+EWGgboeuycHSdKR#w*FkPvc+7k;ZVO<33J7w%n_B0~w@ z>#ZPvOY-&Wq&2fpJ~8?2rTHPlK=NG}V-3jP@)9sSTUNGgb%KUx#Zj3N=UH^!jPxSx@ru;DOk9e0fWW!)oxz^wDp&qb)x{c zK3PqbhG|HH=7nu@g=FAx|(^jb{P$Z68JNJ>Im0oV{i+$sh z-f7shBtBqQ+eE+!472LLzT@#3rmQ*&Hi?FblQGw|qvGO#-a-Z})A{q~-xXvkGJt1+ zVE7#|7$9ulL9o;tr1$ZaAWZ zgc82pmj=GP)~`L7W~Jl!zmfZXi_yu11?81zk#D_uvw?&ezD(ZqUUrI%483dFt_az{ zOn=V#tVR@gx)>ju1c{hzNdi29oI8H_sfxn@zn2TeDUK@+>dsA^0RncvMD%Z zyu{Ggj8E3RA$sGX=p9(&L|1Qb(a@_R5e{J+`p0xSwo#$@$rdK$3r!60%j4>rWWBv$ME}s3@7j%Zler$8o(Nu1#50^~KtF z*)GiDeSocu4E8yg*8Hr%M)}X%cR~# z&FL>Y{9D0FjNM9P-fO)fS5=Ht_3=nbz}bJ8^XEAIy}!{1JW}Hj0&#uJkCYYA_Y!PX nQ6Ll?@ty$X?aY)QWZ;l|q(0}%+G4yMsmTKs4doIgvv>ak%8F2s literal 0 HcmV?d00001 From 61b8c488729f7b2fb8bff0c7cf9da67b1869a249 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:29:45 -0700 Subject: [PATCH 045/181] sync --- code/__HELPERS/unsorted.dm | 1 + .../machinery/porta_turret/portable_turret.dm.rej | 1 - code/modules/power/apc.dm | 2 +- code/modules/power/apc.dm.rej | 14 -------------- 4 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 code/game/machinery/porta_turret/portable_turret.dm.rej delete mode 100644 code/modules/power/apc.dm.rej diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 918fd0b28c..b682c7d373 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1266,6 +1266,7 @@ proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) #define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255))) #define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) +#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) #define QDEL_NULL(item) qdel(item); item = null #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } #define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) diff --git a/code/game/machinery/porta_turret/portable_turret.dm.rej b/code/game/machinery/porta_turret/portable_turret.dm.rej deleted file mode 100644 index f6c4fd068e..0000000000 --- a/code/game/machinery/porta_turret/portable_turret.dm.rej +++ /dev/null @@ -1 +0,0 @@ -delete me \ No newline at end of file diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 8b8cb7589a..3b070f1384 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -195,7 +195,7 @@ make_terminal() -addtimer(CALLBACK(src, .proc/update), 5) + addtimer(CALLBACK(src, .proc/update), 5) /obj/machinery/power/apc/examine(mob/user) ..() diff --git a/code/modules/power/apc.dm.rej b/code/modules/power/apc.dm.rej deleted file mode 100644 index 0164f12908..0000000000 --- a/code/modules/power/apc.dm.rej +++ /dev/null @@ -1,14 +0,0 @@ -diff a/code/modules/power/apc.dm b/code/modules/power/apc.dm (rejected hunks) -@@ -178,11 +178,7 @@ - - //if area isn't specified use current - if(areastring) -- areastring = text2path(areastring) //resolves the string to path, then filters out instances generated by subtypes of the path in sortedAreas -- for(var/V in GLOB.sortedAreas) -- var/area/B = V -- if(B.type == areastring) -- src.area = V -+ src.area = get_area_instance_from_text(areastring) - if(!src.area) - src.area = A - stack_trace("Bad areastring path for [src], [src.areastring]") From 239f76f4837e421c9a20ca1af10748a39df616b1 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:32:03 -0700 Subject: [PATCH 046/181] wew --- code/_globalvars/lists/maintenance_loot.dm | 75 ++++--- .../_globalvars/lists/maintenance_loot.dm.rej | 10 - .../items/stacks/sheets/sheet_types.dm | 56 +++--- .../items/stacks/sheets/sheet_types.dm.rej | 10 - code/modules/crafting/guncrafting.dm.rej | 17 -- code/modules/crafting/recipes.dm | 186 +++++++++--------- code/modules/crafting/recipes.dm.rej | 13 -- .../research/designs/autolathe_designs.dm | 92 ++++----- .../research/designs/autolathe_designs.dm.rej | 10 - 9 files changed, 204 insertions(+), 265 deletions(-) delete mode 100644 code/_globalvars/lists/maintenance_loot.dm.rej delete mode 100644 code/game/objects/items/stacks/sheets/sheet_types.dm.rej delete mode 100644 code/modules/crafting/guncrafting.dm.rej delete mode 100644 code/modules/crafting/recipes.dm.rej delete mode 100644 code/modules/research/designs/autolathe_designs.dm.rej diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 59885b3432..58dfe21a25 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -45,7 +45,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/device/multitool = 2, /obj/item/device/radio/off = 2, /obj/item/device/t_scanner = 5, - /obj/item/weapon/airlock_painter = 1, + /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/stack/cable_coil/random/five = 6, /obj/item/stack/medical/bruise_pack = 1, @@ -56,54 +56,53 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/stack/sheet/metal/twenty = 1, /obj/item/stack/sheet/mineral/plasma = 1, /obj/item/stack/sheet/rglass = 1, - /obj/item/weapon/book/manual/wiki/engineering_construction = 1, - /obj/item/weapon/book/manual/wiki/engineering_hacking = 1, + /obj/item/book/manual/wiki/engineering_construction = 1, + /obj/item/book/manual/wiki/engineering_hacking = 1, /obj/item/clothing/head/cone = 1, - /obj/item/weapon/coin/silver = 1, - /obj/item/weapon/coin/twoheaded = 1, - /obj/item/weapon/poster/random_contraband = 1, - /obj/item/weapon/poster/random_official = 1, - /obj/item/weapon/crowbar = 1, - /obj/item/weapon/crowbar/red = 1, - /obj/item/weapon/extinguisher = 11, - //obj/item/weapon/gun/ballistic/revolver/russian = 1, //disabled until lootdrop is a proper world proc. - /obj/item/weapon/hand_labeler = 1, - /obj/item/weapon/paper/crumpled = 1, - /obj/item/weapon/pen = 1, - /obj/item/weapon/reagent_containers/spray/pestspray = 1, - /obj/item/weapon/reagent_containers/glass/rag = 3, - /obj/item/weapon/stock_parts/cell = 3, - /obj/item/weapon/storage/belt/utility = 2, - /obj/item/weapon/storage/box = 2, - /obj/item/weapon/storage/box/cups = 1, - /obj/item/weapon/storage/box/donkpockets = 1, - /obj/item/weapon/storage/box/lights/mixed = 3, - /obj/item/weapon/storage/box/hug/medical = 1, - /obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 1, - /obj/item/weapon/storage/toolbox/mechanical = 1, - /obj/item/weapon/screwdriver = 3, - /obj/item/weapon/tank/internals/emergency_oxygen = 2, - /obj/item/weapon/vending_refill/cola = 1, - /obj/item/weapon/weldingtool = 3, - /obj/item/weapon/wirecutters = 1, - /obj/item/weapon/wrench = 4, - /obj/item/weapon/relic = 3, + /obj/item/coin/silver = 1, + /obj/item/coin/twoheaded = 1, + /obj/item/poster/random_contraband = 1, + /obj/item/poster/random_official = 1, + /obj/item/crowbar = 1, + /obj/item/crowbar/red = 1, + /obj/item/extinguisher = 11, + //obj/item/gun/ballistic/revolver/russian = 1, //disabled until lootdrop is a proper world proc. + /obj/item/hand_labeler = 1, + /obj/item/paper/crumpled = 1, + /obj/item/pen = 1, + /obj/item/reagent_containers/spray/pestspray = 1, + /obj/item/reagent_containers/glass/rag = 3, + /obj/item/stock_parts/cell = 3, + /obj/item/storage/belt/utility = 2, + /obj/item/storage/box = 2, + /obj/item/storage/box/cups = 1, + /obj/item/storage/box/donkpockets = 1, + /obj/item/storage/box/lights/mixed = 3, + /obj/item/storage/box/hug/medical = 1, + /obj/item/storage/fancy/cigarettes/dromedaryco = 1, + /obj/item/storage/toolbox/mechanical = 1, + /obj/item/screwdriver = 3, + /obj/item/tank/internals/emergency_oxygen = 2, + /obj/item/vending_refill/cola = 1, + /obj/item/weldingtool = 3, + /obj/item/wirecutters = 1, + /obj/item/wrench = 4, + /obj/item/relic = 3, /obj/item/weaponcrafting/receiver = 2, /obj/item/clothing/head/cone = 2, - /obj/item/weapon/grenade/smokebomb = 2, + /obj/item/grenade/smokebomb = 2, /obj/item/device/geiger_counter = 3, - /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 1, /obj/item/device/radio/headset = 1, /obj/item/device/assembly/infra = 1, /obj/item/device/assembly/igniter = 2, /obj/item/device/assembly/signaler = 2, /obj/item/device/assembly/mousetrap = 2, - /obj/item/weapon/reagent_containers/syringe = 2, + /obj/item/reagent_containers/syringe = 2, /obj/item/clothing/gloves/color/random = 8, /obj/item/clothing/shoes/laceup = 1, - /obj/item/weapon/storage/secure/briefcase = 3, - /obj/item/weapon/storage/toolbox/artistic = 2, + /obj/item/storage/secure/briefcase = 3, + /obj/item/storage/toolbox/artistic = 2, /obj/item/toy/eightball = 1, - /obj/item/weapon/storage/daki = 3, "" = 3 )) diff --git a/code/_globalvars/lists/maintenance_loot.dm.rej b/code/_globalvars/lists/maintenance_loot.dm.rej deleted file mode 100644 index 5d0a85aa8e..0000000000 --- a/code/_globalvars/lists/maintenance_loot.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm (rejected hunks) -@@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( - /obj/item/wirecutters = 1, - /obj/item/wrench = 4, - /obj/item/relic = 3, -- /obj/itemcrafting/receiver = 2, -+ /obj/item/weaponcrafting/receiver = 2, - /obj/item/clothing/head/cone = 2, - /obj/item/grenade/smokebomb = 2, - /obj/item/device/geiger_counter = 3, diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 03f3c32b94..5d87c4b38e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ null, \ - new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ + new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ null, \ new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ @@ -41,7 +41,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ null, \ - new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ + new/datum/stack_recipe("grenade casing", /obj/item/grenade/chem_grenade), \ new/datum/stack_recipe("light fixture frame", /obj/item/wallframe/light_fixture, 2), \ new/datum/stack_recipe("small light fixture frame", /obj/item/wallframe/light_fixture/small, 1), \ null, \ @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ icon_state = "sheet-metal" materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) throwforce = 10 - flags = CONDUCT + flags_1 = CONDUCT_1 origin_tech = "materials=1" resistance_flags = FIRE_PROOF merge_type = /obj/item/stack/sheet/metal @@ -109,7 +109,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ item_state = "sheet-metal" materials = list(MAT_METAL=2000, MAT_PLASMA=2000) throwforce = 10 - flags = CONDUCT + flags_1 = CONDUCT_1 origin_tech = "materials=2" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 80) resistance_flags = FIRE_PROOF @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ - new/datum/stack_recipe("rolling pin", /obj/item/weapon/kitchen/rollingpin, 2, time = 30), \ + new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ @@ -145,13 +145,13 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \ + new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \ new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ - new/datum/stack_recipe("baseball bat", /obj/item/weapon/melee/baseball_bat, 5, time = 15),\ + new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ )) /obj/item/stack/sheet/mineral/wood @@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ desc = "One can only guess that this is a bunch of wood." singular_name = "wood plank" icon_state = "sheet-wood" - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/items_and_weapons.dmi' origin_tech = "materials=1;biotech=1" sheettype = "wood" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) @@ -181,19 +181,19 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("grey jumpsuit", /obj/item/clothing/under/color/grey, 3), \ new/datum/stack_recipe("black shoes", /obj/item/clothing/shoes/sneakers/black, 2), \ null, \ - new/datum/stack_recipe("backpack", /obj/item/weapon/storage/backpack, 4), \ - new/datum/stack_recipe("duffel bag", /obj/item/weapon/storage/backpack/duffelbag, 6), \ + new/datum/stack_recipe("backpack", /obj/item/storage/backpack, 4), \ + new/datum/stack_recipe("duffel bag", /obj/item/storage/backpack/duffelbag, 6), \ null, \ - new/datum/stack_recipe("plant bag", /obj/item/weapon/storage/bag/plants, 4), \ - new/datum/stack_recipe("book bag", /obj/item/weapon/storage/bag/books, 4), \ - new/datum/stack_recipe("mining satchel", /obj/item/weapon/storage/bag/ore, 4), \ - new/datum/stack_recipe("chemistry bag", /obj/item/weapon/storage/bag/chemistry, 4), \ - new/datum/stack_recipe("bio bag", /obj/item/weapon/storage/bag/bio, 4), \ + new/datum/stack_recipe("plant bag", /obj/item/storage/bag/plants, 4), \ + new/datum/stack_recipe("book bag", /obj/item/storage/bag/books, 4), \ + new/datum/stack_recipe("mining satchel", /obj/item/storage/bag/ore, 4), \ + new/datum/stack_recipe("chemistry bag", /obj/item/storage/bag/chemistry, 4), \ + new/datum/stack_recipe("bio bag", /obj/item/storage/bag/bio, 4), \ null, \ new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \ - new/datum/stack_recipe("rag", /obj/item/weapon/reagent_containers/glass/rag, 1), \ - new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 3), \ - new/datum/stack_recipe("empty sandbag", /obj/item/weapon/emptysandbag, 4), \ + new/datum/stack_recipe("rag", /obj/item/reagent_containers/glass/rag, 1), \ + new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \ + new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \ null, \ new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \ new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \ @@ -223,14 +223,14 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ * Cardboard */ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ - new/datum/stack_recipe("box", /obj/item/weapon/storage/box), \ - new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/box/lights/tubes), \ - new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/box/lights/bulbs), \ - new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/box/mousetraps), \ + new/datum/stack_recipe("box", /obj/item/storage/box), \ + new/datum/stack_recipe("light tubes", /obj/item/storage/box/lights/tubes), \ + new/datum/stack_recipe("light bulbs", /obj/item/storage/box/lights/bulbs), \ + new/datum/stack_recipe("mouse traps", /obj/item/storage/box/mousetraps), \ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ - new/datum/stack_recipe("folder", /obj/item/weapon/folder), \ + new/datum/stack_recipe("folder", /obj/item/folder), \ new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ )) @@ -270,7 +270,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ desc = "Sheets of cold metal with shifting inscriptions writ upon them." singular_name = "runed metal sheet" icon_state = "sheet-runed" - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/items_and_weapons.dmi' sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE @@ -321,7 +321,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ desc = "Sheets made out of brass." singular_name = "brass sheet" icon_state = "sheet-brass" - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/items_and_weapons.dmi' resistance_flags = FIRE_PROOF | ACID_PROOF throwforce = 10 max_amount = 50 @@ -376,9 +376,9 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ GLOBAL_LIST_INIT(plastic_recipes, list( new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \ - new /datum/stack_recipe("water bottle", /obj/item/weapon/reagent_containers/glass/beaker/waterbottle/empty), \ - new /datum/stack_recipe("large water bottle", /obj/item/weapon/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ - new /datum/stack_recipe("wet floor sign", /obj/item/weapon/caution, 2))) + new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \ + new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ + new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2))) /obj/item/stack/sheet/plastic name = "plastic" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm.rej b/code/game/objects/items/stacks/sheets/sheet_types.dm.rej deleted file mode 100644 index 42a73bb09c..0000000000 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm (rejected hunks) -@@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ - new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ - new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ - new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ -- new/datum/stack_recipe("rifle stock", /obj/itemcrafting/stock, 10, time = 40), \ -+ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ - new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ - new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/modules/crafting/guncrafting.dm.rej b/code/modules/crafting/guncrafting.dm.rej deleted file mode 100644 index 46afc0167b..0000000000 --- a/code/modules/crafting/guncrafting.dm.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/code/modules/crafting/guncrafting.dm b/code/modules/crafting/guncrafting.dm (rejected hunks) -@@ -2,13 +2,13 @@ - - // PARTS // - --/obj/itemcrafting/receiver -+/obj/item/weaponcrafting/receiver - name = "modular receiver" - desc = "A prototype modular receiver and trigger assembly for a firearm." - icon = 'icons/obj/improvised.dmi' - icon_state = "receiver" - --/obj/itemcrafting/stock -+/obj/item/weaponcrafting/stock - name = "rifle stock" - desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood." - icon = 'icons/obj/improvised.dmi' diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index f363ea98e1..6271d2caf5 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -13,33 +13,33 @@ /datum/crafting_recipe/pin_removal name = "Pin Removal" - result = /obj/item/weapon/gun - reqs = list(/obj/item/weapon/gun = 1) - parts = list(/obj/item/weapon/gun = 1) - tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver, /obj/item/weapon/wirecutters) + result = /obj/item/gun + reqs = list(/obj/item/gun = 1) + parts = list(/obj/item/gun = 1) + tools = list(/obj/item/weldingtool, /obj/item/screwdriver, /obj/item/wirecutters) time = 50 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/IED name = "IED" - result = /obj/item/weapon/grenade/iedcasing + result = /obj/item/grenade/iedcasing reqs = list(/datum/reagent/fuel = 50, /obj/item/stack/cable_coil = 1, /obj/item/device/assembly/igniter = 1, - /obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1) - parts = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1) + /obj/item/reagent_containers/food/drinks/soda_cans = 1) + parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1) time = 15 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/lance name = "explosive lance (grenade)" - result = /obj/item/weapon/twohanded/spear - reqs = list(/obj/item/weapon/twohanded/spear = 1, - /obj/item/weapon/grenade = 1) - parts = list(/obj/item/weapon/twohanded/spear = 1, - /obj/item/weapon/grenade = 1) + result = /obj/item/twohanded/spear + reqs = list(/obj/item/twohanded/spear = 1, + /obj/item/grenade = 1) + parts = list(/obj/item/twohanded/spear = 1, + /obj/item/grenade = 1) time = 15 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -49,25 +49,25 @@ result = /obj/item/device/assembly/flash/shield reqs = list(/obj/item/wallframe/flasher = 1, /obj/item/device/assembly/flash/handheld = 1, - /obj/item/weapon/shield/riot = 1) + /obj/item/shield/riot = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/molotov name = "Molotov" - result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov - reqs = list(/obj/item/weapon/reagent_containers/glass/rag = 1, - /obj/item/weapon/reagent_containers/food/drinks/bottle = 1) - parts = list(/obj/item/weapon/reagent_containers/food/drinks/bottle = 1) + result = /obj/item/reagent_containers/food/drinks/bottle/molotov + reqs = list(/obj/item/reagent_containers/glass/rag = 1, + /obj/item/reagent_containers/food/drinks/bottle = 1) + parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/stunprod name = "Stunprod" - result = /obj/item/weapon/melee/baton/cattleprod - reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + result = /obj/item/melee/baton/cattleprod + reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/rods = 1, /obj/item/device/assembly/igniter = 1) time = 40 @@ -76,19 +76,19 @@ /datum/crafting_recipe/teleprod name = "Teleprod" - result = /obj/item/weapon/melee/baton/cattleprod/teleprod - reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + result = /obj/item/melee/baton/cattleprod/teleprod + reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/rods = 1, /obj/item/device/assembly/igniter = 1, - /obj/item/weapon/ore/bluespace_crystal = 1) + /obj/item/ore/bluespace_crystal = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/bola name = "Bola" - result = /obj/item/weapon/restraints/legcuffs/bola - reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + result = /obj/item/restraints/legcuffs/bola + reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/sheet/metal = 6) time = 20//15 faster than crafting them by hand! category= CAT_WEAPON @@ -96,7 +96,7 @@ /datum/crafting_recipe/tailclub name = "Tail Club" - result = /obj/item/weapon/tailclub + result = /obj/item/tailclub reqs = list(/obj/item/severedtail = 1, /obj/item/stack/sheet/metal = 1) time = 40 @@ -105,7 +105,7 @@ /datum/crafting_recipe/tailwhip name = "Liz O' Nine Tails" - result = /obj/item/weapon/melee/chainofcommand/tailwhip + result = /obj/item/melee/chainofcommand/tailwhip reqs = list(/obj/item/severedtail = 1, /obj/item/stack/cable_coil = 1) time = 40 @@ -114,7 +114,7 @@ /datum/crafting_recipe/catwhip name = "Cat O' Nine Tails" - result = /obj/item/weapon/melee/chainofcommand/tailwhip/kitty + result = /obj/item/melee/chainofcommand/tailwhip/kitty reqs = list(/obj/item/organ/tail/cat = 1, /obj/item/stack/cable_coil = 1) time = 40 @@ -131,10 +131,10 @@ /obj/item/bodypart/r_leg/robot = 1, /obj/item/stack/sheet/metal = 1, /obj/item/stack/cable_coil = 1, - /obj/item/weapon/gun/energy/e_gun/advtaser = 1, - /obj/item/weapon/stock_parts/cell = 1, + /obj/item/gun/energy/e_gun/advtaser = 1, + /obj/item/stock_parts/cell = 1, /obj/item/device/assembly/prox_sensor = 1) - tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver) + tools = list(/obj/item/weldingtool, /obj/item/screwdriver) time = 60 category = CAT_ROBOT @@ -143,17 +143,17 @@ result = /mob/living/simple_animal/bot/secbot reqs = list(/obj/item/device/assembly/signaler = 1, /obj/item/clothing/head/helmet/sec = 1, - /obj/item/weapon/melee/baton = 1, + /obj/item/melee/baton = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) - tools = list(/obj/item/weapon/weldingtool) + tools = list(/obj/item/weldingtool) time = 60 category = CAT_ROBOT /datum/crafting_recipe/cleanbot name = "Cleanbot" result = /mob/living/simple_animal/bot/cleanbot - reqs = list(/obj/item/weapon/reagent_containers/glass/bucket = 1, + reqs = list(/obj/item/reagent_containers/glass/bucket = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) time = 40 @@ -162,7 +162,7 @@ /datum/crafting_recipe/floorbot name = "Floorbot" result = /mob/living/simple_animal/bot/floorbot - reqs = list(/obj/item/weapon/storage/toolbox/mechanical = 1, + reqs = list(/obj/item/storage/toolbox/mechanical = 1, /obj/item/stack/tile/plasteel = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) @@ -173,7 +173,7 @@ name = "Medbot" result = /mob/living/simple_animal/bot/medbot reqs = list(/obj/item/device/healthanalyzer = 1, - /obj/item/weapon/storage/firstaid = 1, + /obj/item/storage/firstaid = 1, /obj/item/device/assembly/prox_sensor = 1, /obj/item/bodypart/r_arm/robot = 1) time = 40 @@ -181,9 +181,9 @@ /datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but name = "Pneumatic Cannon" - result = /obj/item/weapon/pneumatic_cannon/ghetto - tools = list(/obj/item/weapon/weldingtool, - /obj/item/weapon/wrench) + result = /obj/item/pneumatic_cannon/ghetto + tools = list(/obj/item/weldingtool, + /obj/item/wrench) reqs = list(/obj/item/stack/sheet/metal = 4, /obj/item/stack/packageWrap = 8, /obj/item/pipe = 2) @@ -193,13 +193,13 @@ /datum/crafting_recipe/flamethrower name = "Flamethrower" - result = /obj/item/weapon/flamethrower - reqs = list(/obj/item/weapon/weldingtool = 1, + result = /obj/item/flamethrower + reqs = list(/obj/item/weldingtool = 1, /obj/item/device/assembly/igniter = 1, /obj/item/stack/rods = 1) parts = list(/obj/item/device/assembly/igniter = 1, - /obj/item/weapon/weldingtool = 1) - tools = list(/obj/item/weapon/screwdriver) + /obj/item/weldingtool = 1) + tools = list(/obj/item/screwdriver) time = 10 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -208,9 +208,9 @@ name = "Meteorshot Shell" result = /obj/item/ammo_casing/shotgun/meteorshot reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/weapon/rcd_ammo = 1, - /obj/item/weapon/stock_parts/manipulator = 2) - tools = list(/obj/item/weapon/screwdriver) + /obj/item/rcd_ammo = 1, + /obj/item/stock_parts/manipulator = 2) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -219,9 +219,9 @@ name = "Pulse Slug Shell" result = /obj/item/ammo_casing/shotgun/pulseslug reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/weapon/stock_parts/capacitor/adv = 2, - /obj/item/weapon/stock_parts/micro_laser/ultra = 1) - tools = list(/obj/item/weapon/screwdriver) + /obj/item/stock_parts/capacitor/adv = 2, + /obj/item/stock_parts/micro_laser/ultra = 1) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -230,7 +230,7 @@ name = "Dragonsbreath Shell" result = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5) - tools = list(/obj/item/weapon/screwdriver) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -242,7 +242,7 @@ /datum/reagent/glycerol = 5, /datum/reagent/toxin/acid = 5, /datum/reagent/toxin/acid/fluacid = 5) - tools = list(/obj/item/weapon/screwdriver) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -251,9 +251,9 @@ name = "Ion Scatter Shell" result = /obj/item/ammo_casing/shotgun/ion reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/weapon/stock_parts/micro_laser/ultra = 1, - /obj/item/weapon/stock_parts/subspace/crystal = 1) - tools = list(/obj/item/weapon/screwdriver) + /obj/item/stock_parts/micro_laser/ultra = 1, + /obj/item/stock_parts/subspace/crystal = 1) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -261,11 +261,11 @@ /datum/crafting_recipe/improvisedslug name = "Improvised Shotgun Shell" result = /obj/item/ammo_casing/shotgun/improvised - reqs = list(/obj/item/weapon/grenade/chem_grenade = 1, + reqs = list(/obj/item/grenade/chem_grenade = 1, /obj/item/stack/sheet/metal = 1, /obj/item/stack/cable_coil = 1, /datum/reagent/fuel = 10) - tools = list(/obj/item/weapon/screwdriver) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -276,7 +276,7 @@ reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1, /datum/reagent/blackpowder = 10, /datum/reagent/toxin/plasma = 20) - tools = list(/obj/item/weapon/screwdriver) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -285,41 +285,41 @@ name = "Laser Slug Shell" result = /obj/item/ammo_casing/shotgun/laserslug reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, - /obj/item/weapon/stock_parts/capacitor/adv = 1, - /obj/item/weapon/stock_parts/micro_laser/high = 1) - tools = list(/obj/item/weapon/screwdriver) + /obj/item/stock_parts/capacitor/adv = 1, + /obj/item/stock_parts/micro_laser/high = 1) + tools = list(/obj/item/screwdriver) time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO /datum/crafting_recipe/ishotgun name = "Improvised Shotgun" - result = /obj/item/weapon/gun/ballistic/revolver/doublebarrel/improvised + result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised reqs = list(/obj/item/weaponcrafting/receiver = 1, /obj/item/pipe = 1, /obj/item/weaponcrafting/stock = 1, /obj/item/stack/packageWrap = 5) - tools = list(/obj/item/weapon/screwdriver) + tools = list(/obj/item/screwdriver) time = 100 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/chainsaw name = "Chainsaw" - result = /obj/item/weapon/twohanded/required/chainsaw - reqs = list(/obj/item/weapon/circular_saw = 1, + result = /obj/item/twohanded/required/chainsaw + reqs = list(/obj/item/circular_saw = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plasteel = 1) - tools = list(/obj/item/weapon/weldingtool) + tools = list(/obj/item/weldingtool) time = 50 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/spear name = "Spear" - result = /obj/item/weapon/twohanded/spear - reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, - /obj/item/weapon/shard = 1, + result = /obj/item/twohanded/spear + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/shard = 1, /obj/item/stack/rods = 1) time = 40 category = CAT_WEAPONRY @@ -374,9 +374,9 @@ /datum/crafting_recipe/papersack name = "Paper Sack" - result = /obj/item/weapon/storage/box/papersack + result = /obj/item/storage/box/papersack time = 10 - reqs = list(/obj/item/weapon/paper = 5) + reqs = list(/obj/item/paper = 5) category = CAT_MISC @@ -386,7 +386,7 @@ time = 10 reqs = list( /obj/item/device/flashlight = 2, - /obj/item/weapon/restraints/handcuffs/cable = 1 + /obj/item/restraints/handcuffs/cable = 1 ) category = CAT_MISC @@ -394,20 +394,20 @@ name = "Paper Frames" result = /obj/item/stack/sheet/paperframes/five time = 10 - reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/weapon/paper = 20) + reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20) category = CAT_MISC /datum/crafting_recipe/naturalpaper name = "Hand-Pressed Paper" time = 30 reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1) - tools = list(/obj/item/weapon/hatchet) - result = /obj/item/weapon/paper_bin/bundlenatural + tools = list(/obj/item/hatchet) + result = /obj/item/paper_bin/bundlenatural category = CAT_MISC /datum/crafting_recipe/toysword name = "Toy Sword" - reqs = list(/obj/item/weapon/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) + reqs = list(/obj/item/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) result = /obj/item/toy/sword category = CAT_MISC @@ -426,26 +426,26 @@ /datum/crafting_recipe/chemical_payload name = "Chemical Payload (C4)" - result = /obj/item/weapon/bombcore/chemical + result = /obj/item/bombcore/chemical reqs = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/grenade/plastic/c4 = 1, - /obj/item/weapon/grenade/chem_grenade = 2 + /obj/item/stock_parts/matter_bin = 1, + /obj/item/grenade/plastic/c4 = 1, + /obj/item/grenade/chem_grenade = 2 ) - parts = list(/obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/grenade/chem_grenade = 2) + parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 30 category = CAT_WEAPONRY subcategory = CAT_WEAPON /datum/crafting_recipe/chemical_payload2 name = "Chemical Payload (gibtonite)" - result = /obj/item/weapon/bombcore/chemical + result = /obj/item/bombcore/chemical reqs = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/twohanded/required/gibtonite = 1, - /obj/item/weapon/grenade/chem_grenade = 2 + /obj/item/stock_parts/matter_bin = 1, + /obj/item/twohanded/required/gibtonite = 1, + /obj/item/grenade/chem_grenade = 2 ) - parts = list(/obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/grenade/chem_grenade = 2) + parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 50 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -508,22 +508,22 @@ /datum/crafting_recipe/gold_horn name = "Golden bike horn" - result = /obj/item/weapon/bikehorn/golden + result = /obj/item/bikehorn/golden time = 20 reqs = list(/obj/item/stack/sheet/mineral/bananium = 5, - /obj/item/weapon/bikehorn) + /obj/item/bikehorn) category = CAT_MISC /datum/crafting_recipe/bonedagger name = "Bone Dagger" - result = /obj/item/weapon/kitchen/knife/combat/bone + result = /obj/item/kitchen/knife/combat/bone time = 20 reqs = list(/obj/item/stack/sheet/bone = 2) category = CAT_PRIMAL /datum/crafting_recipe/bonespear name = "Bone Spear" - result = /obj/item/weapon/twohanded/bonespear + result = /obj/item/twohanded/bonespear time = 30 reqs = list(/obj/item/stack/sheet/bone = 4, /obj/item/stack/sheet/sinew = 1) @@ -531,7 +531,7 @@ /datum/crafting_recipe/boneaxe name = "Bone Axe" - result = /obj/item/weapon/twohanded/fireaxe/boneaxe + result = /obj/item/twohanded/fireaxe/boneaxe time = 50 reqs = list(/obj/item/stack/sheet/bone = 6, /obj/item/stack/sheet/sinew = 3) @@ -540,13 +540,13 @@ /datum/crafting_recipe/bonfire name = "Bonfire" time = 60 - reqs = list(/obj/item/weapon/grown/log = 5) + reqs = list(/obj/item/grown/log = 5) result = /obj/structure/bonfire category = CAT_PRIMAL /datum/crafting_recipe/smallcarton name = "Small Carton" - result = /obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton + result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton time = 10 reqs = list(/obj/item/stack/sheet/cardboard = 1) category = CAT_MISC @@ -561,8 +561,8 @@ /datum/crafting_recipe/rcl name = "Makeshift Rapid Cable Layer" - result = /obj/item/weapon/twohanded/rcl/ghetto + result = /obj/item/twohanded/rcl/ghetto time = 40 - tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver, /obj/item/weapon/wrench) + tools = list(/obj/item/weldingtool, /obj/item/screwdriver, /obj/item/wrench) reqs = list(/obj/item/stack/sheet/metal = 15) category = CAT_MISC diff --git a/code/modules/crafting/recipes.dm.rej b/code/modules/crafting/recipes.dm.rej deleted file mode 100644 index 71b26fbfc8..0000000000 --- a/code/modules/crafting/recipes.dm.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm (rejected hunks) -@@ -295,9 +295,9 @@ - /datum/crafting_recipe/ishotgun - name = "Improvised Shotgun" - result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised -- reqs = list(/obj/itemcrafting/receiver = 1, -+ reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 1, -- /obj/itemcrafting/stock = 1, -+ /obj/item/weaponcrafting/stock = 1, - /obj/item/stack/packageWrap = 5) - tools = list(/obj/item/screwdriver) - time = 100 diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index fa65765f86..5d089739d1 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -7,7 +7,7 @@ id = "bucket" build_type = AUTOLATHE materials = list(MAT_METAL = 200) - build_path = /obj/item/weapon/reagent_containers/glass/bucket + build_path = /obj/item/reagent_containers/glass/bucket category = list("initial","Tools") /datum/design/crowbar @@ -15,7 +15,7 @@ id = "crowbar" build_type = AUTOLATHE materials = list(MAT_METAL = 50) - build_path = /obj/item/weapon/crowbar + build_path = /obj/item/crowbar category = list("initial","Tools") /datum/design/flashlight @@ -31,7 +31,7 @@ id = "extinguisher" build_type = AUTOLATHE materials = list(MAT_METAL = 90) - build_path = /obj/item/weapon/extinguisher + build_path = /obj/item/extinguisher category = list("initial","Tools") /datum/design/multitool @@ -63,7 +63,7 @@ id = "welding_tool" build_type = AUTOLATHE materials = list(MAT_METAL = 70, MAT_GLASS = 20) - build_path = /obj/item/weapon/weldingtool + build_path = /obj/item/weldingtool category = list("initial","Tools") /datum/design/mini_weldingtool @@ -71,7 +71,7 @@ id = "mini_welding_tool" build_type = AUTOLATHE materials = list(MAT_METAL = 30, MAT_GLASS = 10) - build_path = /obj/item/weapon/weldingtool/mini + build_path = /obj/item/weldingtool/mini category = list("initial","Tools") /datum/design/screwdriver @@ -79,7 +79,7 @@ id = "screwdriver" build_type = AUTOLATHE materials = list(MAT_METAL = 75) - build_path = /obj/item/weapon/screwdriver + build_path = /obj/item/screwdriver category = list("initial","Tools") /datum/design/wirecutters @@ -87,7 +87,7 @@ id = "wirecutters" build_type = AUTOLATHE materials = list(MAT_METAL = 80) - build_path = /obj/item/weapon/wirecutters + build_path = /obj/item/wirecutters category = list("initial","Tools") /datum/design/wrench @@ -95,7 +95,7 @@ id = "wrench" build_type = AUTOLATHE materials = list(MAT_METAL = 150) - build_path = /obj/item/weapon/wrench + build_path = /obj/item/wrench category = list("initial","Tools") /datum/design/welding_helmet @@ -120,7 +120,7 @@ id = "tool_box" build_type = AUTOLATHE materials = list(MAT_METAL = 500) - build_path = /obj/item/weapon/storage/toolbox + build_path = /obj/item/storage/toolbox category = list("initial","Tools") /datum/design/console_screen @@ -128,7 +128,7 @@ id = "console_screen" build_type = AUTOLATHE materials = list(MAT_GLASS = 200) - build_path = /obj/item/weapon/stock_parts/console_screen + build_path = /obj/item/stock_parts/console_screen category = list("initial", "Electronics") /datum/design/apc_board @@ -136,7 +136,7 @@ id = "power control" build_type = AUTOLATHE materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/weapon/electronics/apc + build_path = /obj/item/electronics/apc category = list("initial", "Electronics") /datum/design/airlock_board @@ -144,7 +144,7 @@ id = "airlock_board" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/weapon/electronics/airlock + build_path = /obj/item/electronics/airlock category = list("initial", "Electronics") /datum/design/firelock_board @@ -152,7 +152,7 @@ id = "firelock_board" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/weapon/electronics/firelock + build_path = /obj/item/electronics/firelock category = list("initial", "Electronics") /datum/design/airalarm_electronics @@ -160,7 +160,7 @@ id = "airalarm_electronics" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/weapon/electronics/airalarm + build_path = /obj/item/electronics/airalarm category = list("initial", "Electronics") /datum/design/firealarm_electronics @@ -168,7 +168,7 @@ id = "firealarm_electronics" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/weapon/electronics/firealarm + build_path = /obj/item/electronics/firealarm category = list("initial", "Electronics") /datum/design/earmuffs @@ -192,7 +192,7 @@ id = "airlock_painter" build_type = AUTOLATHE materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/weapon/airlock_painter + build_path = /obj/item/airlock_painter category = list("initial", "Misc") /datum/design/metal @@ -236,7 +236,7 @@ id = "rcd_ammo" build_type = AUTOLATHE materials = list(MAT_METAL = 12000, MAT_GLASS=8000) - build_path = /obj/item/weapon/rcd_ammo + build_path = /obj/item/rcd_ammo category = list("initial","Construction") /datum/design/kitchen_knife @@ -244,7 +244,7 @@ id = "kitchen_knife" build_type = AUTOLATHE materials = list(MAT_METAL = 12000) - build_path = /obj/item/weapon/kitchen/knife + build_path = /obj/item/kitchen/knife category = list("initial","Dinnerware") /datum/design/fork @@ -252,7 +252,7 @@ id = "fork" build_type = AUTOLATHE materials = list(MAT_METAL = 80) - build_path = /obj/item/weapon/kitchen/fork + build_path = /obj/item/kitchen/fork category = list("initial","Dinnerware") /datum/design/tray @@ -260,7 +260,7 @@ id = "tray" build_type = AUTOLATHE materials = list(MAT_METAL = 3000) - build_path = /obj/item/weapon/storage/bag/tray + build_path = /obj/item/storage/bag/tray category = list("initial","Dinnerware") /datum/design/bowl @@ -268,7 +268,7 @@ id = "bowl" build_type = AUTOLATHE materials = list(MAT_GLASS = 500) - build_path = /obj/item/weapon/reagent_containers/glass/bowl + build_path = /obj/item/reagent_containers/glass/bowl category = list("initial","Dinnerware") /datum/design/drinking_glass @@ -276,7 +276,7 @@ id = "drinking_glass" build_type = AUTOLATHE materials = list(MAT_GLASS = 500) - build_path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass + build_path = /obj/item/reagent_containers/food/drinks/drinkingglass category = list("initial","Dinnerware") /datum/design/shot_glass @@ -284,7 +284,7 @@ id = "shot_glass" build_type = AUTOLATHE materials = list(MAT_GLASS = 100) - build_path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass + build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass category = list("initial","Dinnerware") /datum/design/shaker @@ -292,7 +292,7 @@ id = "shaker" build_type = AUTOLATHE materials = list(MAT_METAL = 1500) - build_path = /obj/item/weapon/reagent_containers/food/drinks/shaker + build_path = /obj/item/reagent_containers/food/drinks/shaker category = list("initial","Dinnerware") /datum/design/cultivator @@ -300,7 +300,7 @@ id = "cultivator" build_type = AUTOLATHE materials = list(MAT_METAL=50) - build_path = /obj/item/weapon/cultivator + build_path = /obj/item/cultivator category = list("initial","Misc") /datum/design/plant_analyzer @@ -316,7 +316,7 @@ id = "shovel" build_type = AUTOLATHE materials = list(MAT_METAL = 50) - build_path = /obj/item/weapon/shovel + build_path = /obj/item/shovel category = list("initial","Misc") /datum/design/spade @@ -324,7 +324,7 @@ id = "spade" build_type = AUTOLATHE materials = list(MAT_METAL = 50) - build_path = /obj/item/weapon/shovel/spade + build_path = /obj/item/shovel/spade category = list("initial","Misc") /datum/design/hatchet @@ -332,7 +332,7 @@ id = "hatchet" build_type = AUTOLATHE materials = list(MAT_METAL = 15000) - build_path = /obj/item/weapon/hatchet + build_path = /obj/item/hatchet category = list("initial","Misc") /datum/design/scalpel @@ -340,7 +340,7 @@ id = "scalpel" build_type = AUTOLATHE materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) - build_path = /obj/item/weapon/scalpel + build_path = /obj/item/scalpel category = list("initial", "Medical") /datum/design/circular_saw @@ -348,7 +348,7 @@ id = "circular_saw" build_type = AUTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/weapon/circular_saw + build_path = /obj/item/circular_saw category = list("initial", "Medical") /datum/design/surgicaldrill @@ -356,7 +356,7 @@ id = "surgicaldrill" build_type = AUTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/weapon/surgicaldrill + build_path = /obj/item/surgicaldrill category = list("initial", "Medical") /datum/design/retractor @@ -364,7 +364,7 @@ id = "retractor" build_type = AUTOLATHE materials = list(MAT_METAL = 6000, MAT_GLASS = 3000) - build_path = /obj/item/weapon/retractor + build_path = /obj/item/retractor category = list("initial", "Medical") /datum/design/cautery @@ -372,7 +372,7 @@ id = "cautery" build_type = AUTOLATHE materials = list(MAT_METAL = 2500, MAT_GLASS = 750) - build_path = /obj/item/weapon/cautery + build_path = /obj/item/cautery category = list("initial", "Medical") /datum/design/hemostat @@ -380,7 +380,7 @@ id = "hemostat" build_type = AUTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) - build_path = /obj/item/weapon/hemostat + build_path = /obj/item/hemostat category = list("initial", "Medical") /datum/design/beaker @@ -388,7 +388,7 @@ id = "beaker" build_type = AUTOLATHE materials = list(MAT_GLASS = 500) - build_path = /obj/item/weapon/reagent_containers/glass/beaker + build_path = /obj/item/reagent_containers/glass/beaker category = list("initial", "Medical") /datum/design/large_beaker @@ -396,7 +396,7 @@ id = "large_beaker" build_type = AUTOLATHE materials = list(MAT_GLASS = 2500) - build_path = /obj/item/weapon/reagent_containers/glass/beaker/large + build_path = /obj/item/reagent_containers/glass/beaker/large category = list("initial", "Medical") /datum/design/healthanalyzer @@ -524,7 +524,7 @@ id = "light_tube" build_type = AUTOLATHE materials = list(MAT_GLASS = 100) - build_path = /obj/item/weapon/light/tube + build_path = /obj/item/light/tube category = list("initial", "Construction") /datum/design/light_bulb @@ -532,7 +532,7 @@ id = "light_bulb" build_type = AUTOLATHE materials = list(MAT_GLASS = 100) - build_path = /obj/item/weapon/light/bulb + build_path = /obj/item/light/bulb category = list("initial", "Construction") /datum/design/camera_assembly @@ -556,7 +556,7 @@ id = "syringe" build_type = AUTOLATHE materials = list(MAT_METAL = 10, MAT_GLASS = 20) - build_path = /obj/item/weapon/reagent_containers/syringe + build_path = /obj/item/reagent_containers/syringe category = list("initial", "Medical") /datum/design/prox_sensor @@ -581,7 +581,7 @@ id = "flamethrower" build_type = AUTOLATHE materials = list(MAT_METAL = 500) - build_path = /obj/item/weapon/flamethrower/full + build_path = /obj/item/flamethrower/full category = list("hacked", "Weapons and ammo") /datum/design/rcd @@ -589,7 +589,7 @@ id = "rcd" build_type = AUTOLATHE materials = list(MAT_METAL = 30000) - build_path = /obj/item/weapon/construction/rcd + build_path = /obj/item/construction/rcd category = list("hacked", "Construction") /datum/design/rpd @@ -597,7 +597,7 @@ id = "rpd" build_type = AUTOLATHE materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) - build_path = /obj/item/weapon/pipe_dispenser + build_path = /obj/item/pipe_dispenser category = list("hacked", "Construction") /datum/design/electropack @@ -613,7 +613,7 @@ id = "large_welding_tool" build_type = AUTOLATHE materials = list(MAT_METAL = 70, MAT_GLASS = 60) - build_path = /obj/item/weapon/weldingtool/largetank + build_path = /obj/item/weldingtool/largetank category = list("hacked", "Tools") /datum/design/handcuffs @@ -621,7 +621,7 @@ id = "handcuffs" build_type = AUTOLATHE materials = list(MAT_METAL = 500) - build_path = /obj/item/weapon/restraints/handcuffs + build_path = /obj/item/restraints/handcuffs category = list("hacked", "Security") /datum/design/receiver @@ -717,7 +717,7 @@ id = "cleaver" build_type = AUTOLATHE materials = list(MAT_METAL = 18000) - build_path = /obj/item/weapon/kitchen/knife/butcher + build_path = /obj/item/kitchen/knife/butcher category = list("hacked", "Dinnerware") /datum/design/spraycan @@ -741,7 +741,7 @@ id = "handlabel" build_type = AUTOLATHE materials = list(MAT_METAL = 150, MAT_GLASS = 125) - build_path = /obj/item/weapon/hand_labeler + build_path = /obj/item/hand_labeler category = list("initial", "Electronics") /datum/design/geiger diff --git a/code/modules/research/designs/autolathe_designs.dm.rej b/code/modules/research/designs/autolathe_designs.dm.rej deleted file mode 100644 index dafe48d4c9..0000000000 --- a/code/modules/research/designs/autolathe_designs.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm (rejected hunks) -@@ -629,7 +629,7 @@ - id = "reciever" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) -- build_path = /obj/itemcrafting/receiver -+ build_path = /obj/item/weaponcrafting/receiver - category = list("hacked", "Security") - - /datum/design/shotgun_slug From 80221fa87491dc90e279541e8513f9e0c7705b6f Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:32:40 -0700 Subject: [PATCH 047/181] sync --- code/modules/admin/verbs/debug.dm | 22 +++++++++++----------- code/modules/admin/verbs/debug.dm.rej | 9 --------- 2 files changed, 11 insertions(+), 20 deletions(-) delete mode 100644 code/modules/admin/verbs/debug.dm.rej diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 66438d1fac..362ce2a1d8 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -348,11 +348,10 @@ GLOBAL_PROTECT(AdminProcCallCount) /obj/effect/decal/cleanable = "CLEANABLE", /obj/item/device/radio/headset = "HEADSET", /obj/item/clothing/head/helmet/space = "SPESSHELMET", - /obj/item/weapon/book/manual = "MANUAL", - /obj/item/weapon/reagent_containers/food/drinks = "DRINK", //longest paths comes first - /obj/item/weapon/reagent_containers/food = "FOOD", - /obj/item/weapon/reagent_containers = "REAGENT_CONTAINERS", - /obj/item/weapon = "WEAPON", + /obj/item/book/manual = "MANUAL", + /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first + /obj/item/reagent_containers/food = "FOOD", + /obj/item/reagent_containers = "REAGENT_CONTAINERS", /obj/machinery/atmospherics = "ATMOS_MECH", /obj/machinery/portable_atmospherics = "PORT_ATMOS", /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", @@ -442,14 +441,14 @@ GLOBAL_PROTECT(AdminProcCallCount) if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/worn = H.wear_id - var/obj/item/weapon/card/id/id = null + var/obj/item/card/id/id = null if(worn) id = worn.GetID() if(id) id.icon_state = "gold" id.access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() else - id = new /obj/item/weapon/card/id/gold(H.loc) + id = new /obj/item/card/id/gold(H.loc) id.access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() id.registered_name = H.real_name id.assignment = "Captain" @@ -460,8 +459,8 @@ GLOBAL_PROTECT(AdminProcCallCount) var/obj/item/device/pda/PDA = worn PDA.id = id id.forceMove(PDA) - else if(istype(worn, /obj/item/weapon/storage/wallet)) - var/obj/item/weapon/storage/wallet/W = worn + else if(istype(worn, /obj/item/storage/wallet)) + var/obj/item/storage/wallet/W = worn W.front_id = id id.forceMove(W) W.update_icon() @@ -505,12 +504,13 @@ GLOBAL_PROTECT(AdminProcCallCount) var/list/areas_with_LS = list() var/list/areas_with_intercom = list() var/list/areas_with_camera = list() + var/list/station_areas_blacklist = typecacheof(list(/area/holodeck/rec_center, /area/shuttle, /area/engine/supermatter, /area/science/test_area, /area/space, /area/solar, /area/mine, /area/ruin)) for(var/area/A in world) if(on_station) var/turf/picked = safepick(get_area_turfs(A.type)) if(picked && (picked.z == ZLEVEL_STATION)) - if(!(A.type in areas_all)) + if(!(A.type in areas_all) && !is_type_in_typecache(A, station_areas_blacklist)) areas_all.Add(A.type) else if(!(A.type in areas_all)) areas_all.Add(A.type) @@ -705,7 +705,7 @@ GLOBAL_PROTECT(AdminProcCallCount) for(var/obj/machinery/power/rad_collector/Rad in GLOB.machines) if(Rad.anchored) if(!Rad.loaded_tank) - var/obj/item/weapon/tank/internals/plasma/Plasma = new/obj/item/weapon/tank/internals/plasma(Rad) + var/obj/item/tank/internals/plasma/Plasma = new/obj/item/tank/internals/plasma(Rad) Plasma.air_contents.assert_gas("plasma") Plasma.air_contents.gases["plasma"][MOLES] = 70 Rad.drainratio = 0 diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej deleted file mode 100644 index d212d37447..0000000000 --- a/code/modules/admin/verbs/debug.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) -@@ -352,7 +352,6 @@ GLOBAL_PROTECT(AdminProcCallCount) - /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first - /obj/item/reagent_containers/food = "FOOD", - /obj/item/reagent_containers = "REAGENT_CONTAINERS", -- /obj/item = "WEAPON", - /obj/machinery/atmospherics = "ATMOS_MECH", - /obj/machinery/portable_atmospherics = "PORT_ATMOS", - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", From de019304cdd0d1eafa5de7efaf94da18846ddf4f Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:38:31 -0700 Subject: [PATCH 048/181] wew --- icons/mob/inhands/weapons/guns_lefthand.dmi | Bin 53410 -> 55108 bytes .../inhands/weapons/guns_lefthand.dmi~HEAD | Bin 55108 -> 0 bytes icons/mob/inhands/weapons/guns_righthand.dmi | Bin 58172 -> 59893 bytes .../inhands/weapons/guns_righthand.dmi~HEAD | Bin 59893 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/mob/inhands/weapons/guns_lefthand.dmi~HEAD delete mode 100644 icons/mob/inhands/weapons/guns_righthand.dmi~HEAD diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 60233a4dc9432f47d77842ddbd09295059625e0a..de77656a15683d25e9ec2564f21bcf66ff457b6b 100644 GIT binary patch delta 15838 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 delta 14126 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 diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi~HEAD b/icons/mob/inhands/weapons/guns_lefthand.dmi~HEAD deleted file mode 100644 index de77656a15683d25e9ec2564f21bcf66ff457b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55108 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 AB>(^b diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index fe15449abafe7158f5f15050b30a43c09dbc1eb6..33f88d0d96e257abf1838c2859dee5e3cfe64ecc 100644 GIT binary patch delta 19943 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 diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi~HEAD b/icons/mob/inhands/weapons/guns_righthand.dmi~HEAD deleted file mode 100644 index 33f88d0d96e257abf1838c2859dee5e3cfe64ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59893 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

TV4&7$?+i#oBS?;blb2V{ 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 From 4661b38353fb9fdc1b9630cbbc795b4ef53fe847 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:39:08 -0700 Subject: [PATCH 049/181] Update maintenance_loot.dm --- code/_globalvars/lists/maintenance_loot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 58dfe21a25..f16e9a16ed 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -104,5 +104,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/storage/secure/briefcase = 3, /obj/item/storage/toolbox/artistic = 2, /obj/item/toy/eightball = 1, + /obj/item/storage/daki = 3, "" = 3 )) From 301a581e64d9e13b9b0d244e33df6c3d24bd7b10 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:41:11 -0700 Subject: [PATCH 050/181] sync --- code/_onclick/drag_drop.dm | 39 +- code/game/machinery/doors/door.dm | 704 ++++++------ code/game/objects/items/storage/backpack.dm | 1101 +++++++++--------- code/game/objects/items/storage/fancy.dm | 546 ++++----- code/game/objects/items/storage/lockbox.dm | 362 +++--- code/game/objects/items/storage/secure.dm | 394 +++---- code/game/objects/items/storage/storage.dm | 1148 ++++++++++--------- code/game/objects/objs.dm | 444 +++---- code/game/objects/structures/false_walls.dm | 4 +- code/game/objects/structures/grille.dm | 4 +- code/game/turfs/simulated/walls.dm | 4 +- code/modules/recycling/disposal-unit.dm | 3 + code/modules/research/stock_parts.dm | 9 +- 13 files changed, 2388 insertions(+), 2374 deletions(-) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 777d52f9ef..e7d5755962 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -1,19 +1,20 @@ -/* - MouseDrop: - - Called on the atom you're dragging. In a lot of circumstances we want to use the - recieving object instead, so that's the default action. This allows you to drag - almost anything into a trash can. -*/ -/atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) - if(!usr || !over) return - if(over == src) - return usr.client.Click(src, src_location, src_control, params) - if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows - - over.MouseDrop_T(src,usr) - return - -// recieve a mousedrop -/atom/proc/MouseDrop_T(atom/dropping, mob/user) - return +/* + MouseDrop: + + Called on the atom you're dragging. In a lot of circumstances we want to use the + recieving object instead, so that's the default action. This allows you to drag + almost anything into a trash can. +*/ +/atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + if(!usr || !over) + return + if(over == src) + return usr.client.Click(src, src_location, src_control, params) + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows + + over.MouseDrop_T(src,usr) + return + +// recieve a mousedrop +/atom/proc/MouseDrop_T(atom/dropping, mob/user) + return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index f12341d669..65a92c0b1a 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -1,352 +1,352 @@ -/obj/machinery/door - name = "door" - desc = "It opens and closes." - icon = 'icons/obj/doors/Doorint.dmi' - icon_state = "door1" - anchored = TRUE - opacity = 1 - density = TRUE - layer = OPEN_DOOR_LAYER - power_channel = ENVIRON - max_integrity = 350 - armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 80, acid = 70) - CanAtmosPass = ATMOS_PASS_DENSITY - flags_1 = PREVENT_CLICK_UNDER_1 - - var/secondsElectrified = 0 - var/shockedby = list() - var/visible = TRUE - var/operating = FALSE - var/glass = FALSE - var/welded = FALSE - var/normalspeed = 1 - var/heat_proof = FALSE // For rglass-windowed airlocks and firedoors - var/emergency = FALSE // Emergency access override - var/sub_door = FALSE // true if it's meant to go under another door. - var/closingLayer = CLOSED_DOOR_LAYER - var/autoclose = FALSE //does it automatically close after some time - var/safe = TRUE //whether the door detects things and mobs in its way and reopen or crushes them. - var/locked = FALSE //whether the door is bolted or not. - var/assemblytype //the type of door frame to drop during deconstruction - var/auto_close //TO BE REMOVED, no longer used, it's just preventing a runtime with a map var edit. - var/datum/effect_system/spark_spread/spark_system - var/damage_deflection = 10 - var/real_explosion_block //ignore this, just use explosion_block - -/obj/machinery/door/New() - ..() - if(density) - layer = CLOSED_DOOR_LAYER //Above most items if closed - else - layer = OPEN_DOOR_LAYER //Under all objects if opened. 2.7 due to tables being at 2.6 - update_freelook_sight() - air_update_turf(1) - GLOB.airlocks += src - spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(2, 1, src) - - //doors only block while dense though so we have to use the proc - real_explosion_block = explosion_block - explosion_block = EXPLOSION_BLOCK_PROC - -/obj/machinery/door/Destroy() - density = FALSE - air_update_turf(1) - update_freelook_sight() - GLOB.airlocks -= src - if(spark_system) - qdel(spark_system) - spark_system = null - return ..() - -//process() - //return - -/obj/machinery/door/CollidedWith(atom/movable/AM) - if(operating || emagged) - return - if(ismob(AM)) - var/mob/B = AM - if((isdrone(B) || iscyborg(B)) && B.stat) - return - if(isliving(AM)) - var/mob/living/M = AM - if(world.time - M.last_bumped <= 10) - return //Can bump-open one airlock per second. This is to prevent shock spam. - M.last_bumped = world.time - if(M.restrained() && !check_access(null)) - return - bumpopen(M) - return - - if(istype(AM, /obj/mecha)) - var/obj/mecha/mecha = AM - if(density) - if(mecha.occupant) - if(world.time - mecha.occupant.last_bumped <= 10) - return - mecha.occupant.last_bumped = world.time - if(mecha.occupant && (src.allowed(mecha.occupant) || src.check_access_list(mecha.operation_req_access))) - open() - else - do_animate("deny") - return - return - -/obj/machinery/door/Move() - var/turf/T = loc - ..() - move_update_air(T) - -/obj/machinery/door/CanPass(atom/movable/mover, turf/target) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return !opacity - return !density - -/obj/machinery/door/proc/bumpopen(mob/user) - if(operating) - return - src.add_fingerprint(user) - if(!src.requiresID()) - user = null - - if(density && !emagged) - if(allowed(user)) - open() - else - do_animate("deny") - return - - -/obj/machinery/door/attack_ai(mob/user) - return src.attack_hand(user) - -/obj/machinery/door/attack_hand(mob/user) - return try_to_activate_door(user) - - -/obj/machinery/door/attack_tk(mob/user) - if(requiresID() && !allowed(null)) - return - ..() - -/obj/machinery/door/proc/try_to_activate_door(mob/user) - add_fingerprint(user) - if(operating || emagged) - return - if(!requiresID()) - user = null //so allowed(user) always succeeds - if(allowed(user)) - if(density) - open() - else - close() - return - if(density) - do_animate("deny") - -/obj/machinery/door/allowed(mob/M) - if(emergency) - return TRUE - return ..() - -/obj/machinery/door/proc/try_to_weld(obj/item/weldingtool/W, mob/user) - return - -/obj/machinery/door/proc/try_to_crowbar(obj/item/I, mob/user) - return - -/obj/machinery/door/attackby(obj/item/I, mob/user, params) - if(user.a_intent != INTENT_HARM && (istype(I, /obj/item/crowbar) || istype(I, /obj/item/twohanded/fireaxe))) - try_to_crowbar(I, user) - return 1 - else if(istype(I, /obj/item/weldingtool)) - try_to_weld(I, user) - return 1 - else if(!(I.flags_1 & NOBLUDGEON_1) && user.a_intent != INTENT_HARM) - try_to_activate_door(user) - return 1 - return ..() - -/obj/machinery/door/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) - if(damage_flag == "melee" && damage_amount < damage_deflection) - return 0 - . = ..() - -/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - . = ..() - if(. && obj_integrity > 0) - if(damage_amount >= 10 && prob(30)) - spark_system.start() - -/obj/machinery/door/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(glass) - playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) - else if(damage_amount) - playsound(loc, 'sound/weapons/smash.ogg', 50, 1) - else - playsound(src, 'sound/weapons/tap.ogg', 50, 1) - if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, 1) - -/obj/machinery/door/emp_act(severity) - if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) - INVOKE_ASYNC(src, .proc/open) - if(prob(40/severity)) - if(secondsElectrified == 0) - secondsElectrified = -1 - shockedby += "\[[time_stamp()]\]EM Pulse" - addtimer(CALLBACK(src, .proc/unelectrify), 300) - ..() - -/obj/machinery/door/proc/unelectrify() - secondsElectrified = 0 - -/obj/machinery/door/update_icon() - if(density) - icon_state = "door1" - else - icon_state = "door0" - -/obj/machinery/door/proc/do_animate(animation) - switch(animation) - if("opening") - if(panel_open) - flick("o_doorc0", src) - else - flick("doorc0", src) - if("closing") - if(panel_open) - flick("o_doorc1", src) - else - flick("doorc1", src) - if("deny") - if(!stat) - flick("door_deny", src) - - -/obj/machinery/door/proc/open() - if(!density) - return 1 - if(operating) - return - operating = TRUE - do_animate("opening") - set_opacity(0) - sleep(5) - density = FALSE - sleep(5) - layer = OPEN_DOOR_LAYER - update_icon() - set_opacity(0) - operating = FALSE - air_update_turf(1) - update_freelook_sight() - if(autoclose) - spawn(autoclose) - close() - return 1 - -/obj/machinery/door/proc/close() - if(density) - return 1 - if(operating) - return - if(safe) - for(var/atom/movable/M in get_turf(src)) - if(M.density && M != src) //something is blocking the door - if(autoclose) - addtimer(CALLBACK(src, .proc/autoclose), 60) - return - operating = TRUE - - do_animate("closing") - layer = closingLayer - sleep(5) - density = TRUE - sleep(5) - update_icon() - if(visible && !glass) - set_opacity(1) - operating = FALSE - air_update_turf(1) - update_freelook_sight() - if(safe) - CheckForMobs() - else - crush() - return 1 - -/obj/machinery/door/proc/CheckForMobs() - if(locate(/mob/living) in get_turf(src)) - sleep(1) - open() - -/obj/machinery/door/proc/crush() - for(var/mob/living/L in get_turf(src)) - L.visible_message("[src] closes on [L], crushing them!", "[src] closes on you and crushes you!") - if(isalien(L)) //For xenos - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. - L.emote("roar") - else if(ishuman(L)) //For humans - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - L.emote("scream") - L.Knockdown(100) - else if(ismonkey(L)) //For monkeys - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - L.Knockdown(100) - else //for simple_animals & borgs - L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - var/turf/location = get_turf(src) - //add_blood doesn't work for borgs/xenos, but add_blood_floor does. - L.add_splatter_floor(location) - for(var/obj/mecha/M in get_turf(src)) - M.take_damage(DOOR_CRUSH_DAMAGE) - -/obj/machinery/door/proc/autoclose() - if(!QDELETED(src) && !density && !operating && !locked && !welded && autoclose) - close() - -/obj/machinery/door/proc/requiresID() - return 1 - -/obj/machinery/door/proc/hasPower() - return !(stat & NOPOWER) - -/obj/machinery/door/proc/update_freelook_sight() - if(!glass && GLOB.cameranet) - GLOB.cameranet.updateVisibility(src, 0) - -/obj/machinery/door/BlockSuperconductivity() // All non-glass airlocks block heat, this is intended. - if(opacity || heat_proof) - return 1 - return 0 - -/obj/machinery/door/morgue - icon = 'icons/obj/doors/doormorgue.dmi' - -/obj/machinery/door/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return 0 - -/obj/machinery/door/proc/lock() - return - -/obj/machinery/door/proc/unlock() - return - -/obj/machinery/door/proc/hostile_lockdown(mob/origin) - if(!stat) //So that only powered doors are closed. - close() //Close ALL the doors! - -/obj/machinery/door/proc/disable_lockdown() - if(!stat) //Opens only powered doors. - open() //Open everything! - -/obj/machinery/door/ex_act(severity, target) - //if it blows up a wall it should blow up a door - ..(severity ? max(1, severity - 1) : 0, target) - -/obj/machinery/door/GetExplosionBlock() - return density ? real_explosion_block : 0 +/obj/machinery/door + name = "door" + desc = "It opens and closes." + icon = 'icons/obj/doors/Doorint.dmi' + icon_state = "door1" + anchored = TRUE + opacity = 1 + density = TRUE + layer = OPEN_DOOR_LAYER + power_channel = ENVIRON + max_integrity = 350 + armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 80, acid = 70) + CanAtmosPass = ATMOS_PASS_DENSITY + flags_1 = PREVENT_CLICK_UNDER_1 + + var/secondsElectrified = 0 + var/shockedby = list() + var/visible = TRUE + var/operating = FALSE + var/glass = FALSE + var/welded = FALSE + var/normalspeed = 1 + var/heat_proof = FALSE // For rglass-windowed airlocks and firedoors + var/emergency = FALSE // Emergency access override + var/sub_door = FALSE // true if it's meant to go under another door. + var/closingLayer = CLOSED_DOOR_LAYER + var/autoclose = FALSE //does it automatically close after some time + var/safe = TRUE //whether the door detects things and mobs in its way and reopen or crushes them. + var/locked = FALSE //whether the door is bolted or not. + var/assemblytype //the type of door frame to drop during deconstruction + var/auto_close //TO BE REMOVED, no longer used, it's just preventing a runtime with a map var edit. + var/datum/effect_system/spark_spread/spark_system + var/damage_deflection = 10 + var/real_explosion_block //ignore this, just use explosion_block + +/obj/machinery/door/New() + ..() + if(density) + layer = CLOSED_DOOR_LAYER //Above most items if closed + else + layer = OPEN_DOOR_LAYER //Under all objects if opened. 2.7 due to tables being at 2.6 + update_freelook_sight() + air_update_turf(1) + GLOB.airlocks += src + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(2, 1, src) + + //doors only block while dense though so we have to use the proc + real_explosion_block = explosion_block + explosion_block = EXPLOSION_BLOCK_PROC + +/obj/machinery/door/Destroy() + density = FALSE + air_update_turf(1) + update_freelook_sight() + GLOB.airlocks -= src + if(spark_system) + qdel(spark_system) + spark_system = null + return ..() + +//process() + //return + +/obj/machinery/door/CollidedWith(atom/movable/AM) + if(operating || emagged) + return + if(ismob(AM)) + var/mob/B = AM + if((isdrone(B) || iscyborg(B)) && B.stat) + return + if(isliving(AM)) + var/mob/living/M = AM + if(world.time - M.last_bumped <= 10) + return //Can bump-open one airlock per second. This is to prevent shock spam. + M.last_bumped = world.time + if(M.restrained() && !check_access(null)) + return + bumpopen(M) + return + + if(istype(AM, /obj/mecha)) + var/obj/mecha/mecha = AM + if(density) + if(mecha.occupant) + if(world.time - mecha.occupant.last_bumped <= 10) + return + mecha.occupant.last_bumped = world.time + if(mecha.occupant && (src.allowed(mecha.occupant) || src.check_access_list(mecha.operation_req_access))) + open() + else + do_animate("deny") + return + return + +/obj/machinery/door/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/machinery/door/CanPass(atom/movable/mover, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return !opacity + return !density + +/obj/machinery/door/proc/bumpopen(mob/user) + if(operating) + return + src.add_fingerprint(user) + if(!src.requiresID()) + user = null + + if(density && !emagged) + if(allowed(user)) + open() + else + do_animate("deny") + return + + +/obj/machinery/door/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/door/attack_hand(mob/user) + return try_to_activate_door(user) + + +/obj/machinery/door/attack_tk(mob/user) + if(requiresID() && !allowed(null)) + return + ..() + +/obj/machinery/door/proc/try_to_activate_door(mob/user) + add_fingerprint(user) + if(operating || emagged) + return + if(!requiresID()) + user = null //so allowed(user) always succeeds + if(allowed(user)) + if(density) + open() + else + close() + return + if(density) + do_animate("deny") + +/obj/machinery/door/allowed(mob/M) + if(emergency) + return TRUE + return ..() + +/obj/machinery/door/proc/try_to_weld(obj/item/weldingtool/W, mob/user) + return + +/obj/machinery/door/proc/try_to_crowbar(obj/item/I, mob/user) + return + +/obj/machinery/door/attackby(obj/item/I, mob/user, params) + if(user.a_intent != INTENT_HARM && (istype(I, /obj/item/crowbar) || istype(I, /obj/item/twohanded/fireaxe))) + try_to_crowbar(I, user) + return 1 + else if(istype(I, /obj/item/weldingtool)) + try_to_weld(I, user) + return 1 + else if(!(I.flags_1 & NOBLUDGEON_1) && user.a_intent != INTENT_HARM) + try_to_activate_door(user) + return 1 + return ..() + +/obj/machinery/door/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < damage_deflection) + return 0 + . = ..() + +/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + if(damage_amount >= 10 && prob(30)) + spark_system.start() + +/obj/machinery/door/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(glass) + playsound(loc, 'sound/effects/glasshit.ogg', 90, 1) + else if(damage_amount) + playsound(loc, 'sound/weapons/smash.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + +/obj/machinery/door/emp_act(severity) + if(prob(20/severity) && (istype(src, /obj/machinery/door/airlock) || istype(src, /obj/machinery/door/window)) ) + INVOKE_ASYNC(src, .proc/open) + if(prob(40/severity)) + if(secondsElectrified == 0) + secondsElectrified = -1 + shockedby += "\[[time_stamp()]\]EM Pulse" + addtimer(CALLBACK(src, .proc/unelectrify), 300) + ..() + +/obj/machinery/door/proc/unelectrify() + secondsElectrified = 0 + +/obj/machinery/door/update_icon() + if(density) + icon_state = "door1" + else + icon_state = "door0" + +/obj/machinery/door/proc/do_animate(animation) + switch(animation) + if("opening") + if(panel_open) + flick("o_doorc0", src) + else + flick("doorc0", src) + if("closing") + if(panel_open) + flick("o_doorc1", src) + else + flick("doorc1", src) + if("deny") + if(!stat) + flick("door_deny", src) + + +/obj/machinery/door/proc/open() + if(!density) + return 1 + if(operating) + return + operating = TRUE + do_animate("opening") + set_opacity(0) + sleep(5) + density = FALSE + sleep(5) + layer = OPEN_DOOR_LAYER + update_icon() + set_opacity(0) + operating = FALSE + air_update_turf(1) + update_freelook_sight() + if(autoclose) + spawn(autoclose) + close() + return 1 + +/obj/machinery/door/proc/close() + if(density) + return 1 + if(operating) + return + if(safe) + for(var/atom/movable/M in get_turf(src)) + if(M.density && M != src) //something is blocking the door + if(autoclose) + addtimer(CALLBACK(src, .proc/autoclose), 60) + return + operating = TRUE + + do_animate("closing") + layer = closingLayer + sleep(5) + density = TRUE + sleep(5) + update_icon() + if(visible && !glass) + set_opacity(1) + operating = FALSE + air_update_turf(1) + update_freelook_sight() + if(safe) + CheckForMobs() + else + crush() + return 1 + +/obj/machinery/door/proc/CheckForMobs() + if(locate(/mob/living) in get_turf(src)) + sleep(1) + open() + +/obj/machinery/door/proc/crush() + for(var/mob/living/L in get_turf(src)) + L.visible_message("[src] closes on [L], crushing them!", "[src] closes on you and crushes you!") + if(isalien(L)) //For xenos + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. + L.emote("roar") + else if(ishuman(L)) //For humans + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + L.emote("scream") + L.Knockdown(100) + else if(ismonkey(L)) //For monkeys + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + L.Knockdown(100) + else //for simple_animals & borgs + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + var/turf/location = get_turf(src) + //add_blood doesn't work for borgs/xenos, but add_blood_floor does. + L.add_splatter_floor(location) + for(var/obj/mecha/M in get_turf(src)) + M.take_damage(DOOR_CRUSH_DAMAGE) + +/obj/machinery/door/proc/autoclose() + if(!QDELETED(src) && !density && !operating && !locked && !welded && autoclose) + close() + +/obj/machinery/door/proc/requiresID() + return 1 + +/obj/machinery/door/proc/hasPower() + return !(stat & NOPOWER) + +/obj/machinery/door/proc/update_freelook_sight() + if(!glass && GLOB.cameranet) + GLOB.cameranet.updateVisibility(src, 0) + +/obj/machinery/door/BlockSuperconductivity() // All non-glass airlocks block heat, this is intended. + if(opacity || heat_proof) + return 1 + return 0 + +/obj/machinery/door/morgue + icon = 'icons/obj/doors/doormorgue.dmi' + +/obj/machinery/door/get_dumping_location(obj/item/storage/source,mob/user) + return null + +/obj/machinery/door/proc/lock() + return + +/obj/machinery/door/proc/unlock() + return + +/obj/machinery/door/proc/hostile_lockdown(mob/origin) + if(!stat) //So that only powered doors are closed. + close() //Close ALL the doors! + +/obj/machinery/door/proc/disable_lockdown() + if(!stat) //Opens only powered doors. + open() //Open everything! + +/obj/machinery/door/ex_act(severity, target) + //if it blows up a wall it should blow up a door + ..(severity ? max(1, severity - 1) : 0, target) + +/obj/machinery/door/GetExplosionBlock() + return density ? real_explosion_block : 0 diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 2446c73cbd..fe89f42338 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -1,550 +1,551 @@ -/* Backpacks - * Contains: - * Backpack - * Backpack Types - * Satchel Types - */ - -/* - * Backpack - */ - -/obj/item/storage/backpack - name = "backpack" - desc = "You wear this on your back and put items into it." - icon_state = "backpack" - item_state = "backpack" - lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' - w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK //ERROOOOO - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - storage_slots = 21 - resistance_flags = 0 - max_integrity = 300 - -/* - * Backpack Types - */ - -/obj/item/storage/backpack/old - max_combined_w_class = 12 - -/obj/item/storage/backpack/holding - name = "bag of holding" - desc = "A backpack that opens into a localized pocket of Blue Space." - origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" - icon_state = "holdingpack" - item_state = "holdingpack" - max_w_class = WEIGHT_CLASS_GIGANTIC - max_combined_w_class = 35 - resistance_flags = FIRE_PROOF - var/pshoom = 'sound/items/pshoom.ogg' - var/alt_sound = 'sound/items/pshoom_2.ogg' - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) - - -/obj/item/storage/backpack/holding/suicide_act(mob/living/user) - user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") - user.drop_item() - user.Stun(100, ignore_canstun = TRUE) - sleep(20) - playsound(src, "rustle", 50, 1, -5) - qdel(user) - return - -/obj/item/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user) - if(Adjacent(user)) - if(get_dist(user, dest_object) < 8) - if(dest_object.storage_contents_dump_act(src, user)) - if(alt_sound && prob(1)) - playsound(src, alt_sound, 40, 1) - else - playsound(src, pshoom, 40, 1) - user.Beam(dest_object,icon_state="rped_upgrade",time=5) - return 1 - to_chat(user, "The [src.name] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) - return 0 - -/obj/item/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - if((istype(W, /obj/item/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/storage/backpack/holding))) - var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") - if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) - return - investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) - to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") - qdel(W) - var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) - singulo.energy = 300 //should make it a bit bigger~ - message_admins("[key_name_admin(user)] detonated a bag of holding") - log_game("[key_name(user)] detonated a bag of holding") - qdel(src) - singulo.process() - return - . = ..() - -/obj/item/storage/backpack/holding/singularity_act(current_size) - var/dist = max((current_size - 2),1) - explosion(src.loc,(dist),(dist*2),(dist*4)) - return - - -/obj/item/storage/backpack/santabag - name = "Santa's Gift Bag" - desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" - icon_state = "giftbag0" - item_state = "giftbag" - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 60 - -/obj/item/storage/backpack/santabag/suicide_act(mob/user) - user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") - return (OXYLOSS) - -/obj/item/storage/backpack/cultpack - name = "trophy rack" - desc = "It's useful for both carrying extra gear and proudly declaring your insanity." - icon_state = "cultpack" - item_state = "backpack" - -/obj/item/storage/backpack/clown - name = "Giggles von Honkerton" - desc = "It's a backpack made by Honk! Co." - icon_state = "clownpack" - item_state = "clownpack" - -/obj/item/storage/backpack/explorer - name = "explorer bag" - desc = "A robust backpack for stashing your loot." - icon_state = "explorerpack" - item_state = "explorerpack" - -/obj/item/storage/backpack/mime - name = "Parcel Parceaux" - desc = "A silent backpack made for those silent workers. Silence Co." - icon_state = "mimepack" - item_state = "mimepack" - -/obj/item/storage/backpack/medic - name = "medical backpack" - desc = "It's a backpack especially designed for use in a sterile environment." - icon_state = "medicalpack" - item_state = "medicalpack" - -/obj/item/storage/backpack/security - name = "security backpack" - desc = "It's a very robust backpack." - icon_state = "securitypack" - item_state = "securitypack" - -/obj/item/storage/backpack/captain - name = "captain's backpack" - desc = "It's a special backpack made exclusively for Nanotrasen officers." - icon_state = "captainpack" - item_state = "captainpack" - resistance_flags = 0 - -/obj/item/storage/backpack/industrial - name = "industrial backpack" - desc = "It's a tough backpack for the daily grind of station life." - icon_state = "engiepack" - item_state = "engiepack" - resistance_flags = FIRE_PROOF - -/obj/item/storage/backpack/botany - name = "botany backpack" - desc = "It's a backpack made of all-natural fibers." - icon_state = "botpack" - item_state = "botpack" - -/obj/item/storage/backpack/chemistry - name = "chemistry backpack" - desc = "A backpack specially designed to repel stains and hazardous liquids." - icon_state = "chempack" - item_state = "chempack" - -/obj/item/storage/backpack/genetics - name = "genetics backpack" - desc = "A bag designed to be super tough, just in case someone hulks out on you." - icon_state = "genepack" - item_state = "genepack" - -/obj/item/storage/backpack/science - name = "science backpack" - desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." - icon_state = "toxpack" - item_state = "toxpack" - resistance_flags = 0 - -/obj/item/storage/backpack/virology - name = "virology backpack" - desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." - icon_state = "viropack" - item_state = "viropack" - - -/* - * Satchel Types - */ - -/obj/item/storage/backpack/satchel - name = "satchel" - desc = "A trendy looking satchel." - icon_state = "satchel-norm" - species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back - -/obj/item/storage/backpack/satchel/leather - name = "leather satchel" - desc = "It's a very fancy satchel made with fine leather." - icon_state = "satchel" - resistance_flags = 0 - -/obj/item/storage/backpack/satchel/leather/withwallet/PopulateContents() - new /obj/item/storage/wallet/random(src) - -/obj/item/storage/backpack/satchel/eng - name = "industrial satchel" - desc = "A tough satchel with extra pockets." - icon_state = "satchel-eng" - item_state = "engiepack" - resistance_flags = 0 - -/obj/item/storage/backpack/satchel/med - name = "medical satchel" - desc = "A sterile satchel used in medical departments." - icon_state = "satchel-med" - item_state = "medicalpack" - -/obj/item/storage/backpack/satchel/vir - name = "virologist satchel" - desc = "A sterile satchel with virologist colours." - icon_state = "satchel-vir" - item_state = "satchel-vir" - -/obj/item/storage/backpack/satchel/chem - name = "chemist satchel" - desc = "A sterile satchel with chemist colours." - icon_state = "satchel-chem" - item_state = "satchel-chem" - -/obj/item/storage/backpack/satchel/gen - name = "geneticist satchel" - desc = "A sterile satchel with geneticist colours." - icon_state = "satchel-gen" - item_state = "satchel-gen" - -/obj/item/storage/backpack/satchel/tox - name = "scientist satchel" - desc = "Useful for holding research materials." - icon_state = "satchel-tox" - item_state = "satchel-tox" - resistance_flags = 0 - -/obj/item/storage/backpack/satchel/hyd - name = "botanist satchel" - desc = "A satchel made of all natural fibers." - icon_state = "satchel-hyd" - item_state = "satchel-hyd" - -/obj/item/storage/backpack/satchel/sec - name = "security satchel" - desc = "A robust satchel for security related needs." - icon_state = "satchel-sec" - item_state = "securitypack" - -/obj/item/storage/backpack/satchel/explorer - name = "explorer satchel" - desc = "A robust satchel for stashing your loot." - icon_state = "satchel-explorer" - item_state = "securitypack" - -/obj/item/storage/backpack/satchel/cap - name = "captain's satchel" - desc = "An exclusive satchel for Nanotrasen officers." - icon_state = "satchel-cap" - item_state = "captainpack" - resistance_flags = 0 - -/obj/item/storage/backpack/satchel/flat - name = "smuggler's satchel" - desc = "A very slim satchel that can easily fit into tight spaces." - icon_state = "satchel-flat" - w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. - max_combined_w_class = 15 - level = 1 - cant_hold = list(/obj/item/storage/backpack/satchel/flat) //muh recursive backpacks - -/obj/item/storage/backpack/satchel/flat/hide(var/intact) - if(intact) - invisibility = INVISIBILITY_MAXIMUM - anchored = TRUE //otherwise you can start pulling, cover it, and drag around an invisible backpack. - icon_state = "[initial(icon_state)]2" - else - invisibility = initial(invisibility) - anchored = FALSE - icon_state = initial(icon_state) - -/obj/item/storage/backpack/satchel/flat/Initialize(mapload) - ..() - SSpersistence.new_secret_satchels += src - -/obj/item/storage/backpack/satchel/flat/PopulateContents() - new /obj/item/stack/tile/plasteel(src) - new /obj/item/crowbar(src) - -/obj/item/storage/backpack/satchel/flat/Destroy() - SSpersistence.new_secret_satchels -= src - return ..() - -/obj/item/storage/backpack/satchel/flat/secret - var/list/reward_one_of_these = list() //Intended for map editing - var/list/reward_all_of_these = list() //use paths! - var/revealed = 0 - -/obj/item/storage/backpack/satchel/flat/secret/Initialize() - ..() - - if(isfloorturf(loc) && !istype(loc, /turf/open/floor/plating/)) - hide(1) - -/obj/item/storage/backpack/satchel/flat/secret/hide(intact) - ..() - if(!intact && !revealed) - if(reward_one_of_these.len > 0) - var/reward = pick(reward_one_of_these) - new reward(src) - for(var/R in reward_all_of_these) - new R(src) - revealed = 1 - -/obj/item/storage/backpack/duffelbag - name = "duffel bag" - desc = "A large duffel bag for holding extra things." - icon_state = "duffel" - item_state = "duffel" - slowdown = 1 - max_combined_w_class = 30 - -/obj/item/storage/backpack/duffelbag/captain - name = "captain's duffel bag" - desc = "A large duffel bag for holding extra captainly goods." - icon_state = "duffel-captain" - item_state = "duffel-captain" - resistance_flags = 0 - -/obj/item/storage/backpack/duffelbag/med - name = "medical duffel bag" - desc = "A large duffel bag for holding extra medical supplies." - icon_state = "duffel-med" - item_state = "duffel-med" - -/obj/item/storage/backpack/duffelbag/med/surgery - name = "surgical duffel bag" - desc = "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools." - -/obj/item/storage/backpack/duffelbag/med/surgery/PopulateContents() - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - new /obj/item/retractor(src) - new /obj/item/circular_saw(src) - new /obj/item/surgicaldrill(src) - new /obj/item/cautery(src) - new /obj/item/surgical_drapes(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/razor(src) - -/obj/item/storage/backpack/duffelbag/sec - name = "security duffel bag" - desc = "A large duffel bag for holding extra security supplies and ammunition." - icon_state = "duffel-sec" - item_state = "duffel-sec" - -/obj/item/storage/backpack/duffelbag/sec/surgery - name = "surgical duffel bag" - desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools." - -/obj/item/storage/backpack/duffelbag/sec/surgery/PopulateContents() - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - new /obj/item/retractor(src) - new /obj/item/circular_saw(src) - new /obj/item/surgicaldrill(src) - new /obj/item/cautery(src) - new /obj/item/surgical_drapes(src) - new /obj/item/clothing/mask/surgical(src) - -/obj/item/storage/backpack/duffelbag/engineering - name = "industrial duffel bag" - desc = "A large duffel bag for holding extra tools and supplies." - icon_state = "duffel-eng" - item_state = "duffel-eng" - resistance_flags = 0 - -/obj/item/storage/backpack/duffelbag/drone - name = "drone duffel bag" - desc = "A large duffel bag for holding tools and hats." - icon_state = "duffel-drone" - item_state = "duffel-drone" - resistance_flags = FIRE_PROOF - -/obj/item/storage/backpack/duffelbag/drone/PopulateContents() - new /obj/item/screwdriver(src) - new /obj/item/wrench(src) - new /obj/item/weldingtool(src) - new /obj/item/crowbar(src) - new /obj/item/stack/cable_coil/random(src) - new /obj/item/wirecutters(src) - new /obj/item/device/multitool(src) - -/obj/item/storage/backpack/duffelbag/clown - name = "clown's duffel bag" - desc = "A large duffel bag for holding lots of funny gags!" - icon_state = "duffel-clown" - item_state = "duffel-clown" - -/obj/item/storage/backpack/duffelbag/clown/cream_pie/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/reagent_containers/food/snacks/pie/cream(src) - -/obj/item/storage/backpack/duffelbag/syndie - name = "suspicious looking duffel bag" - desc = "A large duffel bag for holding extra tactical supplies." - icon_state = "duffel-syndie" - item_state = "duffel-syndie" - origin_tech = "syndicate=1" - silent = 1 - slowdown = 0 - -/obj/item/storage/backpack/duffelbag/syndie/hitman - desc = "A large duffel bag for holding extra things. There is a NanoTrasen logo on the back." - icon_state = "duffel-syndieammo" - item_state = "duffel-syndieammo" - -/obj/item/storage/backpack/duffelbag/syndie/hitman/PopulateContents() - new /obj/item/clothing/under/lawyer/blacksuit(src) - new /obj/item/clothing/accessory/waistcoat(src) - new /obj/item/clothing/suit/toggle/lawyer/black(src) - new /obj/item/clothing/shoes/laceup(src) - new /obj/item/clothing/gloves/color/black(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/head/fedora(src) - -/obj/item/storage/backpack/duffelbag/syndie/med - name = "medical duffel bag" - desc = "A large duffel bag for holding extra tactical medical supplies." - icon_state = "duffel-syndiemed" - item_state = "duffel-syndiemed" - -/obj/item/storage/backpack/duffelbag/syndie/surgery - name = "surgery duffel bag" - desc = "A suspicious looking duffel bag for holding surgery tools." - icon_state = "duffel-syndiemed" - item_state = "duffel-syndiemed" - -/obj/item/storage/backpack/duffelbag/syndie/surgery/PopulateContents() - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - new /obj/item/retractor(src) - new /obj/item/circular_saw(src) - new /obj/item/surgicaldrill(src) - new /obj/item/cautery(src) - new /obj/item/surgical_drapes(src) - new /obj/item/clothing/suit/straight_jacket(src) - new /obj/item/clothing/mask/muzzle(src) - new /obj/item/device/mmi/syndie(src) - -/obj/item/storage/backpack/duffelbag/syndie/ammo - name = "ammunition duffel bag" - desc = "A large duffel bag for holding extra weapons ammunition and supplies." - icon_state = "duffel-syndieammo" - item_state = "duffel-syndieammo" - -/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - desc = "A large duffel bag, packed to the brim with Bulldog shotgun ammo." - -/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/ammo_box/magazine/m12g/buckshot(src) - new /obj/item/ammo_box/magazine/m12g/slug(src) - new /obj/item/ammo_box/magazine/m12g/dragon(src) - -/obj/item/storage/backpack/duffelbag/syndie/ammo/smg - desc = "A large duffel bag, packed to the brim with C20r magazines." - -/obj/item/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents() - for(var/i in 1 to 9) - new /obj/item/ammo_box/magazine/smgm45(src) - -/obj/item/storage/backpack/duffelbag/syndie/c20rbundle - desc = "A large duffel bag containing a C20r, some magazines, and a cheap looking suppressor." - -/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents() - new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/gun/ballistic/automatic/c20r(src) - new /obj/item/suppressor/specialoffer(src) - -/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - desc = "A large duffel bag containing a Bulldog, several drums, and a collapsed hardsuit." - -/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents() - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/gun/ballistic/automatic/shotgun/bulldog(src) - new /obj/item/ammo_box/magazine/m12g/buckshot(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - -/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." - -/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() - new /obj/item/clothing/shoes/magboots/syndie(src) - new /obj/item/storage/firstaid/tactical(src) - new /obj/item/gun/ballistic/automatic/l6_saw/toy(src) - new /obj/item/ammo_box/foambox/riot(src) - -/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." - -/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() - new /obj/item/clothing/shoes/magboots/syndie(src) - new /obj/item/storage/firstaid/tactical(src) - new /obj/item/gun/ballistic/automatic/l6_saw/toy(src) - new /obj/item/ammo_box/foambox/riot(src) - -/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - desc = "A large duffel bag 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/storage/backpack/duffelbag/syndie/med/bioterrorbundle/PopulateContents() - new /obj/item/reagent_containers/spray/chemsprayer/bioterror(src) - new /obj/item/storage/box/syndie_kit/chemical(src) - new /obj/item/gun/syringe/syndicate(src) - new /obj/item/gun/ballistic/automatic/c20r/toy(src) - new /obj/item/storage/box/syringes(src) - new /obj/item/ammo_box/foambox/riot(src) - new /obj/item/grenade/chem_grenade/bioterrorfoam(src) - -/obj/item/storage/backpack/duffelbag/syndie/c4/PopulateContents() - for(var/i in 1 to 10) - new /obj/item/grenade/plastic/c4(src) - -/obj/item/storage/backpack/duffelbag/syndie/x4/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/grenade/plastic/x4(src) - -/obj/item/storage/backpack/duffelbag/syndie/firestarter - desc = "A large duffel bag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." - -/obj/item/storage/backpack/duffelbag/syndie/firestarter/PopulateContents() - new /obj/item/clothing/under/syndicate/soviet(src) - new /obj/item/watertank/operator(src) - new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) - new /obj/item/gun/ballistic/automatic/pistol/APS(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) - new /obj/item/ammo_box/magazine/pistolm9mm(src) - new /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka(src) - new /obj/item/reagent_containers/syringe/stimulants(src) - new /obj/item/grenade/syndieminibomb(src) +/* Backpacks + * Contains: + * Backpack + * Backpack Types + * Satchel Types + */ + +/* + * Backpack + */ + +/obj/item/storage/backpack + name = "backpack" + desc = "You wear this on your back and put items into it." + icon_state = "backpack" + item_state = "backpack" + lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' + w_class = WEIGHT_CLASS_BULKY + slot_flags = SLOT_BACK //ERROOOOO + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 21 + storage_slots = 21 + resistance_flags = 0 + max_integrity = 300 + +/* + * Backpack Types + */ + +/obj/item/storage/backpack/old + max_combined_w_class = 12 + +/obj/item/storage/backpack/holding + name = "bag of holding" + desc = "A backpack that opens into a localized pocket of Blue Space." + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" + icon_state = "holdingpack" + item_state = "holdingpack" + max_w_class = WEIGHT_CLASS_GIGANTIC + max_combined_w_class = 35 + resistance_flags = FIRE_PROOF + var/pshoom = 'sound/items/pshoom.ogg' + var/alt_sound = 'sound/items/pshoom_2.ogg' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) + + +/obj/item/storage/backpack/holding/suicide_act(mob/living/user) + user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") + user.drop_item() + user.Stun(100, ignore_canstun = TRUE) + sleep(20) + playsound(src, "rustle", 50, 1, -5) + qdel(user) + return + +/obj/item/storage/backpack/holding/dump_content_at(atom/dest_object, mob/user) + if(Adjacent(user)) + var/atom/dumping_location = dest_object.get_dumping_location() + if(get_dist(user, dumping_location) < 8) + if(dumping_location.storage_contents_dump_act(src, user)) + if(alt_sound && prob(1)) + playsound(src, alt_sound, 40, 1) + else + playsound(src, pshoom, 40, 1) + user.Beam(dumping_location,icon_state="rped_upgrade",time=5) + return 1 + to_chat(user, "The [src.name] buzzes.") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + return 0 + +/obj/item/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if((istype(W, /obj/item/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/storage/backpack/holding))) + var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") + if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) + return + investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO) + to_chat(user, "The Bluespace interfaces of the two devices catastrophically malfunction!") + qdel(W) + var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) + singulo.energy = 300 //should make it a bit bigger~ + message_admins("[key_name_admin(user)] detonated a bag of holding") + log_game("[key_name(user)] detonated a bag of holding") + qdel(src) + singulo.process() + return + . = ..() + +/obj/item/storage/backpack/holding/singularity_act(current_size) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + return + + +/obj/item/storage/backpack/santabag + name = "Santa's Gift Bag" + desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" + icon_state = "giftbag0" + item_state = "giftbag" + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 60 + +/obj/item/storage/backpack/santabag/suicide_act(mob/user) + user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") + return (OXYLOSS) + +/obj/item/storage/backpack/cultpack + name = "trophy rack" + desc = "It's useful for both carrying extra gear and proudly declaring your insanity." + icon_state = "cultpack" + item_state = "backpack" + +/obj/item/storage/backpack/clown + name = "Giggles von Honkerton" + desc = "It's a backpack made by Honk! Co." + icon_state = "clownpack" + item_state = "clownpack" + +/obj/item/storage/backpack/explorer + name = "explorer bag" + desc = "A robust backpack for stashing your loot." + icon_state = "explorerpack" + item_state = "explorerpack" + +/obj/item/storage/backpack/mime + name = "Parcel Parceaux" + desc = "A silent backpack made for those silent workers. Silence Co." + icon_state = "mimepack" + item_state = "mimepack" + +/obj/item/storage/backpack/medic + name = "medical backpack" + desc = "It's a backpack especially designed for use in a sterile environment." + icon_state = "medicalpack" + item_state = "medicalpack" + +/obj/item/storage/backpack/security + name = "security backpack" + desc = "It's a very robust backpack." + icon_state = "securitypack" + item_state = "securitypack" + +/obj/item/storage/backpack/captain + name = "captain's backpack" + desc = "It's a special backpack made exclusively for Nanotrasen officers." + icon_state = "captainpack" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/storage/backpack/industrial + name = "industrial backpack" + desc = "It's a tough backpack for the daily grind of station life." + icon_state = "engiepack" + item_state = "engiepack" + resistance_flags = FIRE_PROOF + +/obj/item/storage/backpack/botany + name = "botany backpack" + desc = "It's a backpack made of all-natural fibers." + icon_state = "botpack" + item_state = "botpack" + +/obj/item/storage/backpack/chemistry + name = "chemistry backpack" + desc = "A backpack specially designed to repel stains and hazardous liquids." + icon_state = "chempack" + item_state = "chempack" + +/obj/item/storage/backpack/genetics + name = "genetics backpack" + desc = "A bag designed to be super tough, just in case someone hulks out on you." + icon_state = "genepack" + item_state = "genepack" + +/obj/item/storage/backpack/science + name = "science backpack" + desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." + icon_state = "toxpack" + item_state = "toxpack" + resistance_flags = 0 + +/obj/item/storage/backpack/virology + name = "virology backpack" + desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." + icon_state = "viropack" + item_state = "viropack" + + +/* + * Satchel Types + */ + +/obj/item/storage/backpack/satchel + name = "satchel" + desc = "A trendy looking satchel." + icon_state = "satchel-norm" + species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back + +/obj/item/storage/backpack/satchel/leather + name = "leather satchel" + desc = "It's a very fancy satchel made with fine leather." + icon_state = "satchel" + resistance_flags = 0 + +/obj/item/storage/backpack/satchel/leather/withwallet/PopulateContents() + new /obj/item/storage/wallet/random(src) + +/obj/item/storage/backpack/satchel/eng + name = "industrial satchel" + desc = "A tough satchel with extra pockets." + icon_state = "satchel-eng" + item_state = "engiepack" + resistance_flags = 0 + +/obj/item/storage/backpack/satchel/med + name = "medical satchel" + desc = "A sterile satchel used in medical departments." + icon_state = "satchel-med" + item_state = "medicalpack" + +/obj/item/storage/backpack/satchel/vir + name = "virologist satchel" + desc = "A sterile satchel with virologist colours." + icon_state = "satchel-vir" + item_state = "satchel-vir" + +/obj/item/storage/backpack/satchel/chem + name = "chemist satchel" + desc = "A sterile satchel with chemist colours." + icon_state = "satchel-chem" + item_state = "satchel-chem" + +/obj/item/storage/backpack/satchel/gen + name = "geneticist satchel" + desc = "A sterile satchel with geneticist colours." + icon_state = "satchel-gen" + item_state = "satchel-gen" + +/obj/item/storage/backpack/satchel/tox + name = "scientist satchel" + desc = "Useful for holding research materials." + icon_state = "satchel-tox" + item_state = "satchel-tox" + resistance_flags = 0 + +/obj/item/storage/backpack/satchel/hyd + name = "botanist satchel" + desc = "A satchel made of all natural fibers." + icon_state = "satchel-hyd" + item_state = "satchel-hyd" + +/obj/item/storage/backpack/satchel/sec + name = "security satchel" + desc = "A robust satchel for security related needs." + icon_state = "satchel-sec" + item_state = "securitypack" + +/obj/item/storage/backpack/satchel/explorer + name = "explorer satchel" + desc = "A robust satchel for stashing your loot." + icon_state = "satchel-explorer" + item_state = "securitypack" + +/obj/item/storage/backpack/satchel/cap + name = "captain's satchel" + desc = "An exclusive satchel for Nanotrasen officers." + icon_state = "satchel-cap" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/storage/backpack/satchel/flat + name = "smuggler's satchel" + desc = "A very slim satchel that can easily fit into tight spaces." + icon_state = "satchel-flat" + w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. + max_combined_w_class = 15 + level = 1 + cant_hold = list(/obj/item/storage/backpack/satchel/flat) //muh recursive backpacks + +/obj/item/storage/backpack/satchel/flat/hide(var/intact) + if(intact) + invisibility = INVISIBILITY_MAXIMUM + anchored = TRUE //otherwise you can start pulling, cover it, and drag around an invisible backpack. + icon_state = "[initial(icon_state)]2" + else + invisibility = initial(invisibility) + anchored = FALSE + icon_state = initial(icon_state) + +/obj/item/storage/backpack/satchel/flat/Initialize(mapload) + ..() + SSpersistence.new_secret_satchels += src + +/obj/item/storage/backpack/satchel/flat/PopulateContents() + new /obj/item/stack/tile/plasteel(src) + new /obj/item/crowbar(src) + +/obj/item/storage/backpack/satchel/flat/Destroy() + SSpersistence.new_secret_satchels -= src + return ..() + +/obj/item/storage/backpack/satchel/flat/secret + var/list/reward_one_of_these = list() //Intended for map editing + var/list/reward_all_of_these = list() //use paths! + var/revealed = 0 + +/obj/item/storage/backpack/satchel/flat/secret/Initialize() + ..() + + if(isfloorturf(loc) && !istype(loc, /turf/open/floor/plating/)) + hide(1) + +/obj/item/storage/backpack/satchel/flat/secret/hide(intact) + ..() + if(!intact && !revealed) + if(reward_one_of_these.len > 0) + var/reward = pick(reward_one_of_these) + new reward(src) + for(var/R in reward_all_of_these) + new R(src) + revealed = 1 + +/obj/item/storage/backpack/duffelbag + name = "duffel bag" + desc = "A large duffel bag for holding extra things." + icon_state = "duffel" + item_state = "duffel" + slowdown = 1 + max_combined_w_class = 30 + +/obj/item/storage/backpack/duffelbag/captain + name = "captain's duffel bag" + desc = "A large duffel bag for holding extra captainly goods." + icon_state = "duffel-captain" + item_state = "duffel-captain" + resistance_flags = 0 + +/obj/item/storage/backpack/duffelbag/med + name = "medical duffel bag" + desc = "A large duffel bag for holding extra medical supplies." + icon_state = "duffel-med" + item_state = "duffel-med" + +/obj/item/storage/backpack/duffelbag/med/surgery + name = "surgical duffel bag" + desc = "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools." + +/obj/item/storage/backpack/duffelbag/med/surgery/PopulateContents() + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + new /obj/item/retractor(src) + new /obj/item/circular_saw(src) + new /obj/item/surgicaldrill(src) + new /obj/item/cautery(src) + new /obj/item/surgical_drapes(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/razor(src) + +/obj/item/storage/backpack/duffelbag/sec + name = "security duffel bag" + desc = "A large duffel bag for holding extra security supplies and ammunition." + icon_state = "duffel-sec" + item_state = "duffel-sec" + +/obj/item/storage/backpack/duffelbag/sec/surgery + name = "surgical duffel bag" + desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools." + +/obj/item/storage/backpack/duffelbag/sec/surgery/PopulateContents() + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + new /obj/item/retractor(src) + new /obj/item/circular_saw(src) + new /obj/item/surgicaldrill(src) + new /obj/item/cautery(src) + new /obj/item/surgical_drapes(src) + new /obj/item/clothing/mask/surgical(src) + +/obj/item/storage/backpack/duffelbag/engineering + name = "industrial duffel bag" + desc = "A large duffel bag for holding extra tools and supplies." + icon_state = "duffel-eng" + item_state = "duffel-eng" + resistance_flags = 0 + +/obj/item/storage/backpack/duffelbag/drone + name = "drone duffel bag" + desc = "A large duffel bag for holding tools and hats." + icon_state = "duffel-drone" + item_state = "duffel-drone" + resistance_flags = FIRE_PROOF + +/obj/item/storage/backpack/duffelbag/drone/PopulateContents() + new /obj/item/screwdriver(src) + new /obj/item/wrench(src) + new /obj/item/weldingtool(src) + new /obj/item/crowbar(src) + new /obj/item/stack/cable_coil/random(src) + new /obj/item/wirecutters(src) + new /obj/item/device/multitool(src) + +/obj/item/storage/backpack/duffelbag/clown + name = "clown's duffel bag" + desc = "A large duffel bag for holding lots of funny gags!" + icon_state = "duffel-clown" + item_state = "duffel-clown" + +/obj/item/storage/backpack/duffelbag/clown/cream_pie/PopulateContents() + for(var/i in 1 to 10) + new /obj/item/reagent_containers/food/snacks/pie/cream(src) + +/obj/item/storage/backpack/duffelbag/syndie + name = "suspicious looking duffel bag" + desc = "A large duffel bag for holding extra tactical supplies." + icon_state = "duffel-syndie" + item_state = "duffel-syndie" + origin_tech = "syndicate=1" + silent = 1 + slowdown = 0 + +/obj/item/storage/backpack/duffelbag/syndie/hitman + desc = "A large duffel bag for holding extra things. There is a Nanotrasen logo on the back." + icon_state = "duffel-syndieammo" + item_state = "duffel-syndieammo" + +/obj/item/storage/backpack/duffelbag/syndie/hitman/PopulateContents() + new /obj/item/clothing/under/lawyer/blacksuit(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/suit/toggle/lawyer/black(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/head/fedora(src) + +/obj/item/storage/backpack/duffelbag/syndie/med + name = "medical duffel bag" + desc = "A large duffel bag for holding extra tactical medical supplies." + icon_state = "duffel-syndiemed" + item_state = "duffel-syndiemed" + +/obj/item/storage/backpack/duffelbag/syndie/surgery + name = "surgery duffel bag" + desc = "A suspicious looking duffel bag for holding surgery tools." + icon_state = "duffel-syndiemed" + item_state = "duffel-syndiemed" + +/obj/item/storage/backpack/duffelbag/syndie/surgery/PopulateContents() + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + new /obj/item/retractor(src) + new /obj/item/circular_saw(src) + new /obj/item/surgicaldrill(src) + new /obj/item/cautery(src) + new /obj/item/surgical_drapes(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/mask/muzzle(src) + new /obj/item/device/mmi/syndie(src) + +/obj/item/storage/backpack/duffelbag/syndie/ammo + name = "ammunition duffel bag" + desc = "A large duffel bag for holding extra weapons ammunition and supplies." + icon_state = "duffel-syndieammo" + item_state = "duffel-syndieammo" + +/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + desc = "A large duffel bag, packed to the brim with Bulldog shotgun ammo." + +/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/ammo_box/magazine/m12g/slug(src) + new /obj/item/ammo_box/magazine/m12g/dragon(src) + +/obj/item/storage/backpack/duffelbag/syndie/ammo/smg + desc = "A large duffel bag, packed to the brim with C20r magazines." + +/obj/item/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents() + for(var/i in 1 to 9) + new /obj/item/ammo_box/magazine/smgm45(src) + +/obj/item/storage/backpack/duffelbag/syndie/c20rbundle + desc = "A large duffel bag containing a C20r, some magazines, and a cheap looking suppressor." + +/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents() + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/gun/ballistic/automatic/c20r(src) + new /obj/item/suppressor/specialoffer(src) + +/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + desc = "A large duffel bag containing a Bulldog, several drums, and a collapsed hardsuit." + +/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents() + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/gun/ballistic/automatic/shotgun/bulldog(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + +/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/storage/firstaid/tactical(src) + new /obj/item/gun/ballistic/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + +/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + desc = "A large duffel bag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/storage/firstaid/tactical(src) + new /obj/item/gun/ballistic/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + +/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + desc = "A large duffel bag 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/storage/backpack/duffelbag/syndie/med/bioterrorbundle/PopulateContents() + new /obj/item/reagent_containers/spray/chemsprayer/bioterror(src) + new /obj/item/storage/box/syndie_kit/chemical(src) + new /obj/item/gun/syringe/syndicate(src) + new /obj/item/gun/ballistic/automatic/c20r/toy(src) + new /obj/item/storage/box/syringes(src) + new /obj/item/ammo_box/foambox/riot(src) + new /obj/item/grenade/chem_grenade/bioterrorfoam(src) + +/obj/item/storage/backpack/duffelbag/syndie/c4/PopulateContents() + for(var/i in 1 to 10) + new /obj/item/grenade/plastic/c4(src) + +/obj/item/storage/backpack/duffelbag/syndie/x4/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/grenade/plastic/x4(src) + +/obj/item/storage/backpack/duffelbag/syndie/firestarter + desc = "A large duffel bag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." + +/obj/item/storage/backpack/duffelbag/syndie/firestarter/PopulateContents() + new /obj/item/clothing/under/syndicate/soviet(src) + new /obj/item/watertank/operator(src) + new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) + new /obj/item/gun/ballistic/automatic/pistol/APS(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka(src) + new /obj/item/reagent_containers/syringe/stimulants(src) + new /obj/item/grenade/syndieminibomb(src) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 0cae6f9320..883641d43b 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -1,273 +1,273 @@ -/* - * The 'fancy' path is for objects like donut boxes that show how many items are in the storage item on the sprite itself - * .. Sorry for the shitty path name, I couldnt think of a better one. - * - * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly - * TODO: Cigarette boxes should be ported to this standard - * - * Contains: - * Donut Box - * Egg Box - * Candle Box - * Cigarette Box - * Cigar Case - */ - -/obj/item/storage/fancy - icon = 'icons/obj/food/containers.dmi' - icon_state = "donutbox6" - name = "donut box" - resistance_flags = FLAMMABLE - var/icon_type = "donut" - var/spawn_type = null - var/fancy_open = FALSE - -/obj/item/storage/fancy/PopulateContents() - for(var/i = 1 to storage_slots) - new spawn_type(src) - -/obj/item/storage/fancy/update_icon(itemremoved = 0) - if(fancy_open) - var/total_contents = src.contents.len - itemremoved - icon_state = "[icon_type]box[total_contents]" - else - icon_state = "[icon_type]box" - -/obj/item/storage/fancy/examine(mob/user) - ..() - if(fancy_open) - if(contents.len == 1) - to_chat(user, "There is one [src.icon_type] left.") - else - to_chat(user, "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left.") - -/obj/item/storage/fancy/attack_self(mob/user) - fancy_open = !fancy_open - update_icon() - -/obj/item/storage/fancy/content_can_dump(atom/dest_object, mob/user) - . = ..() - if(.) - fancy_open = TRUE - update_icon() - -/obj/item/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - fancy_open = TRUE - return ..() - -/obj/item/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) - fancy_open = TRUE - return ..() - -/* - * Donut Box - */ - -/obj/item/storage/fancy/donut_box - icon = 'icons/obj/food/containers.dmi' - icon_state = "donutbox6" - icon_type = "donut" - name = "donut box" - storage_slots = 6 - can_hold = list(/obj/item/reagent_containers/food/snacks/donut) - spawn_type = /obj/item/reagent_containers/food/snacks/donut - fancy_open = TRUE - -/* - * Egg Box - */ - -/obj/item/storage/fancy/egg_box - icon = 'icons/obj/food/containers.dmi' - icon_state = "eggbox" - icon_type = "egg" - lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' - name = "egg box" - storage_slots = 12 - can_hold = list(/obj/item/reagent_containers/food/snacks/egg) - spawn_type = /obj/item/reagent_containers/food/snacks/egg - -/* - * Candle Box - */ - -/obj/item/storage/fancy/candle_box - name = "candle pack" - desc = "A pack of red candles." - icon = 'icons/obj/candle.dmi' - icon_state = "candlebox5" - icon_type = "candle" - item_state = "candlebox5" - storage_slots = 5 - throwforce = 2 - slot_flags = SLOT_BELT - spawn_type = /obj/item/candle - fancy_open = TRUE - -/obj/item/storage/fancy/candle_box/attack_self(mob_user) - return - -//////////// -//CIG PACK// -//////////// -/obj/item/storage/fancy/cigarettes - name = "\improper Space Cigarettes packet" - desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig" - item_state = "cigpacket" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - slot_flags = SLOT_BELT - storage_slots = 6 - can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/lighter) - icon_type = "cigarette" - spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette - -/obj/item/storage/fancy/cigarettes/AltClick(mob/user) - if(user.get_active_held_item()) - return - for(var/obj/item/lighter/lighter in src) - remove_from_storage(lighter, user.loc) - user.put_in_active_hand(lighter) - break - -/obj/item/storage/fancy/cigarettes/update_icon() - if(fancy_open || !contents.len) - cut_overlays() - if(!contents.len) - icon_state = "[initial(icon_state)]_empty" - else - icon_state = initial(icon_state) - add_overlay("[icon_state]_open") - var/i = contents.len - for(var/C in contents) - var/mutable_appearance/inserted_overlay = mutable_appearance(icon) - inserted_overlay.pixel_x = 1 * (i - 1) - if(istype(C, /obj/item/lighter/greyscale)) - inserted_overlay.icon_state = "lighter_in" - else if(istype(C, /obj/item/lighter)) - inserted_overlay.icon_state = "zippo_in" - else - inserted_overlay.icon_state = "cigarette" - add_overlay(inserted_overlay) - i-- - else - cut_overlays() - -/obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!ismob(M)) - return - var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents - if(cig) - if(M == user && contents.len > 0 && !user.wear_mask) - var/obj/item/clothing/mask/cigarette/W = cig - remove_from_storage(W, M) - M.equip_to_slot_if_possible(W, slot_wear_mask) - contents -= W - to_chat(user, "You take a [icon_type] out of the pack.") - else - ..() - else - to_chat(user, "There are no [icon_type]s left in the pack.") - -/obj/item/storage/fancy/cigarettes/dromedaryco - name = "\improper DromedaryCo packet" - desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" - icon_state = "dromedary" - spawn_type = /obj/item/clothing/mask/cigarette/dromedary - -/obj/item/storage/fancy/cigarettes/cigpack_uplift - name = "\improper Uplift Smooth packet" - desc = "Your favorite brand, now menthol flavored." - icon_state = "uplift" - spawn_type = /obj/item/clothing/mask/cigarette/uplift - -/obj/item/storage/fancy/cigarettes/cigpack_robust - name = "\improper Robust packet" - desc = "Smoked by the robust." - icon_state = "robust" - spawn_type = /obj/item/clothing/mask/cigarette/robust - -/obj/item/storage/fancy/cigarettes/cigpack_robustgold - name = "\improper Robust Gold packet" - desc = "Smoked by the truly robust." - icon_state = "robustg" - spawn_type = /obj/item/clothing/mask/cigarette/robustgold - -/obj/item/storage/fancy/cigarettes/cigpack_carp - name = "\improper Carp Classic packet" - desc = "Since 2313." - icon_state = "carp" - spawn_type = /obj/item/clothing/mask/cigarette/carp - -/obj/item/storage/fancy/cigarettes/cigpack_syndicate - name = "cigarette packet" - desc = "An obscure brand of cigarettes." - icon_state = "syndie" - spawn_type = /obj/item/clothing/mask/cigarette/syndicate - -/obj/item/storage/fancy/cigarettes/cigpack_midori - name = "\improper Midori Tabako packet" - desc = "You can't understand the runes, but the packet smells funny." - icon_state = "midori" - spawn_type = /obj/item/clothing/mask/cigarette/rollie - -/obj/item/storage/fancy/cigarettes/cigpack_shadyjims - name = "\improper Shady Jim's Super Slims packet" - desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" - icon_state = "shadyjim" - spawn_type = /obj/item/clothing/mask/cigarette/shadyjims - -/obj/item/storage/fancy/rollingpapers - name = "rolling paper pack" - desc = "A pack of NanoTrasen brand rolling papers." - w_class = WEIGHT_CLASS_TINY - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig_paper_pack" - storage_slots = 10 - icon_type = "rolling paper" - can_hold = list(/obj/item/rollingpaper) - spawn_type = /obj/item/rollingpaper - -/obj/item/storage/fancy/rollingpapers/update_icon() - cut_overlays() - if(!contents.len) - add_overlay("[icon_state]_empty") - -///////////// -//CIGAR BOX// -///////////// - -/obj/item/storage/fancy/cigarettes/cigars - name = "\improper premium cigar case" - desc = "A case of premium cigars. Very expensive." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigarcase" - w_class = WEIGHT_CLASS_NORMAL - storage_slots = 5 - can_hold = list(/obj/item/clothing/mask/cigarette/cigar) - icon_type = "premium cigar" - spawn_type = /obj/item/clothing/mask/cigarette/cigar - -/obj/item/storage/fancy/cigarettes/cigars/update_icon() - cut_overlays() - if(fancy_open) - add_overlay("[icon_state]_open") - var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type) - for(var/c = contents.len, c >= 1, c--) - cigar_overlay.pixel_x = 4 * (c - 1) - add_overlay(cigar_overlay) - else - icon_state = "cigarcase" - -/obj/item/storage/fancy/cigarettes/cigars/cohiba - name = "\improper cohiba robusto cigar case" - desc = "A case of imported Cohiba cigars, renowned for their strong flavor." - spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba - -/obj/item/storage/fancy/cigarettes/cigars/havana - name = "\improper premium havanian cigar case" - desc = "A case of classy Havanian cigars." - spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana +/* + * The 'fancy' path is for objects like donut boxes that show how many items are in the storage item on the sprite itself + * .. Sorry for the shitty path name, I couldnt think of a better one. + * + * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly + * TODO: Cigarette boxes should be ported to this standard + * + * Contains: + * Donut Box + * Egg Box + * Candle Box + * Cigarette Box + * Cigar Case + */ + +/obj/item/storage/fancy + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + name = "donut box" + resistance_flags = FLAMMABLE + var/icon_type = "donut" + var/spawn_type = null + var/fancy_open = FALSE + +/obj/item/storage/fancy/PopulateContents() + for(var/i = 1 to storage_slots) + new spawn_type(src) + +/obj/item/storage/fancy/update_icon(itemremoved = 0) + if(fancy_open) + var/total_contents = src.contents.len - itemremoved + icon_state = "[icon_type]box[total_contents]" + else + icon_state = "[icon_type]box" + +/obj/item/storage/fancy/examine(mob/user) + ..() + if(fancy_open) + if(contents.len == 1) + to_chat(user, "There is one [src.icon_type] left.") + else + to_chat(user, "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left.") + +/obj/item/storage/fancy/attack_self(mob/user) + fancy_open = !fancy_open + update_icon() + +/obj/item/storage/fancy/dump_content_at(atom/dest_object, mob/user) + . = ..() + if(.) + fancy_open = TRUE + update_icon() + +/obj/item/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + fancy_open = TRUE + return ..() + +/obj/item/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) + fancy_open = TRUE + return ..() + +/* + * Donut Box + */ + +/obj/item/storage/fancy/donut_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + icon_type = "donut" + name = "donut box" + storage_slots = 6 + can_hold = list(/obj/item/reagent_containers/food/snacks/donut) + spawn_type = /obj/item/reagent_containers/food/snacks/donut + fancy_open = TRUE + +/* + * Egg Box + */ + +/obj/item/storage/fancy/egg_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "eggbox" + icon_type = "egg" + lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' + name = "egg box" + storage_slots = 12 + can_hold = list(/obj/item/reagent_containers/food/snacks/egg) + spawn_type = /obj/item/reagent_containers/food/snacks/egg + +/* + * Candle Box + */ + +/obj/item/storage/fancy/candle_box + name = "candle pack" + desc = "A pack of red candles." + icon = 'icons/obj/candle.dmi' + icon_state = "candlebox5" + icon_type = "candle" + item_state = "candlebox5" + storage_slots = 5 + throwforce = 2 + slot_flags = SLOT_BELT + spawn_type = /obj/item/candle + fancy_open = TRUE + +/obj/item/storage/fancy/candle_box/attack_self(mob_user) + return + +//////////// +//CIG PACK// +//////////// +/obj/item/storage/fancy/cigarettes + name = "\improper Space Cigarettes packet" + desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig" + item_state = "cigpacket" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + slot_flags = SLOT_BELT + storage_slots = 6 + can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/lighter) + icon_type = "cigarette" + spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette + +/obj/item/storage/fancy/cigarettes/AltClick(mob/user) + if(user.get_active_held_item()) + return + for(var/obj/item/lighter/lighter in src) + remove_from_storage(lighter, user.loc) + user.put_in_active_hand(lighter) + break + +/obj/item/storage/fancy/cigarettes/update_icon() + if(fancy_open || !contents.len) + cut_overlays() + if(!contents.len) + icon_state = "[initial(icon_state)]_empty" + else + icon_state = initial(icon_state) + add_overlay("[icon_state]_open") + var/i = contents.len + for(var/C in contents) + var/mutable_appearance/inserted_overlay = mutable_appearance(icon) + inserted_overlay.pixel_x = 1 * (i - 1) + if(istype(C, /obj/item/lighter/greyscale)) + inserted_overlay.icon_state = "lighter_in" + else if(istype(C, /obj/item/lighter)) + inserted_overlay.icon_state = "zippo_in" + else + inserted_overlay.icon_state = "cigarette" + add_overlay(inserted_overlay) + i-- + else + cut_overlays() + +/obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!ismob(M)) + return + var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents + if(cig) + if(M == user && contents.len > 0 && !user.wear_mask) + var/obj/item/clothing/mask/cigarette/W = cig + remove_from_storage(W, M) + M.equip_to_slot_if_possible(W, slot_wear_mask) + contents -= W + to_chat(user, "You take a [icon_type] out of the pack.") + else + ..() + else + to_chat(user, "There are no [icon_type]s left in the pack.") + +/obj/item/storage/fancy/cigarettes/dromedaryco + name = "\improper DromedaryCo packet" + desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" + icon_state = "dromedary" + spawn_type = /obj/item/clothing/mask/cigarette/dromedary + +/obj/item/storage/fancy/cigarettes/cigpack_uplift + name = "\improper Uplift Smooth packet" + desc = "Your favorite brand, now menthol flavored." + icon_state = "uplift" + spawn_type = /obj/item/clothing/mask/cigarette/uplift + +/obj/item/storage/fancy/cigarettes/cigpack_robust + name = "\improper Robust packet" + desc = "Smoked by the robust." + icon_state = "robust" + spawn_type = /obj/item/clothing/mask/cigarette/robust + +/obj/item/storage/fancy/cigarettes/cigpack_robustgold + name = "\improper Robust Gold packet" + desc = "Smoked by the truly robust." + icon_state = "robustg" + spawn_type = /obj/item/clothing/mask/cigarette/robustgold + +/obj/item/storage/fancy/cigarettes/cigpack_carp + name = "\improper Carp Classic packet" + desc = "Since 2313." + icon_state = "carp" + spawn_type = /obj/item/clothing/mask/cigarette/carp + +/obj/item/storage/fancy/cigarettes/cigpack_syndicate + name = "cigarette packet" + desc = "An obscure brand of cigarettes." + icon_state = "syndie" + spawn_type = /obj/item/clothing/mask/cigarette/syndicate + +/obj/item/storage/fancy/cigarettes/cigpack_midori + name = "\improper Midori Tabako packet" + desc = "You can't understand the runes, but the packet smells funny." + icon_state = "midori" + spawn_type = /obj/item/clothing/mask/cigarette/rollie + +/obj/item/storage/fancy/cigarettes/cigpack_shadyjims + name = "\improper Shady Jim's Super Slims packet" + desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" + icon_state = "shadyjim" + spawn_type = /obj/item/clothing/mask/cigarette/shadyjims + +/obj/item/storage/fancy/rollingpapers + name = "rolling paper pack" + desc = "A pack of Nanotrasen brand rolling papers." + w_class = WEIGHT_CLASS_TINY + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper_pack" + storage_slots = 10 + icon_type = "rolling paper" + can_hold = list(/obj/item/rollingpaper) + spawn_type = /obj/item/rollingpaper + +/obj/item/storage/fancy/rollingpapers/update_icon() + cut_overlays() + if(!contents.len) + add_overlay("[icon_state]_empty") + +///////////// +//CIGAR BOX// +///////////// + +/obj/item/storage/fancy/cigarettes/cigars + name = "\improper premium cigar case" + desc = "A case of premium cigars. Very expensive." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigarcase" + w_class = WEIGHT_CLASS_NORMAL + storage_slots = 5 + can_hold = list(/obj/item/clothing/mask/cigarette/cigar) + icon_type = "premium cigar" + spawn_type = /obj/item/clothing/mask/cigarette/cigar + +/obj/item/storage/fancy/cigarettes/cigars/update_icon() + cut_overlays() + if(fancy_open) + add_overlay("[icon_state]_open") + var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type) + for(var/c = contents.len, c >= 1, c--) + cigar_overlay.pixel_x = 4 * (c - 1) + add_overlay(cigar_overlay) + else + icon_state = "cigarcase" + +/obj/item/storage/fancy/cigarettes/cigars/cohiba + name = "\improper cohiba robusto cigar case" + desc = "A case of imported Cohiba cigars, renowned for their strong flavor." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba + +/obj/item/storage/fancy/cigarettes/cigars/havana + name = "\improper premium havanian cigar case" + desc = "A case of classy Havanian cigars." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index c2d73ebc13..346e9ba409 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -1,182 +1,182 @@ -/obj/item/storage/lockbox - name = "lockbox" - desc = "A locked box." - icon_state = "lockbox+l" - item_state = "syringe_kit" - lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - 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(ACCESS_ARMORY) - var/locked = TRUE - var/broken = FALSE - var/open = FALSE - var/icon_locked = "lockbox+l" - var/icon_closed = "lockbox" - var/icon_broken = "lockbox+b" - - -/obj/item/storage/lockbox/attackby(obj/item/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/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/storage/lockbox/emag_act(mob/user) - if(!broken) - broken = TRUE - locked = FALSE - 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/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/storage/lockbox/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return 0 - open = TRUE - return ..() - -/obj/item/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - -/obj/item/storage/lockbox/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - open = TRUE - update_icon() - return ..() -/obj/item/storage/lockbox/remove_from_storage(obj/item/W, atom/new_location, burn = 0) - open = TRUE - update_icon() - return ..() - -/obj/item/storage/lockbox/loyalty - name = "lockbox of mindshield implants" - req_access = list(ACCESS_SECURITY) - -/obj/item/storage/lockbox/loyalty/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/implantcase/mindshield(src) - new /obj/item/implanter/mindshield(src) - - -/obj/item/storage/lockbox/clusterbang - name = "lockbox of clusterbangs" - desc = "You have a bad feeling about opening this." - req_access = list(ACCESS_SECURITY) - -/obj/item/storage/lockbox/clusterbang/PopulateContents() - new /obj/item/grenade/clusterbuster(src) - -/obj/item/storage/lockbox/medal - name = "medal box" - desc = "A locked box used to store medals of honor." - icon_state = "medalbox+l" - item_state = "syringe_kit" - lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - storage_slots = 10 - max_combined_w_class = 20 - req_access = list(ACCESS_CAPTAIN) - icon_locked = "medalbox+l" - icon_closed = "medalbox" - icon_broken = "medalbox+b" - can_hold = list(/obj/item/clothing/accessory/medal) - -/obj/item/storage/lockbox/medal/AltClick() - if(!locked) - open = (open ? FALSE : TRUE) - update_icon() - ..() - -/obj/item/storage/lockbox/medal/PopulateContents() - new /obj/item/clothing/accessory/medal/gold/captain(src) - new /obj/item/clothing/accessory/medal/silver/valor(src) - new /obj/item/clothing/accessory/medal/silver/valor(src) - new /obj/item/clothing/accessory/medal/silver/security(src) - new /obj/item/clothing/accessory/medal/bronze_heart(src) - new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) - new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) - for(var/i in 1 to 3) - new /obj/item/clothing/accessory/medal/conduct(src) - -/obj/item/storage/lockbox/medal/update_icon() - cut_overlays() - if(locked) - icon_state = "medalbox+l" - open = FALSE - else - icon_state = "medalbox" - if(open) - icon_state += "open" - if(broken) - icon_state += "+b" - if(contents && open) - for (var/i in 1 to contents.len) - var/obj/item/clothing/accessory/medal/M = contents[i] - var/mutable_appearance/medalicon = mutable_appearance(initial(icon), M.medaltype) - if(i > 1 && i <= 5) - medalicon.pixel_x += ((i-1)*3) - else if(i > 5) - medalicon.pixel_y -= 7 - medalicon.pixel_x -= 2 - medalicon.pixel_x += ((i-6)*3) - add_overlay(medalicon) - -/obj/item/storage/lockbox/medal/sec - name = "security medal box" - desc = "A locked box used to store medals to be given to members of the security department." - req_access = list(ACCESS_HOS) - -/obj/item/storage/lockbox/medal/sec/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/clothing/accessory/medal/silver/security(src) - -/obj/item/storage/lockbox/medal/sci - name = "science medal box" - desc = "A locked box used to store medals to be given to members of the science department." - req_access = list(ACCESS_RD) - -/obj/item/storage/lockbox/medal/sci/PopulateContents() - for(var/i in 1 to 3) +/obj/item/storage/lockbox + name = "lockbox" + desc = "A locked box." + icon_state = "lockbox+l" + item_state = "syringe_kit" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + 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(ACCESS_ARMORY) + var/locked = TRUE + var/broken = FALSE + var/open = FALSE + var/icon_locked = "lockbox+l" + var/icon_closed = "lockbox" + var/icon_broken = "lockbox+b" + + +/obj/item/storage/lockbox/attackby(obj/item/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/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/storage/lockbox/emag_act(mob/user) + if(!broken) + broken = TRUE + locked = FALSE + 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/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/storage/lockbox/storage_contents_dump_act(obj/item/storage/src_object, mob/user) + if(locked) + to_chat(user, "It's locked!") + return null + open = TRUE + return ..() + +/obj/item/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + +/obj/item/storage/lockbox/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + open = TRUE + update_icon() + return ..() +/obj/item/storage/lockbox/remove_from_storage(obj/item/W, atom/new_location, burn = 0) + open = TRUE + update_icon() + return ..() + +/obj/item/storage/lockbox/loyalty + name = "lockbox of mindshield implants" + req_access = list(ACCESS_SECURITY) + +/obj/item/storage/lockbox/loyalty/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/implantcase/mindshield(src) + new /obj/item/implanter/mindshield(src) + + +/obj/item/storage/lockbox/clusterbang + name = "lockbox of clusterbangs" + desc = "You have a bad feeling about opening this." + req_access = list(ACCESS_SECURITY) + +/obj/item/storage/lockbox/clusterbang/PopulateContents() + new /obj/item/grenade/clusterbuster(src) + +/obj/item/storage/lockbox/medal + name = "medal box" + desc = "A locked box used to store medals of honor." + icon_state = "medalbox+l" + item_state = "syringe_kit" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + storage_slots = 10 + max_combined_w_class = 20 + req_access = list(ACCESS_CAPTAIN) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" + can_hold = list(/obj/item/clothing/accessory/medal) + +/obj/item/storage/lockbox/medal/AltClick() + if(!locked) + open = (open ? FALSE : TRUE) + update_icon() + ..() + +/obj/item/storage/lockbox/medal/PopulateContents() + new /obj/item/clothing/accessory/medal/gold/captain(src) + new /obj/item/clothing/accessory/medal/silver/valor(src) + new /obj/item/clothing/accessory/medal/silver/valor(src) + new /obj/item/clothing/accessory/medal/silver/security(src) + new /obj/item/clothing/accessory/medal/bronze_heart(src) + new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) + new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/conduct(src) + +/obj/item/storage/lockbox/medal/update_icon() + cut_overlays() + if(locked) + icon_state = "medalbox+l" + open = FALSE + else + icon_state = "medalbox" + if(open) + icon_state += "open" + if(broken) + icon_state += "+b" + if(contents && open) + for (var/i in 1 to contents.len) + var/obj/item/clothing/accessory/medal/M = contents[i] + var/mutable_appearance/medalicon = mutable_appearance(initial(icon), M.medaltype) + if(i > 1 && i <= 5) + medalicon.pixel_x += ((i-1)*3) + else if(i > 5) + medalicon.pixel_y -= 7 + medalicon.pixel_x -= 2 + medalicon.pixel_x += ((i-6)*3) + add_overlay(medalicon) + +/obj/item/storage/lockbox/medal/sec + name = "security medal box" + desc = "A locked box used to store medals to be given to members of the security department." + req_access = list(ACCESS_HOS) + +/obj/item/storage/lockbox/medal/sec/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/silver/security(src) + +/obj/item/storage/lockbox/medal/sci + name = "science medal box" + desc = "A locked box used to store medals to be given to members of the science department." + req_access = list(ACCESS_RD) + +/obj/item/storage/lockbox/medal/sci/PopulateContents() + for(var/i in 1 to 3) new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) \ No newline at end of file diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index c9bbfdd308..6620ec5265 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -1,197 +1,197 @@ -/* - * Absorbs /obj/item/secstorage. - * Reimplements it only slightly to use existing storage functionality. - * - * Contains: - * Secure Briefcase - * Wall Safe - */ - -// ----------------------------- -// Generic Item -// ----------------------------- -/obj/item/storage/secure - name = "secstorage" - var/icon_locking = "secureb" - var/icon_sparking = "securespark" - var/icon_opened = "secure0" - var/locked = TRUE - var/code = "" - var/l_code = null - var/l_set = 0 - var/l_setshort = 0 - var/l_hacking = 0 - var/open = FALSE - w_class = WEIGHT_CLASS_NORMAL - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 14 - -/obj/item/storage/secure/examine(mob/user) - ..() - to_chat(user, text("The service panel is [src.open ? "open" : "closed"].")) - -/obj/item/storage/secure/attackby(obj/item/W, mob/user, params) - if(locked) - if (istype(W, /obj/item/screwdriver)) - if (do_after(user, 20*W.toolspeed, target = src)) - src.open =! src.open - user.show_message("You [open ? "open" : "close"] the service panel.", 1) - return - if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) - user.show_message("Now attempting to reset internal memory, please hold.", 1) - src.l_hacking = 1 - if (do_after(usr, 100*W.toolspeed, target = src)) - if (prob(33)) - src.l_setshort = 1 - src.l_set = 0 - user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) - sleep(80) - src.l_setshort = 0 - src.l_hacking = 0 - else - user.show_message("Unable to reset internal memory.", 1) - src.l_hacking = 0 - else - src.l_hacking = 0 - return - //At this point you have exhausted all the special things to do when locked - // ... but it's still locked. - return - - // -> storage/attackby() what with handle insertion, etc - return ..() - -/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) - if (locked) - src.add_fingerprint(usr) - to_chat(usr, "It's locked!") - return 0 - ..() - -/obj/item/storage/secure/attack_self(mob/user) - user.set_machine(src) - var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) - var/message = "Code" - if ((src.l_set == 0) && (!src.l_setshort)) - dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") - if (src.l_setshort) - dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") - message = text("[]", src.code) - if (!src.locked) - message = "*****" - dat += text("


\n>[]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) - user << browse(dat, "window=caselock;size=300x280") - -/obj/item/storage/secure/Topic(href, href_list) - ..() - if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) - return - if (href_list["type"]) - if (href_list["type"] == "E") - if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) - src.l_code = src.code - src.l_set = 1 - else if ((src.code == src.l_code) && (src.l_set == 1)) - src.locked = FALSE - cut_overlays() - add_overlay(icon_opened) - src.code = null - else - src.code = "ERROR" - else - if ((href_list["type"] == "R") && (!src.l_setshort)) - src.locked = TRUE - cut_overlays() - src.code = null - src.close(usr) - else - src.code += text("[]", sanitize_text(href_list["type"])) - if (length(src.code) > 5) - src.code = "ERROR" - src.add_fingerprint(usr) - for(var/mob/M in viewers(1, src.loc)) - if ((M.client && M.machine == src)) - src.attack_self(M) - return - return - -/obj/item/storage/secure/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - if(locked) - to_chat(user, "It's locked!") - return 0 - return ..() - -/obj/item/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) - if(locked) - return 0 - return ..() - - -// ----------------------------- -// Secure Briefcase -// ----------------------------- -/obj/item/storage/secure/briefcase - name = "secure briefcase" - icon = 'icons/obj/storage.dmi' - icon_state = "secure" - item_state = "sec-case" - lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' - desc = "A large briefcase with a digital locking system." - force = 8 - hitsound = "swing_hit" - throw_speed = 2 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - max_w_class = WEIGHT_CLASS_NORMAL - max_combined_w_class = 21 - attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - -/obj/item/storage/secure/briefcase/PopulateContents() - new /obj/item/paper(src) - new /obj/item/pen(src) - -/obj/item/storage/secure/briefcase/attack_hand(mob/user) - if ((src.loc == user) && (src.locked == 1)) - to_chat(usr, "[src] is locked and cannot be opened!") - add_fingerprint(user) - else - ..() - -//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. -/obj/item/storage/secure/briefcase/syndie - force = 15 - -/obj/item/storage/secure/briefcase/syndie/PopulateContents() - ..() - for(var/i = 0, i < storage_slots - 2, i++) - new /obj/item/stack/spacecash/c1000(src) - - -// ----------------------------- -// Secure Safe -// ----------------------------- - -/obj/item/storage/secure/safe - name = "secure safe" - icon = 'icons/obj/storage.dmi' - icon_state = "safe" - icon_opened = "safe0" - icon_locking = "safeb" - icon_sparking = "safespark" - force = 8 - w_class = WEIGHT_CLASS_GIGANTIC - max_w_class = 8 - anchored = TRUE - density = FALSE - cant_hold = list(/obj/item/storage/secure/briefcase) - -/obj/item/storage/secure/safe/PopulateContents() - new /obj/item/paper(src) - new /obj/item/pen(src) - -/obj/item/storage/secure/safe/attack_hand(mob/user) - return attack_self(user) - -/obj/item/storage/secure/safe/HoS - name = "head of security's safe" +/* + * Absorbs /obj/item/secstorage. + * Reimplements it only slightly to use existing storage functionality. + * + * Contains: + * Secure Briefcase + * Wall Safe + */ + +// ----------------------------- +// Generic Item +// ----------------------------- +/obj/item/storage/secure + name = "secstorage" + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + var/locked = TRUE + var/code = "" + var/l_code = null + var/l_set = 0 + var/l_setshort = 0 + var/l_hacking = 0 + var/open = FALSE + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL + max_combined_w_class = 14 + +/obj/item/storage/secure/examine(mob/user) + ..() + to_chat(user, text("The service panel is [src.open ? "open" : "closed"].")) + +/obj/item/storage/secure/attackby(obj/item/W, mob/user, params) + if(locked) + if (istype(W, /obj/item/screwdriver)) + if (do_after(user, 20*W.toolspeed, target = src)) + src.open =! src.open + user.show_message("You [open ? "open" : "close"] the service panel.", 1) + return + if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) + user.show_message("Now attempting to reset internal memory, please hold.", 1) + src.l_hacking = 1 + if (do_after(usr, 100*W.toolspeed, target = src)) + if (prob(33)) + src.l_setshort = 1 + src.l_set = 0 + user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) + sleep(80) + src.l_setshort = 0 + src.l_hacking = 0 + else + user.show_message("Unable to reset internal memory.", 1) + src.l_hacking = 0 + else + src.l_hacking = 0 + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + return ..() + +/obj/item/storage/secure/MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + to_chat(usr, "It's locked!") + return 0 + ..() + +/obj/item/storage/secure/attack_self(mob/user) + user.set_machine(src) + var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/message = "Code" + if ((src.l_set == 0) && (!src.l_setshort)) + dat += text("

\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.
") + if (src.l_setshort) + dat += text("

\nALERT: MEMORY SYSTEM ERROR - 6040 201") + message = text("[]", src.code) + if (!src.locked) + message = "*****" + dat += text("


\n>[]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n
", message, src, src, src, src, src, src, src, src, src, src, src, src) + user << browse(dat, "window=caselock;size=300x280") + +/obj/item/storage/secure/Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) + return + if (href_list["type"]) + if (href_list["type"] == "E") + if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) + src.l_code = src.code + src.l_set = 1 + else if ((src.code == src.l_code) && (src.l_set == 1)) + src.locked = FALSE + cut_overlays() + add_overlay(icon_opened) + src.code = null + else + src.code = "ERROR" + else + if ((href_list["type"] == "R") && (!src.l_setshort)) + src.locked = TRUE + cut_overlays() + src.code = null + src.close(usr) + else + src.code += text("[]", sanitize_text(href_list["type"])) + if (length(src.code) > 5) + src.code = "ERROR" + src.add_fingerprint(usr) + for(var/mob/M in viewers(1, src.loc)) + if ((M.client && M.machine == src)) + src.attack_self(M) + return + return + +/obj/item/storage/secure/storage_contents_dump_act(obj/item/storage/src_object, mob/user) + if(locked) + to_chat(user, "It's locked!") + return null + return ..() + +/obj/item/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + + +// ----------------------------- +// Secure Briefcase +// ----------------------------- +/obj/item/storage/secure/briefcase + name = "secure briefcase" + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' + desc = "A large briefcase with a digital locking system." + force = 8 + hitsound = "swing_hit" + throw_speed = 2 + throw_range = 4 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = 21 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + +/obj/item/storage/secure/briefcase/PopulateContents() + new /obj/item/paper(src) + new /obj/item/pen(src) + +/obj/item/storage/secure/briefcase/attack_hand(mob/user) + if ((src.loc == user) && (src.locked == 1)) + to_chat(usr, "[src] is locked and cannot be opened!") + add_fingerprint(user) + else + ..() + +//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. +/obj/item/storage/secure/briefcase/syndie + force = 15 + +/obj/item/storage/secure/briefcase/syndie/PopulateContents() + ..() + for(var/i = 0, i < storage_slots - 2, i++) + new /obj/item/stack/spacecash/c1000(src) + + +// ----------------------------- +// Secure Safe +// ----------------------------- + +/obj/item/storage/secure/safe + name = "secure safe" + icon = 'icons/obj/storage.dmi' + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + force = 8 + w_class = WEIGHT_CLASS_GIGANTIC + max_w_class = 8 + anchored = TRUE + density = FALSE + cant_hold = list(/obj/item/storage/secure/briefcase) + +/obj/item/storage/secure/safe/PopulateContents() + new /obj/item/paper(src) + new /obj/item/pen(src) + +/obj/item/storage/secure/safe/attack_hand(mob/user) + return attack_self(user) + +/obj/item/storage/secure/safe/HoS + name = "head of security's safe" diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index 7f9209857f..5a2b52184a 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -1,571 +1,577 @@ -// External storage-related logic: -// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages -// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement -// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality -// -- c0 - - -/obj/item/storage - name = "storage" - icon = 'icons/obj/storage.dmi' - w_class = WEIGHT_CLASS_NORMAL - var/silent = 0 // No message on putting items in - var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else) - var/list/cant_hold = new/list() //Typecache of objects which this item can't store - var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage - var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) - var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. - var/storage_slots = 7 //The number of storage slots in this container. - var/obj/screen/storage/boxes = null - var/obj/screen/close/closer = null - var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. - var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. - var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. - var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. - var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type - var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. - var/rustle_jimmies = TRUE //Play the rustle sound on insertion - - -/obj/item/storage/MouseDrop(atom/over_object) - if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked - var/mob/M = usr - - if(!over_object) - return - - if (istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech - return - - // this must come before the screen objects only block, dunno why it wasn't before - if(over_object == M && M.CanReach(src,view_only = TRUE)) - orient2hud(M) - if(M.s_active) - M.s_active.close(M) - show_to(M) - return - - if(!M.incapacitated()) - if(!istype(over_object, /obj/screen)) - return content_can_dump(over_object, M) - - if(loc != usr || (loc && loc.loc == usr)) - return - - playsound(loc, "rustle", 50, 1, -5) - - if(istype(over_object, /obj/screen/inventory/hand)) - var/obj/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) - - add_fingerprint(usr) - - -/obj/item/storage/MouseDrop_T(atom/movable/O, mob/user) - if(isitem(O)) - var/obj/item/I = O - if(iscarbon(user) || isdrone(user)) - var/mob/living/L = user - if(!L.incapacitated() && I == L.get_active_held_item()) - if(can_be_inserted(I, 0)) - handle_item_insertion(I, 0 , L) - - -//Check if this storage can dump the items -/obj/item/storage/proc/content_can_dump(atom/dest_object, mob/user) - if(Adjacent(user) && dest_object.Adjacent(user)) - if(dest_object.storage_contents_dump_act(src, user)) - playsound(loc, "rustle", 50, 1, -5) - return 1 - return 0 - -//Object behaviour on storage dump -/obj/item/storage/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - var/list/things = src_object.contents.Copy() - var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src, .proc/handle_mass_item_insertion, things, src_object, user, progress))) - sleep(1) - qdel(progress) - orient2hud(user) - src_object.orient2hud(user) - if(user.s_active) //refresh the HUD to show the transfered contents - user.s_active.close(user) - user.s_active.show_to(user) - return 1 - -/obj/item/storage/proc/handle_mass_item_insertion(list/things, obj/item/storage/src_object, mob/user, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if(I.loc != src_object) - continue - if(user.s_active != src_object) - if(I.on_found(user)) - break - if(can_be_inserted(I,0,user)) - handle_item_insertion(I, TRUE, user) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -/obj/item/storage/proc/return_inv() - var/list/L = list() - L += contents - - for(var/obj/item/storage/S in src) - L += S.return_inv() - return L - - -/obj/item/storage/proc/show_to(mob/user) - if(!user.client) - return - if(user.s_active != src && (user.stat == CONSCIOUS)) - for(var/obj/item/I in src) - if(I.on_found(user)) - return - if(user.s_active) - user.s_active.hide_from(user) - user.client.screen |= boxes - user.client.screen |= closer - user.client.screen |= contents - user.s_active = src - is_seeing |= user - - -/obj/item/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - close_all() - return ..() - -/obj/item/storage/proc/hide_from(mob/user) - if(!user.client) - return - user.client.screen -= boxes - user.client.screen -= closer - user.client.screen -= contents - if(user.s_active == src) - user.s_active = null - is_seeing -= user - - -/obj/item/storage/proc/can_see_contents() - var/list/cansee = list() - for(var/mob/M in is_seeing) - if(M.s_active == src && M.client) - cansee |= M - else - is_seeing -= M - return cansee - - -/obj/item/storage/proc/close(mob/user) - hide_from(user) - user.s_active = null - - -/obj/item/storage/proc/close_all() - for(var/mob/M in can_see_contents()) - close(M) - . = 1 //returns 1 if any mobs actually got a close(M) call - - -//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. -//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/obj/item/storage/proc/orient_objs(tx, ty, mx, my) - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in contents) - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" - - -//This proc draws out the inventory and places the items on it. It uses the standard position. -/obj/item/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) - var/cx = 4 - var/cy = 2+rows - boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" - - if(display_contents_with_number) - for(var/datum/numbered_display/ND in display_contents) - ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE - ND.sample_object.screen_loc = "[cx]:16,[cy]:16" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - else - for(var/obj/O in contents) - O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:16,[cy]:16" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > (4+cols)) - cx = 4 - cy-- - closer.screen_loc = "[4+cols+1]:16,2:16" - - -/datum/numbered_display - var/obj/item/sample_object - var/number - -/datum/numbered_display/New(obj/item/sample) - if(!istype(sample)) - qdel(src) - sample_object = sample - number = 1 - - -//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/obj/item/storage/proc/orient2hud(mob/user) - var/adjusted_contents = contents.len - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/I in contents) - var/found = 0 - for(var/datum/numbered_display/ND in numbered_contents) - if(ND.sample_object.type == I.type) - ND.number++ - found = 1 - break - if(!found) - adjusted_contents++ - numbered_contents.Add( new/datum/numbered_display(I) ) - - //var/mob/living/carbon/human/H = user - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if(adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - standard_orient_objs(row_num, col_count, numbered_contents) - - -//This proc return 1 if the item can be picked up and 0 if it can't. -//Set the stop_messages to stop it from printing messages -/obj/item/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) - if(!istype(W) || (W.flags_1 & ABSTRACT_1)) - return //Not an item - - if(loc == W) - return 0 //Means the item is already in the storage item - if(contents.len >= storage_slots) - if(!stop_messages) - to_chat(usr, "[src] is full, make some space!") - return 0 //Storage item is full - - if(can_hold.len) - if(!is_type_in_typecache(W, can_hold)) - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W]!") - return 0 - - if(W.w_class > max_w_class) - if(!stop_messages) - to_chat(usr, "[W] is too big for [src]!") - return 0 - - var/sum_w_class = W.w_class - for(var/obj/item/I in contents) - sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. - - if(sum_w_class > max_combined_w_class) - if(!stop_messages) - to_chat(usr, "[W] won't fit in [src], make some space!") - return 0 - - if(W.w_class >= w_class && (istype(W, /obj/item/storage))) - if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. - if(!stop_messages) - to_chat(usr, "[src] cannot hold [W] as it's a storage item of the same size!") - return 0 //To prevent the stacking of same sized storage items. - - if(W.flags_1 & NODROP_1) //SHOULD be handled in unEquip, but better safe than sorry. - to_chat(usr, "\the [W] is stuck to your hand, you can't put it in \the [src]!") - return 0 - - return 1 - - -//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() -//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, -//such as when picking up all the items on a tile with one click. -/obj/item/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) - if(!istype(W)) - return 0 - if(usr) - if(!usr.transferItemToLoc(W, src)) - return 0 - else - W.forceMove(src) - if(silent) - prevent_warning = 1 - if(W.pulledby) - W.pulledby.stop_pulling() - W.on_enter_storage(src) - if(usr) - if(usr.client && usr.s_active != src) - usr.client.screen -= W - if(usr.observers && usr.observers.len) - for(var/M in usr.observers) - var/mob/dead/observe = M - if(observe.client && observe.s_active != src) - observe.client.screen -= W - - add_fingerprint(usr) - if(rustle_jimmies && !prevent_warning) - playsound(src.loc, "rustle", 50, 1, -5) - - if(!prevent_warning) - for(var/mob/M in viewers(usr, null)) - if(M == usr) - to_chat(usr, "You put [W] [preposition]to [src].") - else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... - M.show_message("[usr] puts [W] [preposition]to [src].", 1) - - orient2hud(usr) - for(var/mob/M in can_see_contents()) - show_to(M) - W.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt - update_icon() - return 1 - - -//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target -/obj/item/storage/proc/remove_from_storage(obj/item/W, atom/new_location) - if(!istype(W)) - return 0 - - if(istype(src, /obj/item/storage/fancy)) - var/obj/item/storage/fancy/F = src - F.update_icon(1) - - for(var/mob/M in can_see_contents()) - if(M.client) - M.client.screen -= W - - if(ismob(loc)) - var/mob/M = loc - W.dropped(M) - W.layer = initial(W.layer) - W.plane = initial(W.plane) - W.forceMove(new_location) - - for(var/mob/M in can_see_contents()) - orient2hud(M) - show_to(M) - - if(W.maptext) - W.maptext = "" - W.on_exit_storage(src) - update_icon() - W.mouse_opacity = initial(W.mouse_opacity) - return 1 - -/obj/item/storage/deconstruct(disassembled = TRUE) - var/drop_loc = loc - if(ismob(loc)) - drop_loc = get_turf(src) - for(var/obj/item/I in contents) - remove_from_storage(I, drop_loc) - qdel(src) - -//This proc is called when you want to place an item into the storage item. -/obj/item/storage/attackby(obj/item/W, mob/user, params) - ..() - if(istype(W, /obj/item/hand_labeler)) - var/obj/item/hand_labeler/labeler = W - if(labeler.mode) - return 0 - . = 1 //no afterattack - if(iscyborg(user)) - return //Robots can't interact with storage items. - - if(!can_be_inserted(W, 0 , user)) - if(contents.len >= storage_slots) //don't use items on the backpack if they don't fit - return 1 - return 0 - - handle_item_insertion(W, 0 , user) - - -/obj/item/storage/attack_hand(mob/user) - if(user.s_active == src && loc == user) //if you're already looking inside the storage item - user.s_active.close(user) - close(user) - return - - if(rustle_jimmies) - playsound(loc, "rustle", 50, 1, -5) - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. - H.put_in_hands(src) - H.l_store = null - return - if(H.r_store == src && !H.get_active_held_item()) - H.put_in_hands(src) - H.r_store = null - return - - orient2hud(user) - if(loc == user) - if(user.s_active) - user.s_active.close(user) - show_to(user) - else - ..() - for(var/mob/M in range(1)) - if(M.s_active == src) - close(M) - add_fingerprint(user) - -/obj/item/storage/attack_paw(mob/user) - return attack_hand(user) - -/obj/item/storage/verb/toggle_gathering_mode() - set name = "Switch Gathering Method" - set category = "Object" - - if(usr.stat || !usr.canmove || usr.restrained()) - return - - collection_mode = (collection_mode+1)%3 - switch (collection_mode) - if(2) - to_chat(usr, "[src] now picks up all items of a single type at once.") - if(1) - to_chat(usr, "[src] now picks up all items in a tile at once.") - if(0) - to_chat(usr, "[src] now picks up one item at a time.") - -// Empty all the contents onto the current turf -/obj/item/storage/verb/quick_empty() - set name = "Empty Contents" - set category = "Object" - - if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) - return - var/turf/T = get_turf(src) - var/list/things = contents.Copy() - var/datum/progressbar/progress = new(usr, things.len, T) - while (do_after(usr, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) - sleep(1) - qdel(progress) - -/obj/item/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) - for(var/obj/item/I in things) - things -= I - if (I.loc != src) - continue - remove_from_storage(I, target) - if (TICK_CHECK) - progress.update(progress.goal - things.len) - return TRUE - - progress.update(progress.goal - things.len) - return FALSE - -// Empty all the contents onto the current turf, without checking the user's status. -/obj/item/storage/proc/do_quick_empty() - var/turf/T = get_turf(src) - if(usr) - hide_from(usr) - for(var/obj/item/I in contents) - remove_from_storage(I, T) - - -/obj/item/storage/Initialize(mapload) - . = ..() - - can_hold = typecacheof(can_hold) - cant_hold = typecacheof(cant_hold) - - if(allow_quick_empty) - verbs += /obj/item/storage/verb/quick_empty - else - verbs -= /obj/item/storage/verb/quick_empty - - if(allow_quick_gather) - verbs += /obj/item/storage/verb/toggle_gathering_mode - else - verbs -= /obj/item/storage/verb/toggle_gathering_mode - - boxes = new /obj/screen/storage() - boxes.name = "storage" - boxes.master = src - boxes.icon_state = "block" - boxes.screen_loc = "7,7 to 10,8" - boxes.layer = HUD_LAYER - boxes.plane = HUD_PLANE - closer = new /obj/screen/close() - closer.master = src - closer.icon_state = "backpack_close" - closer.layer = ABOVE_HUD_LAYER - closer.plane = ABOVE_HUD_PLANE - orient2hud() - - PopulateContents() - - -/obj/item/storage/Destroy() - for(var/obj/O in contents) - O.mouse_opacity = initial(O.mouse_opacity) - - close_all() - qdel(boxes) - qdel(closer) - return ..() - - -/obj/item/storage/emp_act(severity) - if(!isliving(loc)) - for(var/obj/O in contents) - O.emp_act(severity) - ..() - - -/obj/item/storage/attack_self(mob/user) - //Clicking on itself will empty it, if it has the verb to do that. - if(user.get_active_held_item() == src) - if(verbs.Find(/obj/item/storage/verb/quick_empty)) - quick_empty() - -/obj/item/storage/handle_atom_del(atom/A) - if(A in contents) - usr = null - remove_from_storage(A, null) - -/obj/item/storage/contents_explosion(severity, target) - for(var/atom/A in contents) - A.ex_act(severity, target) - CHECK_TICK - -//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW" - -/obj/item/storage/proc/PopulateContents() +// External storage-related logic: +// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages +// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement +// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality +// -- c0 + + +/obj/item/storage + name = "storage" + icon = 'icons/obj/storage.dmi' + w_class = WEIGHT_CLASS_NORMAL + var/silent = 0 // No message on putting items in + var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else) + var/list/cant_hold = new/list() //Typecache of objects which this item can't store + var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage + var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) + var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. + var/storage_slots = 7 //The number of storage slots in this container. + var/obj/screen/storage/boxes = null + var/obj/screen/close/closer = null + var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. + var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. + var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. + var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. + var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type + var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. + var/rustle_jimmies = TRUE //Play the rustle sound on insertion + + +/obj/item/storage/MouseDrop(atom/over_object) + if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked + var/mob/M = usr + + if(!over_object) + return + + if (istype(usr.loc, /obj/mecha)) // stops inventory actions in a mech + return + + // this must come before the screen objects only block, dunno why it wasn't before + if(over_object == M && M.CanReach(src,view_only = TRUE)) + orient2hud(M) + if(M.s_active) + M.s_active.close(M) + show_to(M) + return + + if(!M.incapacitated()) + if(!istype(over_object, /obj/screen)) + return dump_content_at(over_object, M) + + if(loc != usr || (loc && loc.loc == usr)) + return + + playsound(loc, "rustle", 50, 1, -5) + + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + + add_fingerprint(usr) + + +/obj/item/storage/MouseDrop_T(atom/movable/O, mob/user) + if(isitem(O)) + var/obj/item/I = O + if(iscarbon(user) || isdrone(user)) + var/mob/living/L = user + if(!L.incapacitated() && I == L.get_active_held_item()) + if(can_be_inserted(I, 0)) + handle_item_insertion(I, 0 , L) + + +/obj/item/storage/get_dumping_location(obj/item/storage/source,mob/user) + return src + +//Tries to dump content +/obj/item/storage/proc/dump_content_at(atom/dest_object, mob/user) + var/atom/dump_destination = dest_object.get_dumping_location() + if(Adjacent(user) && dump_destination && user.Adjacent(dump_destination)) + if(dump_destination.storage_contents_dump_act(src, user)) + playsound(loc, "rustle", 50, 1, -5) + return 1 + return 0 + +//Object behaviour on storage dump +/obj/item/storage/storage_contents_dump_act(obj/item/storage/src_object, mob/user) + var/list/things = src_object.contents.Copy() + var/datum/progressbar/progress = new(user, things.len, src) + while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(src, .proc/handle_mass_item_insertion, things, src_object, user, progress))) + sleep(1) + qdel(progress) + orient2hud(user) + src_object.orient2hud(user) + if(user.s_active) //refresh the HUD to show the transfered contents + user.s_active.close(user) + user.s_active.show_to(user) + return 1 + +/obj/item/storage/proc/handle_mass_item_insertion(list/things, obj/item/storage/src_object, mob/user, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if(I.loc != src_object) + continue + if(user.s_active != src_object) + if(I.on_found(user)) + break + if(can_be_inserted(I,0,user)) + handle_item_insertion(I, TRUE, user) + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +/obj/item/storage/proc/return_inv() + var/list/L = list() + L += contents + + for(var/obj/item/storage/S in src) + L += S.return_inv() + return L + + +/obj/item/storage/proc/show_to(mob/user) + if(!user.client) + return + if(user.s_active != src && (user.stat == CONSCIOUS)) + for(var/obj/item/I in src) + if(I.on_found(user)) + return + if(user.s_active) + user.s_active.hide_from(user) + user.client.screen |= boxes + user.client.screen |= closer + user.client.screen |= contents + user.s_active = src + is_seeing |= user + + +/obj/item/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + close_all() + return ..() + +/obj/item/storage/proc/hide_from(mob/user) + if(!user.client) + return + user.client.screen -= boxes + user.client.screen -= closer + user.client.screen -= contents + if(user.s_active == src) + user.s_active = null + is_seeing -= user + + +/obj/item/storage/proc/can_see_contents() + var/list/cansee = list() + for(var/mob/M in is_seeing) + if(M.s_active == src && M.client) + cansee |= M + else + is_seeing -= M + return cansee + + +/obj/item/storage/proc/close(mob/user) + hide_from(user) + user.s_active = null + + +/obj/item/storage/proc/close_all() + for(var/mob/M in can_see_contents()) + close(M) + . = 1 //returns 1 if any mobs actually got a close(M) call + + +//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. +//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. +/obj/item/storage/proc/orient_objs(tx, ty, mx, my) + var/cx = tx + var/cy = ty + boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" + for(var/obj/O in contents) + O.screen_loc = "[cx],[cy]" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > mx) + cx = tx + cy-- + closer.screen_loc = "[mx+1],[my]" + + +//This proc draws out the inventory and places the items on it. It uses the standard position. +/obj/item/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) + var/cx = 4 + var/cy = 2+rows + boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" + + if(display_contents_with_number) + for(var/datum/numbered_display/ND in display_contents) + ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE + ND.sample_object.screen_loc = "[cx]:16,[cy]:16" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + else + for(var/obj/O in contents) + O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:16,[cy]:16" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + closer.screen_loc = "[4+cols+1]:16,2:16" + + +/datum/numbered_display + var/obj/item/sample_object + var/number + +/datum/numbered_display/New(obj/item/sample) + if(!istype(sample)) + qdel(src) + sample_object = sample + number = 1 + + +//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. +/obj/item/storage/proc/orient2hud(mob/user) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/I in contents) + var/found = 0 + for(var/datum/numbered_display/ND in numbered_contents) + if(ND.sample_object.type == I.type) + ND.number++ + found = 1 + break + if(!found) + adjusted_contents++ + numbered_contents.Add( new/datum/numbered_display(I) ) + + //var/mob/living/carbon/human/H = user + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if(adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + standard_orient_objs(row_num, col_count, numbered_contents) + + +//This proc return 1 if the item can be picked up and 0 if it can't. +//Set the stop_messages to stop it from printing messages +/obj/item/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) + if(!istype(W) || (W.flags_1 & ABSTRACT_1)) + return //Not an item + + if(loc == W) + return 0 //Means the item is already in the storage item + if(contents.len >= storage_slots) + if(!stop_messages) + to_chat(usr, "[src] is full, make some space!") + return 0 //Storage item is full + + if(can_hold.len) + if(!is_type_in_typecache(W, can_hold)) + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W]!") + return 0 + + if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold. + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W]!") + return 0 + + if(W.w_class > max_w_class) + if(!stop_messages) + to_chat(usr, "[W] is too big for [src]!") + return 0 + + var/sum_w_class = W.w_class + for(var/obj/item/I in contents) + sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + to_chat(usr, "[W] won't fit in [src], make some space!") + return 0 + + if(W.w_class >= w_class && (istype(W, /obj/item/storage))) + if(!istype(src, /obj/item/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. + if(!stop_messages) + to_chat(usr, "[src] cannot hold [W] as it's a storage item of the same size!") + return 0 //To prevent the stacking of same sized storage items. + + if(W.flags_1 & NODROP_1) //SHOULD be handled in unEquip, but better safe than sorry. + to_chat(usr, "\the [W] is stuck to your hand, you can't put it in \the [src]!") + return 0 + + return 1 + + +//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() +//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, +//such as when picking up all the items on a tile with one click. +/obj/item/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if(!istype(W)) + return 0 + if(usr) + if(!usr.transferItemToLoc(W, src)) + return 0 + else + W.forceMove(src) + if(silent) + prevent_warning = 1 + if(W.pulledby) + W.pulledby.stop_pulling() + W.on_enter_storage(src) + if(usr) + if(usr.client && usr.s_active != src) + usr.client.screen -= W + if(usr.observers && usr.observers.len) + for(var/M in usr.observers) + var/mob/dead/observe = M + if(observe.client && observe.s_active != src) + observe.client.screen -= W + + add_fingerprint(usr) + if(rustle_jimmies && !prevent_warning) + playsound(src.loc, "rustle", 50, 1, -5) + + if(!prevent_warning) + for(var/mob/M in viewers(usr, null)) + if(M == usr) + to_chat(usr, "You put [W] [preposition]to [src].") + else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + + orient2hud(usr) + for(var/mob/M in can_see_contents()) + show_to(M) + W.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt + update_icon() + return 1 + + +//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target +/obj/item/storage/proc/remove_from_storage(obj/item/W, atom/new_location) + if(!istype(W)) + return 0 + + if(istype(src, /obj/item/storage/fancy)) + var/obj/item/storage/fancy/F = src + F.update_icon(1) + + for(var/mob/M in can_see_contents()) + if(M.client) + M.client.screen -= W + + if(ismob(loc)) + var/mob/M = loc + W.dropped(M) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + W.forceMove(new_location) + + for(var/mob/M in can_see_contents()) + orient2hud(M) + show_to(M) + + if(W.maptext) + W.maptext = "" + W.on_exit_storage(src) + update_icon() + W.mouse_opacity = initial(W.mouse_opacity) + return 1 + +/obj/item/storage/deconstruct(disassembled = TRUE) + var/drop_loc = loc + if(ismob(loc)) + drop_loc = get_turf(src) + for(var/obj/item/I in contents) + remove_from_storage(I, drop_loc) + qdel(src) + +//This proc is called when you want to place an item into the storage item. +/obj/item/storage/attackby(obj/item/W, mob/user, params) + ..() + if(istype(W, /obj/item/hand_labeler)) + var/obj/item/hand_labeler/labeler = W + if(labeler.mode) + return 0 + . = 1 //no afterattack + if(iscyborg(user)) + return //Robots can't interact with storage items. + + if(!can_be_inserted(W, 0 , user)) + if(contents.len >= storage_slots) //don't use items on the backpack if they don't fit + return 1 + return 0 + + handle_item_insertion(W, 0 , user) + +/obj/item/storage/AllowDrop() + return TRUE + +/obj/item/storage/attack_hand(mob/user) + if(user.s_active == src && loc == user) //if you're already looking inside the storage item + user.s_active.close(user) + close(user) + return + + if(rustle_jimmies) + playsound(loc, "rustle", 50, 1, -5) + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. + H.put_in_hands(src) + H.l_store = null + return + if(H.r_store == src && !H.get_active_held_item()) + H.put_in_hands(src) + H.r_store = null + return + + orient2hud(user) + if(loc == user) + if(user.s_active) + user.s_active.close(user) + show_to(user) + else + ..() + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + add_fingerprint(user) + +/obj/item/storage/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/storage/verb/toggle_gathering_mode() + set name = "Switch Gathering Method" + set category = "Object" + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + collection_mode = (collection_mode+1)%3 + switch (collection_mode) + if(2) + to_chat(usr, "[src] now picks up all items of a single type at once.") + if(1) + to_chat(usr, "[src] now picks up all items in a tile at once.") + if(0) + to_chat(usr, "[src] now picks up one item at a time.") + +// Empty all the contents onto the current turf +/obj/item/storage/verb/quick_empty() + set name = "Empty Contents" + set category = "Object" + + if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) + return + var/turf/T = get_turf(src) + var/list/things = contents.Copy() + var/datum/progressbar/progress = new(usr, things.len, T) + while (do_after(usr, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + sleep(1) + qdel(progress) + +/obj/item/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress) + for(var/obj/item/I in things) + things -= I + if (I.loc != src) + continue + remove_from_storage(I, target) + if (TICK_CHECK) + progress.update(progress.goal - things.len) + return TRUE + + progress.update(progress.goal - things.len) + return FALSE + +// Empty all the contents onto the current turf, without checking the user's status. +/obj/item/storage/proc/do_quick_empty() + var/turf/T = get_turf(src) + if(usr) + hide_from(usr) + for(var/obj/item/I in contents) + remove_from_storage(I, T) + + +/obj/item/storage/Initialize(mapload) + . = ..() + + can_hold = typecacheof(can_hold) + cant_hold = typecacheof(cant_hold) + + if(allow_quick_empty) + verbs += /obj/item/storage/verb/quick_empty + else + verbs -= /obj/item/storage/verb/quick_empty + + if(allow_quick_gather) + verbs += /obj/item/storage/verb/toggle_gathering_mode + else + verbs -= /obj/item/storage/verb/toggle_gathering_mode + + boxes = new /obj/screen/storage() + boxes.name = "storage" + boxes.master = src + boxes.icon_state = "block" + boxes.screen_loc = "7,7 to 10,8" + boxes.layer = HUD_LAYER + boxes.plane = HUD_PLANE + closer = new /obj/screen/close() + closer.master = src + closer.icon_state = "backpack_close" + closer.layer = ABOVE_HUD_LAYER + closer.plane = ABOVE_HUD_PLANE + orient2hud() + + PopulateContents() + + +/obj/item/storage/Destroy() + for(var/obj/O in contents) + O.mouse_opacity = initial(O.mouse_opacity) + + close_all() + qdel(boxes) + qdel(closer) + return ..() + + +/obj/item/storage/emp_act(severity) + if(!isliving(loc)) + for(var/obj/O in contents) + O.emp_act(severity) + ..() + + +/obj/item/storage/attack_self(mob/user) + //Clicking on itself will empty it, if it has the verb to do that. + if(user.get_active_held_item() == src) + if(verbs.Find(/obj/item/storage/verb/quick_empty)) + quick_empty() + +/obj/item/storage/handle_atom_del(atom/A) + if(A in contents) + usr = null + remove_from_storage(A, null) + +/obj/item/storage/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK + +//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW" + +/obj/item/storage/proc/PopulateContents() diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 8fbb03797f..1f3668f283 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -1,228 +1,230 @@ -/obj - var/crit_fail = FALSE - animate_movement = 2 - var/throwforce = 0 - var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! - - var/damtype = BRUTE - var/force = 0 - - var/list/armor +/obj + var/crit_fail = FALSE + animate_movement = 2 + var/throwforce = 0 + var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! + + var/damtype = BRUTE + var/force = 0 + + var/list/armor var/obj_integrity //defaults to max_integrity - var/max_integrity = 500 - var/integrity_failure = 0 //0 if we have no special broken behavior - - var/resistance_flags = 0 // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF - - var/acid_level = 0 //how much acid is on that obj - - var/being_shocked = FALSE - - var/on_blueprints = FALSE //Are we visible on the station blueprints at roundstart? - var/force_blueprints = FALSE //forces the obj to be on the blueprints, regardless of when it was created. - - var/persistence_replacement //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. - var/unique_rename = FALSE // can you customize the description/name of the thing? - var/current_skin //Has the item been reskinned? - var/list/unique_reskin //List of options to reskin. - var/dangerous_possession = FALSE //Admin possession yes/no - -/obj/vv_edit_var(vname, vval) - switch(vname) - if("dangerous_possession") - return FALSE - if("control_object") - var/obj/O = vval - if(istype(O) && O.dangerous_possession) - return FALSE - ..() - -/obj/Initialize() - . = ..() - if (!armor) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + var/max_integrity = 500 + var/integrity_failure = 0 //0 if we have no special broken behavior + + var/resistance_flags = 0 // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF + + var/acid_level = 0 //how much acid is on that obj + + var/being_shocked = FALSE + + var/on_blueprints = FALSE //Are we visible on the station blueprints at roundstart? + var/force_blueprints = FALSE //forces the obj to be on the blueprints, regardless of when it was created. + + var/persistence_replacement //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. + var/unique_rename = FALSE // can you customize the description/name of the thing? + var/current_skin //Has the item been reskinned? + var/list/unique_reskin //List of options to reskin. + var/dangerous_possession = FALSE //Admin possession yes/no + +/obj/vv_edit_var(vname, vval) + switch(vname) + if("dangerous_possession") + return FALSE + if("control_object") + var/obj/O = vval + if(istype(O) && O.dangerous_possession) + return FALSE + ..() + +/obj/Initialize() + . = ..() + if (!armor) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) if(obj_integrity == null) obj_integrity = max_integrity - if(on_blueprints && isturf(loc)) - var/turf/T = loc - if(force_blueprints) - T.add_blueprints(src) - else - T.add_blueprints_preround(src) - -/obj/Destroy(force=FALSE) - if(!istype(src, /obj/machinery)) - STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists - SStgui.close_uis(src) - . = ..() - -/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - ..() + if(on_blueprints && isturf(loc)) + var/turf/T = loc + if(force_blueprints) + T.add_blueprints(src) + else + T.add_blueprints_preround(src) + +/obj/Destroy(force=FALSE) + if(!istype(src, /obj/machinery)) + STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists + SStgui.close_uis(src) + . = ..() + +/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) + ..() if(flags_2 & FROZEN_2) - visible_message("[src] shatters into a million pieces!") - qdel(src) - -/obj/assume_air(datum/gas_mixture/giver) - if(loc) - return loc.assume_air(giver) - else - return null - -/obj/remove_air(amount) - if(loc) - return loc.remove_air(amount) - else - return null - -/obj/return_air() - if(loc) - return loc.return_air() - else - return null - -/obj/proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) - //Return: (NONSTANDARD) - // null if object handles breathing logic for lifeform - // datum/air_group to tell lifeform to process using that breath return - //DEFAULT: Take air from turf to give to have mob process - - if(breath_request>0) - var/datum/gas_mixture/environment = return_air() - var/breath_percentage = BREATH_VOLUME / environment.return_volume() - return remove_air(environment.total_moles() * breath_percentage) - else - return null - -/obj/proc/updateUsrDialog() - if(in_use) - var/is_in_use = 0 - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - is_in_use = 1 - src.attack_hand(M) - if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr)) - if (!(usr in nearby)) - if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. - is_in_use = 1 - src.attack_ai(usr) - - // check for TK users - - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - if(!(usr in nearby)) - if(usr.client && usr.machine==src) - if(H.dna.check_mutation(TK)) - is_in_use = 1 - src.attack_hand(usr) - in_use = is_in_use - -/obj/proc/updateDialog() - // Check that people are actually using the machine. If not, don't update anymore. - if(in_use) - var/list/nearby = viewers(1, src) - var/is_in_use = 0 - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - is_in_use = 1 - src.interact(M) - var/ai_in_use = AutoUpdateAI(src) - - if(!ai_in_use && !is_in_use) - in_use = 0 - - -/obj/attack_ghost(mob/user) - if(ui_interact(user) != -1) - return - ..() - -/obj/proc/container_resist(mob/living/user) - return - -/obj/proc/update_icon() - return - -/mob/proc/unset_machine() - if(machine) - machine.on_unset_machine(src) - machine = null - -//called when the user unsets the machine. -/atom/movable/proc/on_unset_machine(mob/user) - return - -/mob/proc/set_machine(obj/O) - if(src.machine) - unset_machine() - src.machine = O - if(istype(O)) - O.in_use = 1 - -/obj/item/proc/updateSelfDialog() - var/mob/M = src.loc - if(istype(M) && M.client && M.machine == src) - src.attack_self(M) - -/obj/proc/hide(h) - return - -/obj/singularity_pull(S, current_size) - if(!anchored || current_size >= STAGE_FIVE) - step_towards(src,S) - -/obj/get_spans() - return ..() | SPAN_ROBOT - -/obj/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - var/turf/T = get_turf(src) - return T.storage_contents_dump_act(src_object, user) - -/obj/proc/CanAStarPass() - . = !density - -/obj/proc/check_uplink_validity() - return 1 - -/obj/proc/on_mob_move(dir, mob, oldLoc) - return - -/obj/proc/on_mob_turn(dir, mob) - return - + visible_message("[src] shatters into a million pieces!") + qdel(src) + +/obj/assume_air(datum/gas_mixture/giver) + if(loc) + return loc.assume_air(giver) + else + return null + +/obj/remove_air(amount) + if(loc) + return loc.remove_air(amount) + else + return null + +/obj/return_air() + if(loc) + return loc.return_air() + else + return null + +/obj/proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) + //Return: (NONSTANDARD) + // null if object handles breathing logic for lifeform + // datum/air_group to tell lifeform to process using that breath return + //DEFAULT: Take air from turf to give to have mob process + + if(breath_request>0) + var/datum/gas_mixture/environment = return_air() + var/breath_percentage = BREATH_VOLUME / environment.return_volume() + return remove_air(environment.total_moles() * breath_percentage) + else + return null + +/obj/proc/updateUsrDialog() + if(in_use) + var/is_in_use = 0 + var/list/nearby = viewers(1, src) + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.attack_hand(M) + if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr)) + if (!(usr in nearby)) + if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. + is_in_use = 1 + src.attack_ai(usr) + + // check for TK users + + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + if(!(usr in nearby)) + if(usr.client && usr.machine==src) + if(H.dna.check_mutation(TK)) + is_in_use = 1 + src.attack_hand(usr) + in_use = is_in_use + +/obj/proc/updateDialog() + // Check that people are actually using the machine. If not, don't update anymore. + if(in_use) + var/list/nearby = viewers(1, src) + var/is_in_use = 0 + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.interact(M) + var/ai_in_use = AutoUpdateAI(src) + + if(!ai_in_use && !is_in_use) + in_use = 0 + + +/obj/attack_ghost(mob/user) + if(ui_interact(user) != -1) + return + ..() + +/obj/proc/container_resist(mob/living/user) + return + +/obj/proc/update_icon() + return + +/mob/proc/unset_machine() + if(machine) + machine.on_unset_machine(src) + machine = null + +//called when the user unsets the machine. +/atom/movable/proc/on_unset_machine(mob/user) + return + +/mob/proc/set_machine(obj/O) + if(src.machine) + unset_machine() + src.machine = O + if(istype(O)) + O.in_use = 1 + +/obj/item/proc/updateSelfDialog() + var/mob/M = src.loc + if(istype(M) && M.client && M.machine == src) + src.attack_self(M) + +/obj/proc/hide(h) + return + +/obj/singularity_pull(S, current_size) + if(!anchored || current_size >= STAGE_FIVE) + step_towards(src,S) + +/obj/get_spans() + return ..() | SPAN_ROBOT + +/obj/storage_contents_dump_act(obj/item/storage/src_object, mob/user) + return + +/obj/get_dumping_location(obj/item/storage/source,mob/user) + return get_turf(src) + +/obj/proc/CanAStarPass() + . = !density + +/obj/proc/check_uplink_validity() + return 1 + +/obj/proc/on_mob_move(dir, mob, oldLoc) + return + +/obj/proc/on_mob_turn(dir, mob) + return + /obj/proc/intercept_user_move(dir, mob, newLoc, oldLoc) return -/obj/vv_get_dropdown() - . = ..() - .["Delete all of type"] = "?_src_=vars;delall=\ref[src]" - -/obj/examine(mob/user) - ..() - if(unique_rename) - to_chat(user, "Use a pen on it to rename it or change its description.") - if(unique_reskin && !current_skin) - to_chat(user, "Alt-click it to reskin it.") - -/obj/AltClick(mob/user) - . = ..() - if(unique_reskin && !current_skin && in_range(user,src)) - if(user.incapacitated()) - to_chat(user, "You can't do that right now!") - return - reskin_obj(user) - -/obj/proc/reskin_obj(mob/M) - if(!LAZYLEN(unique_reskin)) - return - var/choice = input(M,"Warning, you can only reskin [src] once!","Reskin Object") as null|anything in unique_reskin - if(!QDELETED(src) && choice && !current_skin && !M.incapacitated() && in_range(M,src)) - if(!unique_reskin[choice]) - return - current_skin = choice - icon_state = unique_reskin[choice] - to_chat(M, "[src] is now skinned as '[choice].'") - -/obj/proc/gang_contraband_value() - return 0 +/obj/vv_get_dropdown() + . = ..() + .["Delete all of type"] = "?_src_=vars;delall=\ref[src]" + +/obj/examine(mob/user) + ..() + if(unique_rename) + to_chat(user, "Use a pen on it to rename it or change its description.") + if(unique_reskin && !current_skin) + to_chat(user, "Alt-click it to reskin it.") + +/obj/AltClick(mob/user) + . = ..() + if(unique_reskin && !current_skin && in_range(user,src)) + if(user.incapacitated()) + to_chat(user, "You can't do that right now!") + return + reskin_obj(user) + +/obj/proc/reskin_obj(mob/M) + if(!LAZYLEN(unique_reskin)) + return + var/choice = input(M,"Warning, you can only reskin [src] once!","Reskin Object") as null|anything in unique_reskin + if(!QDELETED(src) && choice && !current_skin && !M.incapacitated() && in_range(M,src)) + if(!unique_reskin[choice]) + return + current_skin = choice + icon_state = unique_reskin[choice] + to_chat(M, "[src] is now skinned as '[choice].'") + +/obj/proc/gang_contraband_value() + return 0 diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index daa29df061..5d6e6f3d77 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -137,8 +137,8 @@ new mineral(loc) qdel(src) -/obj/structure/falsewall/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return 0 +/obj/structure/falsewall/get_dumping_location(obj/item/storage/source,mob/user) + return null /obj/structure/falsewall/examine_status(mob/user) //So you can't detect falsewalls by examine. return null diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index e091454ac6..6a3bdb81b4 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -226,8 +226,8 @@ C.powernet.load += C.powernet.avail * 0.0375 // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock. return ..() -/obj/structure/grille/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return 0 +/obj/structure/grille/get_dumping_location(obj/item/storage/source,mob/user) + return null /obj/structure/grille/broken // Pre-broken grilles for map placement icon_state = "brokengrille" diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 0e44a88fef..57774a5754 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -263,8 +263,8 @@ if(.) ChangeTurf(/turf/closed/wall/clockwork) -/turf/closed/wall/storage_contents_dump_act(obj/item/storage/src_object, mob/user) - return 0 +/turf/closed/wall/get_dumping_location(obj/item/storage/source,mob/user) + return null /turf/closed/wall/acid_act(acidpwr, acid_volume) if(explosion_block >= 2) diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 0bb6df7ca9..14ebec8128 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -247,6 +247,9 @@ AM.forceMove(T) ..() +/obj/machinery/disposal/get_dumping_location(obj/item/storage/source,mob/user) + return src + //How disposal handles getting a storage dump from a storage object /obj/machinery/disposal/storage_contents_dump_act(obj/item/storage/src_object, mob/user) for(var/obj/item/I in src_object) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index dbfd6d1ed2..f22961ae15 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -44,12 +44,13 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom.ogg' alt_sound = 'sound/items/pshoom_2.ogg' -/obj/item/storage/part_replacer/bluespace/content_can_dump(atom/dest_object, mob/user) +/obj/item/storage/part_replacer/bluespace/dump_content_at(atom/dest_object, mob/user) if(Adjacent(user)) - if(get_dist(user, dest_object) < 8) - if(dest_object.storage_contents_dump_act(src, user)) + var/atom/dumping_location = dest_object.get_dumping_location() + if(get_dist(user, dumping_location) < 8) + if(dumping_location.storage_contents_dump_act(src, user)) play_rped_sound() - user.Beam(dest_object,icon_state="rped_upgrade",time=5) + user.Beam(dumping_location,icon_state="rped_upgrade",time=5) return 1 to_chat(user, "The [src.name] buzzes.") playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) From 911e1fa19496638f76cf5df787efec9148fe2059 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:43:10 -0700 Subject: [PATCH 051/181] sync --- code/game/turfs/open.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index bc0af068c5..67311ccad6 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -190,6 +190,12 @@ new /datum/forced_movement(C, get_ranged_target_turf(C, olddir, 1), 1, FALSE) //spinning would be bad for ice, fucks up the next dir return 1 +/turf/open/copyTurf(turf/T) + . = ..() + if(. && isopenturf(T) && wet_time) + var/turf/open/O = T + O.MakeSlippery(wet_setting = wet, wet_time_to_add = wet_time) //we're copied, copy how wet we are also + /turf/open/proc/MakeSlippery(wet_setting = TURF_WET_WATER, min_wet_time = 0, wet_time_to_add = 0) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost, 5 = Slide wet_time = max(wet_time+wet_time_to_add, min_wet_time) if(wet >= wet_setting) From e4ae2c8021982438f30f20cea475dd09f2be9e24 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:44:30 -0700 Subject: [PATCH 052/181] wew --- code/game/gamemodes/miniantags/morph/morph.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 0eb0882332..f763f742f7 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -32,7 +32,7 @@ attack_sound = 'sound/effects/blobattack.ogg' butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) - var/morphed = 0 + var/morphed = FALSE var/atom/movable/form = null var/morph_time = 0 var/static/list/blacklist_typecache = typecacheof(list( @@ -93,7 +93,10 @@ ..() /mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target) - morphed = 1 + if(morphed) + to_chat(src, "You must restore to your original form first!") + return + morphed = TRUE form = target visible_message("[src] suddenly twists and changes shape, becoming a copy of [target]!", \ @@ -117,8 +120,9 @@ /mob/living/simple_animal/hostile/morph/proc/restore() if(!morphed) + to_chat(src, "You're already in your normal form!") return - morphed = 0 + morphed = FALSE form = null alpha = initial(alpha) color = initial(color) From ca5462adce57ce9000f8dcd019e1806e1adab9df Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 09:55:02 -0700 Subject: [PATCH 053/181] triple wew --- code/modules/clothing/clothing.dm | 7 ++++--- code/modules/clothing/spacesuits/miscellaneous.dm | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 88ec800c00..1447d03ef7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -7,7 +7,7 @@ var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect var/up = 0 //but separated to allow items to protect but not impair vision, like space helmets - var/visor_flags = 0 //flags_1 that are added/removed when an item is adjusted up/down + var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv var/visor_flags_cover = 0 //same as above, but for flags_cover //what to toggle when toggled with weldingvisortoggle() @@ -193,7 +193,6 @@ var/invis_view = SEE_INVISIBLE_LIVING var/invis_override = 0 //Override to allow glasses to set higher than normal see_invis var/lighting_alpha - var/emagged = FALSE var/list/icon/current = list() //the current hud icons var/vision_correction = 0 //does wearing these glasses correct some of our vision defects? strip_delay = 20 @@ -475,6 +474,8 @@ BLIND // can't see anything permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + dynamic_hair_suffix = "" + dynamic_fhair_suffix = "" cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD @@ -783,7 +784,7 @@ BLIND // can't see anything A.UpdateButtonIcon() return TRUE -/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags_1 +/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags up = !up flags_1 ^= visor_flags flags_inv ^= visor_flags_inv diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 404f931490..c5af37506c 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -57,6 +57,8 @@ Contains: name = "officer's beret" desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space." icon_state = "beret_badge" + dynamic_hair_suffix = "+generic" + dynamic_fhair_suffix = "+generic" flags_1 = STOPSPRESSUREDMAGE_1 flags_inv = 0 armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) From f45f5bbf3d62354276db13603d7292a3e9f2aee5 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 10:02:18 -0700 Subject: [PATCH 054/181] quadruple wew --- code/game/objects/items.dm | 19 +- code/game/objects/items/RSF.dm | 1 - code/game/objects/items/cigs_lighters.dm | 1579 ++++++++--------- .../circuitboards/computer_circuitboards.dm | 1 - .../objects/items/devices/geiger_counter.dm | 1 - .../objects/items/devices/lightreplacer.dm | 523 +++--- code/game/objects/items/devices/megaphone.dm | 1 - code/game/objects/items/robot/robot_items.dm | 1 - code/modules/clothing/clothing.dm | 7 +- .../computers/item/computer.dm | 1 - code/modules/projectiles/pins.dm | 1 - 11 files changed, 1067 insertions(+), 1068 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index f1dde24690..96dcba36cf 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -35,10 +35,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) pressure_resistance = 4 var/obj/item/master = null - var/heat_protection = 0 //flags_1 which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags_1. See setup.dm - var/cold_protection = 0 //flags_1 which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags_1. See setup.dm - var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags_1 - var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags_1 + var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags + var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags var/list/actions //list of /datum/action's that this item has. var/list/actions_types //list of paths of action datums to give to the item on New(). @@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/item_color = null //this needs deprecating, soonish - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags_1 + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) var/permeability_coefficient = 1 // for chemicals/diseases @@ -64,6 +64,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/list/materials var/origin_tech = null //Used by R&D to determine what research bonuses it grants. var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + var/emagged = FALSE var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item @@ -86,7 +87,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. - var/flags_cover = 0 //for flags_1 such as GLASSESCOVERSEYES + var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES var/heat = 0 var/sharpness = IS_BLUNT var/toolspeed = 1 @@ -128,6 +129,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(force_string) force_string_override = TRUE + if(!hitsound) + if(damtype == "fire") + hitsound = 'sound/items/welder.ogg' + if(damtype == "brute") + hitsound = "swing_hit" + /obj/item/Destroy() flags_1 &= ~DROPDEL_1 //prevent reqdels if(ismob(loc)) diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm index 42ba5a8c2f..9b0251e8dc 100644 --- a/code/game/objects/items/RSF.dm +++ b/code/game/objects/items/RSF.dm @@ -123,7 +123,6 @@ RSF var/toxin = 0 var/cooldown = 0 var/cooldowndelay = 10 - var/emagged = FALSE w_class = WEIGHT_CLASS_NORMAL /obj/item/cookiesynth/examine(mob/user) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 9045159f24..5595500bb7 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -1,790 +1,789 @@ -//cleansed 9/15/2012 17:48 - -/* -CONTAINS: -MATCHES -CIGARETTES -CIGARS -SMOKING PIPES -CHEAP LIGHTERS -ZIPPO - -CIGARETTE PACKETS ARE IN FANCY.DM -*/ - -/////////// -//MATCHES// -/////////// -/obj/item/match - name = "match" - desc = "A simple match stick, used for lighting fine smokables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "match_unlit" - var/lit = FALSE - var/burnt = FALSE - var/smoketime = 5 - w_class = WEIGHT_CLASS_TINY - origin_tech = "materials=1" - heat = 1000 - -/obj/item/match/process() - smoketime-- - if(smoketime < 1) - matchburnout() - else - open_flame(heat) - -/obj/item/match/fire_act(exposed_temperature, exposed_volume) - matchignite() - -/obj/item/match/proc/matchignite() - if(!lit && !burnt) - lit = TRUE - icon_state = "match_lit" - damtype = "fire" - force = 3 - hitsound = 'sound/items/welder.ogg' - item_state = "cigon" - name = "lit match" - desc = "A match. This one is lit." - attack_verb = list("burnt","singed") - START_PROCESSING(SSobj, src) - update_icon() - -/obj/item/match/proc/matchburnout() - if(lit) - lit = FALSE - burnt = TRUE - damtype = "brute" - force = initial(force) - icon_state = "match_burnt" - item_state = "cigoff" - name = "burnt match" - desc = "A match. This one has seen better days." - attack_verb = list("flicked") - STOP_PROCESSING(SSobj, src) - -/obj/item/match/dropped(mob/user) - matchburnout() - . = ..() - -/obj/item/match/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!isliving(M)) - return - if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - ..() - -/obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(slot_wear_mask) - if(istype(mask_item, /obj/item/clothing/mask/cigarette)) - return mask_item - -/obj/item/match/is_hot() - return lit * heat - -////////////////// -//FINE SMOKABLES// -////////////////// -/obj/item/clothing/mask/cigarette - name = "cigarette" - desc = "A roll of tobacco and nicotine." - icon_state = "cigoff" - throw_speed = 0.5 - item_state = "cigoff" - container_type = INJECTABLE_1 - w_class = WEIGHT_CLASS_TINY - body_parts_covered = null - var/lit = FALSE - var/starts_lit = FALSE - var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi - var/icon_off = "cigoff" - var/type_butt = /obj/item/cigbutt - var/lastHolder = null - var/smoketime = 300 - var/chem_volume = 30 - var/list/list_reagents = list("nicotine" = 15) - heat = 1000 - -/obj/item/clothing/mask/cigarette/suicide_act(mob/user) - user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") - return (TOXLOSS|OXYLOSS) - -/obj/item/clothing/mask/cigarette/Initialize() - ..() - create_reagents(chem_volume) - reagents.set_reacting(FALSE) // so it doesn't react until you light it - if(list_reagents) - reagents.add_reagent_list(list_reagents) - if(starts_lit) - light() - -/obj/item/clothing/mask/cigarette/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/clothing/mask/cigarette/attackby(obj/item/W, mob/user, params) - if(!lit && smoketime > 0) - var/lighting_text = W.ignition_effect(src, user) - if(lighting_text) - light(lighting_text) - else - return ..() - -/obj/item/clothing/mask/cigarette/afterattack(obj/item/reagent_containers/glass/glass, mob/user, proximity) - if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) - return - if(istype(glass)) //you can dip cigarettes into beakers - if(glass.reagents.trans_to(src, chem_volume)) //if reagents were transfered, show the message - to_chat(user, "You dip \the [src] into \the [glass].") - else //if not, either the beaker was empty, or the cigarette was full - if(!glass.reagents.total_volume) - to_chat(user, "[glass] is empty.") - else - to_chat(user, "[src] is full.") - - -/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) - if(lit) - return - - lit = TRUE - name = "lit [name]" - attack_verb = list("burnt", "singed") - hitsound = 'sound/items/welder.ogg' - damtype = "fire" - force = 4 - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - // allowing reagents to react after being lit - reagents.set_reacting(TRUE) - reagents.handle_reactions() - icon_state = icon_on - item_state = icon_on - if(flavor_text) - var/turf/T = get_turf(src) - T.visible_message(flavor_text) - START_PROCESSING(SSobj, src) - - //can't think of any other way to update the overlays :< - if(ismob(loc)) - var/mob/M = loc - M.update_inv_wear_mask() - M.update_inv_hands() - - -/obj/item/clothing/mask/cigarette/proc/handle_reagents() - if(reagents.total_volume) - if(iscarbon(loc)) - var/mob/living/carbon/C = loc - if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - if(prob(15)) // so it's not an instarape in case of acid - var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) - reagents.reaction(C, INGEST, fraction) - if(!reagents.trans_to(C, REAGENTS_METABOLISM)) - reagents.remove_any(REAGENTS_METABOLISM) - return - reagents.remove_any(REAGENTS_METABOLISM) - - -/obj/item/clothing/mask/cigarette/process() - var/turf/location = get_turf(src) - var/mob/living/M = loc - if(isliving(loc)) - M.IgniteMob() - smoketime-- - if(smoketime < 1) - new type_butt(location) - if(ismob(loc)) - to_chat(M, "Your [name] goes out.") - qdel(src) - return - open_flame() - if(reagents && reagents.total_volume) - handle_reagents() - -/obj/item/clothing/mask/cigarette/attack_self(mob/user) - if(lit) - user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") - new type_butt(user.loc) - new /obj/effect/decal/cleanable/ash(user.loc) - qdel(src) - . = ..() - -/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!istype(M)) - return ..() - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - return ..() - -/obj/item/clothing/mask/cigarette/fire_act(exposed_temperature, exposed_volume) - light() - -/obj/item/clothing/mask/cigarette/is_hot() - return lit * heat - -// Cigarette brands. - -/obj/item/clothing/mask/cigarette/space_cigarette - desc = "A Space Cigarette brand cigarette." - -/obj/item/clothing/mask/cigarette/dromedary - desc = "A DromedaryCo brand cigarette." - -/obj/item/clothing/mask/cigarette/uplift - desc = "An Uplift Smooth brand cigarette." - list_reagents = list("nicotine" = 7.5, "menthol" = 7.5) - -/obj/item/clothing/mask/cigarette/robust - desc = "A Robust brand cigarette." - -/obj/item/clothing/mask/cigarette/robustgold - desc = "A Robust Gold brand cigarette." - list_reagents = list("nicotine" = 15, "gold" = 1) - -/obj/item/clothing/mask/cigarette/carp - desc = "A Carp Classic brand cigarette." - -/obj/item/clothing/mask/cigarette/syndicate - desc = "An unknown brand cigarette." - list_reagents = list("nicotine" = 15, "omnizine" = 15) - -/obj/item/clothing/mask/cigarette/shadyjims - desc = "A Shady Jim's Super Slims cigarette." - list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) - -// Rollies. - -/obj/item/clothing/mask/cigarette/rollie - name = "rollie" - desc = "A roll of dried plant matter wrapped in thin paper." - icon_state = "spliffoff" - icon_on = "spliffon" - icon_off = "spliffoff" - type_butt = /obj/item/cigbutt/roach - throw_speed = 0.5 - item_state = "spliffoff" - smoketime = 180 - chem_volume = 50 - -/obj/item/clothing/mask/cigarette/rollie/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - -/obj/item/clothing/mask/cigarette/rollie/trippy - list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35) - starts_lit = TRUE - -/obj/item/cigbutt/roach - name = "roach" - desc = "A manky old roach, or for non-stoners, a used rollup." - icon_state = "roach" - -/obj/item/cigbutt/roach/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - - -//////////// -// CIGARS // -//////////// -/obj/item/clothing/mask/cigarette/cigar - name = "premium cigar" - desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" - icon_state = "cigaroff" - icon_on = "cigaron" - icon_off = "cigaroff" - type_butt = /obj/item/cigbutt/cigarbutt - throw_speed = 0.5 - item_state = "cigaroff" - smoketime = 1500 - chem_volume = 40 - -/obj/item/clothing/mask/cigarette/cigar/cohiba - name = "\improper Cohiba Robusto cigar" - desc = "There's little more you could want from a cigar." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 2000 - chem_volume = 80 - - -/obj/item/clothing/mask/cigarette/cigar/havana - name = "premium Havanian cigar" - desc = "A cigar fit for only the best of the best." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 7200 - chem_volume = 50 - -/obj/item/cigbutt - name = "cigarette butt" - desc = "A manky old cigarette butt." - icon = 'icons/obj/clothing/masks.dmi' - icon_state = "cigbutt" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - -/obj/item/cigbutt/cigarbutt - name = "cigar butt" - desc = "A manky old cigar butt." - icon_state = "cigarbutt" - -///////////////// -//SMOKING PIPES// -///////////////// -/obj/item/clothing/mask/cigarette/pipe - name = "smoking pipe" - desc = "A pipe, for smoking. Probably made of meershaum or something." - icon_state = "pipeoff" - item_state = "pipeoff" - icon_on = "pipeon" //Note - these are in masks.dmi - icon_off = "pipeoff" - smoketime = 0 - chem_volume = 100 - list_reagents = null - var/packeditem = 0 - -/obj/item/clothing/mask/cigarette/pipe/Initialize() - ..() - name = "empty [initial(name)]" - -/obj/item/clothing/mask/cigarette/pipe/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/clothing/mask/cigarette/pipe/process() - var/turf/location = get_turf(src) - smoketime-- - if(smoketime < 1) - new /obj/effect/decal/cleanable/ash(location) - if(ismob(loc)) - var/mob/living/M = loc - to_chat(M, "Your [name] goes out.") - lit = 0 - icon_state = icon_off - item_state = icon_off - M.update_inv_wear_mask() - packeditem = 0 - name = "empty [initial(name)]" - STOP_PROCESSING(SSobj, src) - return - open_flame() - if(reagents && reagents.total_volume) // check if it has any reagents at all - handle_reagents() - - -/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/reagent_containers/food/snacks/grown)) - var/obj/item/reagent_containers/food/snacks/grown/G = O - if(!packeditem) - if(G.dry == 1) - to_chat(user, "You stuff [O] into [src].") - smoketime = 400 - packeditem = 1 - name = "[O.name]-packed [initial(name)]" - if(O.reagents) - O.reagents.trans_to(src, O.reagents.total_volume) - qdel(O) - else - to_chat(user, "It has to be dried first!") - else - to_chat(user, "It is already packed!") - else - var/lighting_text = O.ignition_effect(src,user) - if(lighting_text) - if(smoketime > 0) - light(lighting_text) - else - to_chat(user, "There is nothing to smoke!") - else - return ..() - -/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user) - var/turf/location = get_turf(user) - if(lit) - user.visible_message("[user] puts out [src].", "You put out [src].") - lit = 0 - icon_state = icon_off - item_state = icon_off - STOP_PROCESSING(SSobj, src) - return - if(!lit && smoketime > 0) - to_chat(user, "You empty [src] onto [location].") - new /obj/effect/decal/cleanable/ash(location) - packeditem = 0 - smoketime = 0 - reagents.clear_reagents() - name = "empty [initial(name)]" - return - -/obj/item/clothing/mask/cigarette/pipe/cobpipe - name = "corn cob pipe" - desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." - icon_state = "cobpipeoff" - item_state = "cobpipeoff" - icon_on = "cobpipeon" //Note - these are in masks.dmi - icon_off = "cobpipeoff" - smoketime = 0 - - -///////// -//ZIPPO// -///////// -/obj/item/lighter - name = "\improper Zippo lighter" - desc = "The zippo." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "zippo" - item_state = "zippo" - w_class = WEIGHT_CLASS_TINY - flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT - var/lit = 0 - var/fancy = TRUE - heat = 1500 - resistance_flags = FIRE_PROOF - light_color = LIGHT_COLOR_FIRE - -/obj/item/lighter/update_icon() - if(lit) - icon_state = "[initial(icon_state)]_on" - else - icon_state = "[initial(icon_state)]" - -/obj/item/lighter/ignition_effect(atom/A, mob/user) - if(is_hot()) - . = "With a single flick of their wrist, [user] smoothly lights [A] with [src]. Damn [user.p_theyre()] cool." - -/obj/item/lighter/proc/set_lit(new_lit) - lit = new_lit - if(lit) - force = 5 - damtype = "fire" - hitsound = 'sound/items/welder.ogg' - attack_verb = list("burnt", "singed") - set_light(1) - START_PROCESSING(SSobj, src) - else - hitsound = "swing_hit" - force = 0 - attack_verb = null //human_defense.dm takes care of it - set_light(0) - STOP_PROCESSING(SSobj, src) - update_icon() - -/obj/item/lighter/attack_self(mob/living/user) - if(user.is_holding(src)) - if(!lit) - set_lit(TRUE) - if(fancy) - user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.") - else - var/prot = FALSE - var/mob/living/carbon/human/H = user - - if(istype(H) && H.gloves) - var/obj/item/clothing/gloves/G = H.gloves - if(G.max_heat_protection_temperature) - prot = (G.max_heat_protection_temperature > 360) - else - prot = TRUE - - if(prot || prob(75)) - user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") - else - var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" - user.apply_damage(5, BURN, hitzone) - user.visible_message("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn their finger in the process.", "You burn yourself while lighting the lighter!") - - else - set_lit(FALSE) - if(fancy) - user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.", "You quietly shut off [src] without even looking at what you're doing. Wow.") - else - user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].") - else - . = ..() - -/obj/item/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) - if(lit && M.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") - log_game("[key_name(user)] set [key_name(M)] on fire") - var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) - if(lit && cig && user.a_intent == INTENT_HELP) - if(cig.lit) - to_chat(user, "The [cig.name] is already lit.") - if(M == user) - cig.attackby(src, user) - else - if(fancy) - cig.light("[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame they light \the [cig] with.") - else - cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") - else - ..() - -/obj/item/lighter/process() - open_flame() - -/obj/item/lighter/is_hot() - return lit * heat - - -/obj/item/lighter/greyscale - name = "cheap lighter" - desc = "A cheap-as-free lighter." - icon_state = "lighter" - fancy = FALSE - -/obj/item/lighter/greyscale/Initialize() - . = ..() - add_atom_colour(color2hex(randomColor(1)), FIXED_COLOUR_PRIORITY) - update_icon() - -/obj/item/lighter/greyscale/update_icon() - cut_overlays() - var/mutable_appearance/base_overlay = mutable_appearance(icon,"[initial(icon_state)]_base") - base_overlay.appearance_flags = RESET_COLOR //the edging doesn't change color - if(lit) - base_overlay.icon_state = "[initial(icon_state)]_on" - add_overlay(base_overlay) - -/obj/item/lighter/greyscale/ignition_effect(atom/A, mob/user) - if(is_hot()) - . = "After some fiddling, [user] manages to light [A] with [src]." - - -/////////// -//ROLLING// -/////////// -/obj/item/rollingpaper - name = "rolling paper" - desc = "A thin piece of paper used to make fine smokeables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig_paper" - w_class = WEIGHT_CLASS_TINY - -/obj/item/rollingpaper/afterattack(atom/target, mob/user, proximity) - if(!proximity) - return - if(istype(target, /obj/item/reagent_containers/food/snacks/grown)) - var/obj/item/reagent_containers/food/snacks/grown/O = target - if(O.dry) - var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) - R.chem_volume = target.reagents.total_volume - target.reagents.trans_to(R, R.chem_volume) - qdel(target) - qdel(src) - user.put_in_active_hand(R) - to_chat(user, "You roll the [target.name] into a rolling paper.") - R.desc = "Dried [target.name] rolled up in a thin piece of paper." - else - to_chat(user, "You need to dry this first!") - else - ..() - -/////////////// -//VAPE NATION// -/////////////// -/obj/item/clothing/mask/vape - name = "E-Cigarette" - desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. - icon = 'icons/obj/clothing/masks.dmi' - icon_state = null - item_state = null - w_class = WEIGHT_CLASS_TINY - var/chem_volume = 100 - var/vapetime = 0 //this so it won't puff out clouds every tick - var/screw = 0 // kinky - var/super = 0 //for the fattest vapes dude. - var/emagged = FALSE //LET THE GRIEF BEGIN - -/obj/item/clothing/mask/vape/suicide_act(mob/user) - user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer - return (TOXLOSS|OXYLOSS) - - -/obj/item/clothing/mask/vape/Initialize(mapload, param_color) - . = ..() - create_reagents(chem_volume) - reagents.set_reacting(FALSE) // so it doesn't react until you light it - reagents.add_reagent("nicotine", 50) - if(!icon_state) - if(!param_color) - param_color = pick("red","blue","black","white","green","purple","yellow","orange") - icon_state = "[param_color]_vape" - item_state = "[param_color]_vape" - -/obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/reagent_containers) && (O.container_type & OPENCONTAINER_1)) - if(reagents.total_volume < chem_volume) - if(O.reagents.total_volume > 0) - O.reagents.trans_to(src,25) - to_chat(user, "You add the contents of [O] to the [src]") - else - to_chat(user, "The [O] is empty!") - else - to_chat(user, "[src] can't hold anymore reagents!") - - if(istype(O, /obj/item/screwdriver)) - if(!screw) - screw = 1 - to_chat(user, "You open the cap on the [src]") - if(super) - add_overlay("vapeopen_med") - else - add_overlay("vapeopen_low") - else - screw = 0 - to_chat(user, "You close the cap on the [src]") - cut_overlays() - - if(istype(O, /obj/item/device/multitool)) - if(screw && !emagged)//also kinky - if(!super) - cut_overlays() - super = 1 - to_chat(user, "You increase the voltage in the [src]") - add_overlay("vapeopen_med") - else - cut_overlays() - super = 0 - to_chat(user, "You decrease the voltage in the [src]") - add_overlay("vapeopen_low") - - if(screw && emagged) - to_chat(user, "The [name] can't be modified!") - - -/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. - if(screw) - if(!emagged) - cut_overlays() - emagged = TRUE - super = 0 - to_chat(user, "You maximize the voltage in the [src]") - add_overlay("vapeopen_high") - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect - sp.set_up(5, 1, src) - sp.start() - else - to_chat(user, "The [name] is already emagged!") - else - to_chat(user, "You need to open the cap to do that") - -/obj/item/clothing/mask/vape/attack_self(mob/user) - if(reagents.total_volume > 0) - to_chat(user, "you empty [src] of all reagents.") - reagents.clear_reagents() - return - -/obj/item/clothing/mask/vape/equipped(mob/user, slot) - if(slot == slot_wear_mask) - if(!screw) - to_chat(user, "You start puffing on the vape.") - reagents.set_reacting(TRUE) - START_PROCESSING(SSobj, src) - else //it will not start if the vape is opened. - to_chat(user, "You need to close the cap first!") - -/obj/item/clothing/mask/vape/dropped(mob/user) - var/mob/living/carbon/C = user - if(C.get_item_by_slot(slot_wear_mask) == src) - reagents.set_reacting(FALSE) - STOP_PROCESSING(SSobj, src) - -/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error - if(reagents.total_volume) - if(iscarbon(loc)) - var/mob/living/carbon/C = loc - if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob - var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) //this will react instantly, making them a little more dangerous than cigarettes - reagents.reaction(C, INGEST, fraction) - if(!reagents.trans_to(C, REAGENTS_METABOLISM)) - reagents.remove_any(REAGENTS_METABOLISM) - if(reagents.get_reagent_amount("welding_fuel")) - //HOT STUFF - C.fire_stacks = 2 - C.IgniteMob() - - if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) - e.start() - qdel(src) - return - reagents.remove_any(REAGENTS_METABOLISM) - -/obj/item/clothing/mask/vape/process() - var/mob/living/M = loc - - if(isliving(loc)) - M.IgniteMob() - - vapetime++ - - if(!reagents.total_volume) - if(ismob(loc)) - to_chat(M, "The [name] is empty!") - STOP_PROCESSING(SSobj, src) - //it's reusable so it won't unequip when empty - return - //open flame removed because vapes are a closed system, they wont light anything on fire - - if(super && vapetime > 3)//Time to start puffing those fat vapes, yo. - var/datum/effect_system/smoke_spread/chem/s = new - s.set_up(reagents, 1, loc, silent=TRUE) - s.start() - vapetime = 0 - - if(emagged && vapetime > 3) - var/datum/effect_system/smoke_spread/chem/s = new - s.set_up(reagents, 4, loc, silent=TRUE) - s.start() - vapetime = 0 - if(prob(5))//small chance for the vape to break and deal damage if it's emagged - playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) - M.apply_damage(20, BURN, "head") - M.Knockdown(300, 1, 0) - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread - sp.set_up(5, 1, src) - sp.start() - to_chat(M, "The [name] suddenly explodes in your mouth!") - qdel(src) - return - - if(reagents && reagents.total_volume) - hand_reagents() +//cleansed 9/15/2012 17:48 + +/* +CONTAINS: +MATCHES +CIGARETTES +CIGARS +SMOKING PIPES +CHEAP LIGHTERS +ZIPPO + +CIGARETTE PACKETS ARE IN FANCY.DM +*/ + +/////////// +//MATCHES// +/////////// +/obj/item/match + name = "match" + desc = "A simple match stick, used for lighting fine smokables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "match_unlit" + var/lit = FALSE + var/burnt = FALSE + var/smoketime = 5 + w_class = WEIGHT_CLASS_TINY + origin_tech = "materials=1" + heat = 1000 + +/obj/item/match/process() + smoketime-- + if(smoketime < 1) + matchburnout() + else + open_flame(heat) + +/obj/item/match/fire_act(exposed_temperature, exposed_volume) + matchignite() + +/obj/item/match/proc/matchignite() + if(!lit && !burnt) + lit = TRUE + icon_state = "match_lit" + damtype = "fire" + force = 3 + hitsound = 'sound/items/welder.ogg' + item_state = "cigon" + name = "lit match" + desc = "A match. This one is lit." + attack_verb = list("burnt","singed") + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/match/proc/matchburnout() + if(lit) + lit = FALSE + burnt = TRUE + damtype = "brute" + force = initial(force) + icon_state = "match_burnt" + item_state = "cigoff" + name = "burnt match" + desc = "A match. This one has seen better days." + attack_verb = list("flicked") + STOP_PROCESSING(SSobj, src) + +/obj/item/match/dropped(mob/user) + matchburnout() + . = ..() + +/obj/item/match/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!isliving(M)) + return + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/proc/help_light_cig(mob/living/M) + var/mask_item = M.get_item_by_slot(slot_wear_mask) + if(istype(mask_item, /obj/item/clothing/mask/cigarette)) + return mask_item + +/obj/item/match/is_hot() + return lit * heat + +////////////////// +//FINE SMOKABLES// +////////////////// +/obj/item/clothing/mask/cigarette + name = "cigarette" + desc = "A roll of tobacco and nicotine." + icon_state = "cigoff" + throw_speed = 0.5 + item_state = "cigoff" + container_type = INJECTABLE_1 + w_class = WEIGHT_CLASS_TINY + body_parts_covered = null + var/lit = FALSE + var/starts_lit = FALSE + var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi + var/icon_off = "cigoff" + var/type_butt = /obj/item/cigbutt + var/lastHolder = null + var/smoketime = 300 + var/chem_volume = 30 + var/list/list_reagents = list("nicotine" = 15) + heat = 1000 + +/obj/item/clothing/mask/cigarette/suicide_act(mob/user) + user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") + return (TOXLOSS|OXYLOSS) + +/obj/item/clothing/mask/cigarette/Initialize() + ..() + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + if(list_reagents) + reagents.add_reagent_list(list_reagents) + if(starts_lit) + light() + +/obj/item/clothing/mask/cigarette/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/attackby(obj/item/W, mob/user, params) + if(!lit && smoketime > 0) + var/lighting_text = W.ignition_effect(src, user) + if(lighting_text) + light(lighting_text) + else + return ..() + +/obj/item/clothing/mask/cigarette/afterattack(obj/item/reagent_containers/glass/glass, mob/user, proximity) + if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) + return + if(istype(glass)) //you can dip cigarettes into beakers + if(glass.reagents.trans_to(src, chem_volume)) //if reagents were transfered, show the message + to_chat(user, "You dip \the [src] into \the [glass].") + else //if not, either the beaker was empty, or the cigarette was full + if(!glass.reagents.total_volume) + to_chat(user, "[glass] is empty.") + else + to_chat(user, "[src] is full.") + + +/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) + if(lit) + return + + lit = TRUE + name = "lit [name]" + attack_verb = list("burnt", "singed") + hitsound = 'sound/items/welder.ogg' + damtype = "fire" + force = 4 + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + // allowing reagents to react after being lit + reagents.set_reacting(TRUE) + reagents.handle_reactions() + icon_state = icon_on + item_state = icon_on + if(flavor_text) + var/turf/T = get_turf(src) + T.visible_message(flavor_text) + START_PROCESSING(SSobj, src) + + //can't think of any other way to update the overlays :< + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + M.update_inv_hands() + + +/obj/item/clothing/mask/cigarette/proc/handle_reagents() + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + if(prob(15)) // so it's not an instarape in case of acid + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) + reagents.reaction(C, INGEST, fraction) + if(!reagents.trans_to(C, REAGENTS_METABOLISM)) + reagents.remove_any(REAGENTS_METABOLISM) + return + reagents.remove_any(REAGENTS_METABOLISM) + + +/obj/item/clothing/mask/cigarette/process() + var/turf/location = get_turf(src) + var/mob/living/M = loc + if(isliving(loc)) + M.IgniteMob() + smoketime-- + if(smoketime < 1) + new type_butt(location) + if(ismob(loc)) + to_chat(M, "Your [name] goes out.") + qdel(src) + return + open_flame() + if(reagents && reagents.total_volume) + handle_reagents() + +/obj/item/clothing/mask/cigarette/attack_self(mob/user) + if(lit) + user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") + new type_butt(user.loc) + new /obj/effect/decal/cleanable/ash(user.loc) + qdel(src) + . = ..() + +/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + return ..() + +/obj/item/clothing/mask/cigarette/fire_act(exposed_temperature, exposed_volume) + light() + +/obj/item/clothing/mask/cigarette/is_hot() + return lit * heat + +// Cigarette brands. + +/obj/item/clothing/mask/cigarette/space_cigarette + desc = "A Space Cigarette brand cigarette." + +/obj/item/clothing/mask/cigarette/dromedary + desc = "A DromedaryCo brand cigarette." + +/obj/item/clothing/mask/cigarette/uplift + desc = "An Uplift Smooth brand cigarette." + list_reagents = list("nicotine" = 7.5, "menthol" = 7.5) + +/obj/item/clothing/mask/cigarette/robust + desc = "A Robust brand cigarette." + +/obj/item/clothing/mask/cigarette/robustgold + desc = "A Robust Gold brand cigarette." + list_reagents = list("nicotine" = 15, "gold" = 1) + +/obj/item/clothing/mask/cigarette/carp + desc = "A Carp Classic brand cigarette." + +/obj/item/clothing/mask/cigarette/syndicate + desc = "An unknown brand cigarette." + list_reagents = list("nicotine" = 15, "omnizine" = 15) + +/obj/item/clothing/mask/cigarette/shadyjims + desc = "A Shady Jim's Super Slims cigarette." + list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5) + +// Rollies. + +/obj/item/clothing/mask/cigarette/rollie + name = "rollie" + desc = "A roll of dried plant matter wrapped in thin paper." + icon_state = "spliffoff" + icon_on = "spliffon" + icon_off = "spliffoff" + type_butt = /obj/item/cigbutt/roach + throw_speed = 0.5 + item_state = "spliffoff" + smoketime = 180 + chem_volume = 50 + +/obj/item/clothing/mask/cigarette/rollie/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + +/obj/item/clothing/mask/cigarette/rollie/trippy + list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35) + starts_lit = TRUE + +/obj/item/cigbutt/roach + name = "roach" + desc = "A manky old roach, or for non-stoners, a used rollup." + icon_state = "roach" + +/obj/item/cigbutt/roach/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + + +//////////// +// CIGARS // +//////////// +/obj/item/clothing/mask/cigarette/cigar + name = "premium cigar" + desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" + icon_state = "cigaroff" + icon_on = "cigaron" + icon_off = "cigaroff" + type_butt = /obj/item/cigbutt/cigarbutt + throw_speed = 0.5 + item_state = "cigaroff" + smoketime = 1500 + chem_volume = 40 + +/obj/item/clothing/mask/cigarette/cigar/cohiba + name = "\improper Cohiba Robusto cigar" + desc = "There's little more you could want from a cigar." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 2000 + chem_volume = 80 + + +/obj/item/clothing/mask/cigarette/cigar/havana + name = "premium Havanian cigar" + desc = "A cigar fit for only the best of the best." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 7200 + chem_volume = 50 + +/obj/item/cigbutt + name = "cigarette butt" + desc = "A manky old cigarette butt." + icon = 'icons/obj/clothing/masks.dmi' + icon_state = "cigbutt" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + +/obj/item/cigbutt/cigarbutt + name = "cigar butt" + desc = "A manky old cigar butt." + icon_state = "cigarbutt" + +///////////////// +//SMOKING PIPES// +///////////////// +/obj/item/clothing/mask/cigarette/pipe + name = "smoking pipe" + desc = "A pipe, for smoking. Probably made of meershaum or something." + icon_state = "pipeoff" + item_state = "pipeoff" + icon_on = "pipeon" //Note - these are in masks.dmi + icon_off = "pipeoff" + smoketime = 0 + chem_volume = 100 + list_reagents = null + var/packeditem = 0 + +/obj/item/clothing/mask/cigarette/pipe/Initialize() + ..() + name = "empty [initial(name)]" + +/obj/item/clothing/mask/cigarette/pipe/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/pipe/process() + var/turf/location = get_turf(src) + smoketime-- + if(smoketime < 1) + new /obj/effect/decal/cleanable/ash(location) + if(ismob(loc)) + var/mob/living/M = loc + to_chat(M, "Your [name] goes out.") + lit = 0 + icon_state = icon_off + item_state = icon_off + M.update_inv_wear_mask() + packeditem = 0 + name = "empty [initial(name)]" + STOP_PROCESSING(SSobj, src) + return + open_flame() + if(reagents && reagents.total_volume) // check if it has any reagents at all + handle_reagents() + + +/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/reagent_containers/food/snacks/grown)) + var/obj/item/reagent_containers/food/snacks/grown/G = O + if(!packeditem) + if(G.dry == 1) + to_chat(user, "You stuff [O] into [src].") + smoketime = 400 + packeditem = 1 + name = "[O.name]-packed [initial(name)]" + if(O.reagents) + O.reagents.trans_to(src, O.reagents.total_volume) + qdel(O) + else + to_chat(user, "It has to be dried first!") + else + to_chat(user, "It is already packed!") + else + var/lighting_text = O.ignition_effect(src,user) + if(lighting_text) + if(smoketime > 0) + light(lighting_text) + else + to_chat(user, "There is nothing to smoke!") + else + return ..() + +/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user) + var/turf/location = get_turf(user) + if(lit) + user.visible_message("[user] puts out [src].", "You put out [src].") + lit = 0 + icon_state = icon_off + item_state = icon_off + STOP_PROCESSING(SSobj, src) + return + if(!lit && smoketime > 0) + to_chat(user, "You empty [src] onto [location].") + new /obj/effect/decal/cleanable/ash(location) + packeditem = 0 + smoketime = 0 + reagents.clear_reagents() + name = "empty [initial(name)]" + return + +/obj/item/clothing/mask/cigarette/pipe/cobpipe + name = "corn cob pipe" + desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." + icon_state = "cobpipeoff" + item_state = "cobpipeoff" + icon_on = "cobpipeon" //Note - these are in masks.dmi + icon_off = "cobpipeoff" + smoketime = 0 + + +///////// +//ZIPPO// +///////// +/obj/item/lighter + name = "\improper Zippo lighter" + desc = "The zippo." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "zippo" + item_state = "zippo" + w_class = WEIGHT_CLASS_TINY + flags_1 = CONDUCT_1 + slot_flags = SLOT_BELT + var/lit = 0 + var/fancy = TRUE + heat = 1500 + resistance_flags = FIRE_PROOF + light_color = LIGHT_COLOR_FIRE + +/obj/item/lighter/update_icon() + if(lit) + icon_state = "[initial(icon_state)]_on" + else + icon_state = "[initial(icon_state)]" + +/obj/item/lighter/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "With a single flick of their wrist, [user] smoothly lights [A] with [src]. Damn [user.p_theyre()] cool." + +/obj/item/lighter/proc/set_lit(new_lit) + lit = new_lit + if(lit) + force = 5 + damtype = "fire" + hitsound = 'sound/items/welder.ogg' + attack_verb = list("burnt", "singed") + set_light(1) + START_PROCESSING(SSobj, src) + else + hitsound = "swing_hit" + force = 0 + attack_verb = null //human_defense.dm takes care of it + set_light(0) + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/item/lighter/attack_self(mob/living/user) + if(user.is_holding(src)) + if(!lit) + set_lit(TRUE) + if(fancy) + user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.") + else + var/prot = FALSE + var/mob/living/carbon/human/H = user + + if(istype(H) && H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.max_heat_protection_temperature) + prot = (G.max_heat_protection_temperature > 360) + else + prot = TRUE + + if(prot || prob(75)) + user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") + else + var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" + user.apply_damage(5, BURN, hitzone) + user.visible_message("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn their finger in the process.", "You burn yourself while lighting the lighter!") + + else + set_lit(FALSE) + if(fancy) + user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.", "You quietly shut off [src] without even looking at what you're doing. Wow.") + else + user.visible_message("[user] quietly shuts off [src].", "You quietly shut off [src].") + else + . = ..() + +/obj/item/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == INTENT_HELP) + if(cig.lit) + to_chat(user, "The [cig.name] is already lit.") + if(M == user) + cig.attackby(src, user) + else + if(fancy) + cig.light("[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame they light \the [cig] with.") + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/lighter/process() + open_flame() + +/obj/item/lighter/is_hot() + return lit * heat + + +/obj/item/lighter/greyscale + name = "cheap lighter" + desc = "A cheap-as-free lighter." + icon_state = "lighter" + fancy = FALSE + +/obj/item/lighter/greyscale/Initialize() + . = ..() + add_atom_colour(color2hex(randomColor(1)), FIXED_COLOUR_PRIORITY) + update_icon() + +/obj/item/lighter/greyscale/update_icon() + cut_overlays() + var/mutable_appearance/base_overlay = mutable_appearance(icon,"[initial(icon_state)]_base") + base_overlay.appearance_flags = RESET_COLOR //the edging doesn't change color + if(lit) + base_overlay.icon_state = "[initial(icon_state)]_on" + add_overlay(base_overlay) + +/obj/item/lighter/greyscale/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "After some fiddling, [user] manages to light [A] with [src]." + + +/////////// +//ROLLING// +/////////// +/obj/item/rollingpaper + name = "rolling paper" + desc = "A thin piece of paper used to make fine smokeables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper" + w_class = WEIGHT_CLASS_TINY + +/obj/item/rollingpaper/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + if(istype(target, /obj/item/reagent_containers/food/snacks/grown)) + var/obj/item/reagent_containers/food/snacks/grown/O = target + if(O.dry) + var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) + R.chem_volume = target.reagents.total_volume + target.reagents.trans_to(R, R.chem_volume) + qdel(target) + qdel(src) + user.put_in_active_hand(R) + to_chat(user, "You roll the [target.name] into a rolling paper.") + R.desc = "Dried [target.name] rolled up in a thin piece of paper." + else + to_chat(user, "You need to dry this first!") + else + ..() + +/////////////// +//VAPE NATION// +/////////////// +/obj/item/clothing/mask/vape + name = "E-Cigarette" + desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. + icon = 'icons/obj/clothing/masks.dmi' + icon_state = null + item_state = null + w_class = WEIGHT_CLASS_TINY + var/chem_volume = 100 + var/vapetime = 0 //this so it won't puff out clouds every tick + var/screw = 0 // kinky + var/super = 0 //for the fattest vapes dude. + +/obj/item/clothing/mask/vape/suicide_act(mob/user) + user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer + return (TOXLOSS|OXYLOSS) + + +/obj/item/clothing/mask/vape/Initialize(mapload, param_color) + . = ..() + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + reagents.add_reagent("nicotine", 50) + if(!icon_state) + if(!param_color) + param_color = pick("red","blue","black","white","green","purple","yellow","orange") + icon_state = "[param_color]_vape" + item_state = "[param_color]_vape" + +/obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/reagent_containers) && (O.container_type & OPENCONTAINER_1)) + if(reagents.total_volume < chem_volume) + if(O.reagents.total_volume > 0) + O.reagents.trans_to(src,25) + to_chat(user, "You add the contents of [O] to the [src]") + else + to_chat(user, "The [O] is empty!") + else + to_chat(user, "[src] can't hold anymore reagents!") + + if(istype(O, /obj/item/screwdriver)) + if(!screw) + screw = 1 + to_chat(user, "You open the cap on the [src]") + if(super) + add_overlay("vapeopen_med") + else + add_overlay("vapeopen_low") + else + screw = 0 + to_chat(user, "You close the cap on the [src]") + cut_overlays() + + if(istype(O, /obj/item/device/multitool)) + if(screw && !emagged)//also kinky + if(!super) + cut_overlays() + super = 1 + to_chat(user, "You increase the voltage in the [src]") + add_overlay("vapeopen_med") + else + cut_overlays() + super = 0 + to_chat(user, "You decrease the voltage in the [src]") + add_overlay("vapeopen_low") + + if(screw && emagged) + to_chat(user, "The [name] can't be modified!") + + +/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. + if(screw) + if(!emagged) + cut_overlays() + emagged = TRUE + super = 0 + to_chat(user, "You maximize the voltage in the [src]") + add_overlay("vapeopen_high") + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect + sp.set_up(5, 1, src) + sp.start() + else + to_chat(user, "The [name] is already emagged!") + else + to_chat(user, "You need to open the cap to do that") + +/obj/item/clothing/mask/vape/attack_self(mob/user) + if(reagents.total_volume > 0) + to_chat(user, "you empty [src] of all reagents.") + reagents.clear_reagents() + return + +/obj/item/clothing/mask/vape/equipped(mob/user, slot) + if(slot == slot_wear_mask) + if(!screw) + to_chat(user, "You start puffing on the vape.") + reagents.set_reacting(TRUE) + START_PROCESSING(SSobj, src) + else //it will not start if the vape is opened. + to_chat(user, "You need to close the cap first!") + +/obj/item/clothing/mask/vape/dropped(mob/user) + var/mob/living/carbon/C = user + if(C.get_item_by_slot(slot_wear_mask) == src) + reagents.set_reacting(FALSE) + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) //this will react instantly, making them a little more dangerous than cigarettes + reagents.reaction(C, INGEST, fraction) + if(!reagents.trans_to(C, REAGENTS_METABOLISM)) + reagents.remove_any(REAGENTS_METABOLISM) + if(reagents.get_reagent_amount("welding_fuel")) + //HOT STUFF + C.fire_stacks = 2 + C.IgniteMob() + + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return + reagents.remove_any(REAGENTS_METABOLISM) + +/obj/item/clothing/mask/vape/process() + var/mob/living/M = loc + + if(isliving(loc)) + M.IgniteMob() + + vapetime++ + + if(!reagents.total_volume) + if(ismob(loc)) + to_chat(M, "The [name] is empty!") + STOP_PROCESSING(SSobj, src) + //it's reusable so it won't unequip when empty + return + //open flame removed because vapes are a closed system, they wont light anything on fire + + if(super && vapetime > 3)//Time to start puffing those fat vapes, yo. + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 1, loc, silent=TRUE) + s.start() + vapetime = 0 + + if(emagged && vapetime > 3) + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 4, loc, silent=TRUE) + s.start() + vapetime = 0 + if(prob(5))//small chance for the vape to break and deal damage if it's emagged + playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) + M.apply_damage(20, BURN, "head") + M.Knockdown(300, 1, 0) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread + sp.set_up(5, 1, src) + sp.start() + to_chat(M, "The [name] suddenly explodes in your mouth!") + qdel(src) + return + + if(reagents && reagents.total_volume) + hand_reagents() diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index f9564018f8..c25e188529 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -212,7 +212,6 @@ build_path = /obj/machinery/computer/cargo origin_tech = "programming=3" var/contraband = FALSE - var/emagged = FALSE /obj/item/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/device/multitool)) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 069f8375cc..c9755727e7 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -16,7 +16,6 @@ materials = list(MAT_METAL = 150, MAT_GLASS = 150) var/scanning = 0 var/radiation_count = 0 - var/emagged = FALSE /obj/item/device/geiger_counter/New() ..() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 742a58a462..6bfbff9f3a 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -1,269 +1,268 @@ - -// Light Replacer (LR) -// -// ABOUT THE DEVICE -// -// This is a device supposedly to be used by Janitors and Janitor Cyborgs which will -// allow them to easily replace lights. This was mostly designed for Janitor Cyborgs since -// they don't have hands or a way to replace lightbulbs. -// -// HOW IT WORKS -// -// You attack a light fixture with it, if the light fixture is broken it will replace the -// light fixture with a working light; the broken light is then placed on the floor for the -// user to then pickup with a trash bag. If it's empty then it will just place a light in the fixture. -// -// HOW TO REFILL THE DEVICE -// -// It will need to be manually refilled with lights. -// If it's part of a robot module, it will charge when the Robot is inside a Recharge Station. -// -// EMAGGED FEATURES -// -// NOTICE: The Cyborg cannot use the emagged Light Replacer and the light's explosion was nerfed. It cannot create holes in the station anymore. -// -// I'm not sure everyone will react the emag's features so please say what your opinions are of it. -// -// When emagged it will rig every light it replaces, which will explode when the light is on. -// This is VERY noticable, even the device's name changes when you emag it so if anyone -// examines you when you're holding it in your hand, you will be discovered. -// It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy -// access to them, and only one of them can emag their device. -// -// The explosion cannot insta-kill anyone with 30% or more health. - -#define LIGHT_OK 0 -#define LIGHT_EMPTY 1 -#define LIGHT_BROKEN 2 -#define LIGHT_BURNED 3 - - -/obj/item/device/lightreplacer - - name = "light replacer" - desc = "A device to automatically replace lights. Refill with broken or working lightbulbs, or sheets of glass." - - icon = 'icons/obj/janitor.dmi' - icon_state = "lightreplacer0" - item_state = "electronic" + +// Light Replacer (LR) +// +// ABOUT THE DEVICE +// +// This is a device supposedly to be used by Janitors and Janitor Cyborgs which will +// allow them to easily replace lights. This was mostly designed for Janitor Cyborgs since +// they don't have hands or a way to replace lightbulbs. +// +// HOW IT WORKS +// +// You attack a light fixture with it, if the light fixture is broken it will replace the +// light fixture with a working light; the broken light is then placed on the floor for the +// user to then pickup with a trash bag. If it's empty then it will just place a light in the fixture. +// +// HOW TO REFILL THE DEVICE +// +// It will need to be manually refilled with lights. +// If it's part of a robot module, it will charge when the Robot is inside a Recharge Station. +// +// EMAGGED FEATURES +// +// NOTICE: The Cyborg cannot use the emagged Light Replacer and the light's explosion was nerfed. It cannot create holes in the station anymore. +// +// I'm not sure everyone will react the emag's features so please say what your opinions are of it. +// +// When emagged it will rig every light it replaces, which will explode when the light is on. +// This is VERY noticable, even the device's name changes when you emag it so if anyone +// examines you when you're holding it in your hand, you will be discovered. +// It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy +// access to them, and only one of them can emag their device. +// +// The explosion cannot insta-kill anyone with 30% or more health. + +#define LIGHT_OK 0 +#define LIGHT_EMPTY 1 +#define LIGHT_BROKEN 2 +#define LIGHT_BURNED 3 + + +/obj/item/device/lightreplacer + + name = "light replacer" + desc = "A device to automatically replace lights. Refill with broken or working lightbulbs, or sheets of glass." + + icon = 'icons/obj/janitor.dmi' + icon_state = "lightreplacer0" + item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - + flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT - origin_tech = "magnets=3;engineering=4" - - var/max_uses = 20 - var/uses = 0 - var/emagged = FALSE - var/failmsg = "" - // How much to increase per each glass? - var/increment = 5 - // How much to take from the glass? - var/decrement = 1 - var/charge = 1 - - // Eating used bulbs gives us bulb shards - var/bulb_shards = 0 - // when we get this many shards, we get a free bulb. - var/shards_required = 4 - -/obj/item/device/lightreplacer/New() - uses = max_uses / 2 - failmsg = "The [name]'s refill light blinks red." - ..() - -/obj/item/device/lightreplacer/examine(mob/user) - ..() - to_chat(user, status_string()) - -/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params) - - if(istype(W, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = W - if(uses >= max_uses) - to_chat(user, "[src.name] is full.") - return - else if(G.use(decrement)) - AddUses(increment) - to_chat(user, "You insert a piece of glass into the [src.name]. You have [uses] light\s remaining.") - return - else - to_chat(user, "You need one sheet of glass to replace lights!") - - if(istype(W, /obj/item/shard)) - if(uses >= max_uses) - to_chat(user, "[src.name] is full.") - return - if(!user.temporarilyRemoveItemFromInventory(W)) - return - AddUses(round(increment*0.75)) - to_chat(user, "You insert a shard of glass into the [src.name]. You have [uses] light\s remaining.") - qdel(W) - return - - if(istype(W, /obj/item/light)) - var/obj/item/light/L = W - if(L.status == 0) // LIGHT OKAY - if(uses < max_uses) - if(!user.temporarilyRemoveItemFromInventory(W)) - return - AddUses(1) - qdel(L) - else - if(!user.temporarilyRemoveItemFromInventory(W)) - return - to_chat(user, "You insert the [L.name] into the [src.name]") - AddShards(1, user) - qdel(L) - return - - if(istype(W, /obj/item/storage)) - var/obj/item/storage/S = W - var/found_lightbulbs = FALSE - var/replaced_something = TRUE - - for(var/obj/item/I in S.contents) + slot_flags = SLOT_BELT + origin_tech = "magnets=3;engineering=4" + + var/max_uses = 20 + var/uses = 0 + var/failmsg = "" + // How much to increase per each glass? + var/increment = 5 + // How much to take from the glass? + var/decrement = 1 + var/charge = 1 + + // Eating used bulbs gives us bulb shards + var/bulb_shards = 0 + // when we get this many shards, we get a free bulb. + var/shards_required = 4 + +/obj/item/device/lightreplacer/New() + uses = max_uses / 2 + failmsg = "The [name]'s refill light blinks red." + ..() + +/obj/item/device/lightreplacer/examine(mob/user) + ..() + to_chat(user, status_string()) + +/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params) + + if(istype(W, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = W + if(uses >= max_uses) + to_chat(user, "[src.name] is full.") + return + else if(G.use(decrement)) + AddUses(increment) + to_chat(user, "You insert a piece of glass into the [src.name]. You have [uses] light\s remaining.") + return + else + to_chat(user, "You need one sheet of glass to replace lights!") + + if(istype(W, /obj/item/shard)) + if(uses >= max_uses) + to_chat(user, "[src.name] is full.") + return + if(!user.temporarilyRemoveItemFromInventory(W)) + return + AddUses(round(increment*0.75)) + to_chat(user, "You insert a shard of glass into the [src.name]. You have [uses] light\s remaining.") + qdel(W) + return + + if(istype(W, /obj/item/light)) + var/obj/item/light/L = W + if(L.status == 0) // LIGHT OKAY + if(uses < max_uses) + if(!user.temporarilyRemoveItemFromInventory(W)) + return + AddUses(1) + qdel(L) + else + if(!user.temporarilyRemoveItemFromInventory(W)) + return + to_chat(user, "You insert the [L.name] into the [src.name]") + AddShards(1, user) + qdel(L) + return + + if(istype(W, /obj/item/storage)) + var/obj/item/storage/S = W + var/found_lightbulbs = FALSE + var/replaced_something = TRUE + + for(var/obj/item/I in S.contents) if(istype(I, /obj/item/light)) - var/obj/item/light/L = I - found_lightbulbs = TRUE - if(src.uses >= max_uses) - break - if(L.status == LIGHT_OK) - replaced_something = TRUE - AddUses(1) - qdel(L) - - else if(L.status == LIGHT_BROKEN || L.status == LIGHT_BURNED) - replaced_something = TRUE - AddShards(1, user) - qdel(L) - - if(!found_lightbulbs) - to_chat(user, "\The [S] contains no bulbs.") - return - - if(!replaced_something && src.uses == max_uses) - to_chat(user, "\The [src] is full!") - return - - to_chat(user, "You fill \the [src] with lights from \the [S]. " + status_string() + "") - -/obj/item/device/lightreplacer/emag_act() + var/obj/item/light/L = I + found_lightbulbs = TRUE + if(src.uses >= max_uses) + break + if(L.status == LIGHT_OK) + replaced_something = TRUE + AddUses(1) + qdel(L) + + else if(L.status == LIGHT_BROKEN || L.status == LIGHT_BURNED) + replaced_something = TRUE + AddShards(1, user) + qdel(L) + + if(!found_lightbulbs) + to_chat(user, "\The [S] contains no bulbs.") + return + + if(!replaced_something && src.uses == max_uses) + to_chat(user, "\The [src] is full!") + return + + to_chat(user, "You fill \the [src] with lights from \the [S]. " + status_string() + "") + +/obj/item/device/lightreplacer/emag_act() if(emagged) return Emag() - -/obj/item/device/lightreplacer/attack_self(mob/user) - to_chat(user, status_string()) - -/obj/item/device/lightreplacer/update_icon() - icon_state = "lightreplacer[emagged]" - -/obj/item/device/lightreplacer/proc/status_string() - return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)." - -/obj/item/device/lightreplacer/proc/Use(mob/user) - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - AddUses(-1) - return 1 - -// Negative numbers will subtract -/obj/item/device/lightreplacer/proc/AddUses(amount = 1) - uses = Clamp(uses + amount, 0, max_uses) - -/obj/item/device/lightreplacer/proc/AddShards(amount = 1, user) - bulb_shards += amount - var/new_bulbs = round(bulb_shards / shards_required) - if(new_bulbs > 0) - AddUses(new_bulbs) - bulb_shards = bulb_shards % shards_required - if(new_bulbs != 0) - to_chat(user, "\The [src] has fabricated a new bulb from the broken glass it has stored. It now has [uses] uses.") - playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) - return new_bulbs - -/obj/item/device/lightreplacer/proc/Charge(var/mob/user) - charge += 1 - if(charge > 3) - AddUses(1) - charge = 1 - -/obj/item/device/lightreplacer/proc/ReplaceLight(obj/machinery/light/target, mob/living/U) - - if(target.status != LIGHT_OK) - if(CanUse(U)) - if(!Use(U)) return - to_chat(U, "You replace the [target.fitting] with \the [src].") - - if(target.status != LIGHT_EMPTY) - AddShards(1, U) - target.status = LIGHT_EMPTY - target.update() - - var/obj/item/light/L2 = new target.light_type() - - target.status = L2.status - target.switchcount = L2.switchcount - target.rigged = emagged - target.brightness = L2.brightness - target.on = target.has_power() - target.update() - qdel(L2) - - if(target.on && target.rigged) - target.explode() - return - - else - to_chat(U, failmsg) - return - else - to_chat(U, "There is a working [target.fitting] already inserted!") - return - -/obj/item/device/lightreplacer/proc/Emag() - emagged = !emagged - playsound(src.loc, "sparks", 100, 1) - if(emagged) - name = "shortcircuited [initial(name)]" - else - name = initial(name) - update_icon() - -/obj/item/device/lightreplacer/proc/CanUse(mob/living/user) - src.add_fingerprint(user) - if(uses > 0) - return 1 - else - return 0 - -/obj/item/device/lightreplacer/afterattack(atom/T, mob/U, proximity) - if(!proximity) - return - if(!isturf(T)) - return - - var/used = FALSE - for(var/atom/A in T) - if(!CanUse(U)) - break - used = TRUE - if(istype(A, /obj/machinery/light)) - ReplaceLight(A, U) - - if(!used) - to_chat(U, failmsg) - -/obj/item/device/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) - J.put_in_cart(src, user) - J.myreplacer = src - J.update_icon() - -/obj/item/device/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) - return - -#undef LIGHT_OK -#undef LIGHT_EMPTY -#undef LIGHT_BROKEN -#undef LIGHT_BURNED + +/obj/item/device/lightreplacer/attack_self(mob/user) + to_chat(user, status_string()) + +/obj/item/device/lightreplacer/update_icon() + icon_state = "lightreplacer[emagged]" + +/obj/item/device/lightreplacer/proc/status_string() + return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)." + +/obj/item/device/lightreplacer/proc/Use(mob/user) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + AddUses(-1) + return 1 + +// Negative numbers will subtract +/obj/item/device/lightreplacer/proc/AddUses(amount = 1) + uses = Clamp(uses + amount, 0, max_uses) + +/obj/item/device/lightreplacer/proc/AddShards(amount = 1, user) + bulb_shards += amount + var/new_bulbs = round(bulb_shards / shards_required) + if(new_bulbs > 0) + AddUses(new_bulbs) + bulb_shards = bulb_shards % shards_required + if(new_bulbs != 0) + to_chat(user, "\The [src] has fabricated a new bulb from the broken glass it has stored. It now has [uses] uses.") + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + return new_bulbs + +/obj/item/device/lightreplacer/proc/Charge(var/mob/user) + charge += 1 + if(charge > 3) + AddUses(1) + charge = 1 + +/obj/item/device/lightreplacer/proc/ReplaceLight(obj/machinery/light/target, mob/living/U) + + if(target.status != LIGHT_OK) + if(CanUse(U)) + if(!Use(U)) return + to_chat(U, "You replace the [target.fitting] with \the [src].") + + if(target.status != LIGHT_EMPTY) + AddShards(1, U) + target.status = LIGHT_EMPTY + target.update() + + var/obj/item/light/L2 = new target.light_type() + + target.status = L2.status + target.switchcount = L2.switchcount + target.rigged = emagged + target.brightness = L2.brightness + target.on = target.has_power() + target.update() + qdel(L2) + + if(target.on && target.rigged) + target.explode() + return + + else + to_chat(U, failmsg) + return + else + to_chat(U, "There is a working [target.fitting] already inserted!") + return + +/obj/item/device/lightreplacer/proc/Emag() + emagged = !emagged + playsound(src.loc, "sparks", 100, 1) + if(emagged) + name = "shortcircuited [initial(name)]" + else + name = initial(name) + update_icon() + +/obj/item/device/lightreplacer/proc/CanUse(mob/living/user) + src.add_fingerprint(user) + if(uses > 0) + return 1 + else + return 0 + +/obj/item/device/lightreplacer/afterattack(atom/T, mob/U, proximity) + if(!proximity) + return + if(!isturf(T)) + return + + var/used = FALSE + for(var/atom/A in T) + if(!CanUse(U)) + break + used = TRUE + if(istype(A, /obj/machinery/light)) + ReplaceLight(A, U) + + if(!used) + to_chat(U, failmsg) + +/obj/item/device/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) + J.put_in_cart(src, user) + J.myreplacer = src + J.update_icon() + +/obj/item/device/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return + +#undef LIGHT_OK +#undef LIGHT_EMPTY +#undef LIGHT_BROKEN +#undef LIGHT_BURNED diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 607238e2e9..30cec4c5a1 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -8,7 +8,6 @@ w_class = WEIGHT_CLASS_SMALL siemens_coefficient = 1 var/spamcheck = 0 - var/emagged = FALSE var/list/voicespan = list(SPAN_COMMAND) /obj/item/device/megaphone/get_held_item_speechspans(mob/living/carbon/user) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index fa509ad65e..64fea6ef19 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -278,7 +278,6 @@ desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH" icon_state = "megaphone" var/cooldown = 0 - var/emagged = FALSE /obj/item/device/harmalarm/emag_act(mob/user) emagged = !emagged diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 88ec800c00..1447d03ef7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -7,7 +7,7 @@ var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect var/up = 0 //but separated to allow items to protect but not impair vision, like space helmets - var/visor_flags = 0 //flags_1 that are added/removed when an item is adjusted up/down + var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv var/visor_flags_cover = 0 //same as above, but for flags_cover //what to toggle when toggled with weldingvisortoggle() @@ -193,7 +193,6 @@ var/invis_view = SEE_INVISIBLE_LIVING var/invis_override = 0 //Override to allow glasses to set higher than normal see_invis var/lighting_alpha - var/emagged = FALSE var/list/icon/current = list() //the current hud icons var/vision_correction = 0 //does wearing these glasses correct some of our vision defects? strip_delay = 20 @@ -475,6 +474,8 @@ BLIND // can't see anything permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + dynamic_hair_suffix = "" + dynamic_fhair_suffix = "" cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD @@ -783,7 +784,7 @@ BLIND // can't see anything A.UpdateButtonIcon() return TRUE -/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags_1 +/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags up = !up flags_1 ^= visor_flags flags_inv ^= visor_flags_inv diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index c0db06f730..95e78391bb 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -13,7 +13,6 @@ var/last_battery_percent = 0 // Used for deciding if battery percentage has chandged var/last_world_time = "00:00" var/list/last_header_icons - var/emagged = FALSE // Whether the computer is emagged. var/base_active_power_usage = 50 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too. var/base_idle_power_usage = 5 // Power usage when the computer is idle and screen is off (currently only applies to laptops) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 232cb5987e..75066540cf 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -8,7 +8,6 @@ flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY attack_verb = list("poked") - var/emagged = FALSE var/fail_message = "INVALID USER." var/selfdestruct = 0 // Explode when user check is failed. var/force_replace = 0 // Can forcefully replace other pins. From df242431130c230c3dd12b6a11986254b697b365 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 10:04:39 -0700 Subject: [PATCH 055/181] pentawew --- .../structures/crates_lockers/closets.dm | 906 +++++++++--------- .../structures/crates_lockers/closets.dm.rej | 16 - 2 files changed, 453 insertions(+), 469 deletions(-) delete mode 100644 code/game/objects/structures/crates_lockers/closets.dm.rej diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index ce8d45238f..78e672e49d 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -1,453 +1,453 @@ -/obj/structure/closet - name = "closet" - desc = "It's a basic storage unit." - icon = 'icons/obj/closet.dmi' - icon_state = "generic" - density = TRUE - var/icon_door = null - var/icon_door_override = FALSE //override to have open overlay use icon different to its base's - var/secure = FALSE //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights - var/opened = FALSE - var/welded = FALSE - var/locked = FALSE - var/large = TRUE - var/wall_mounted = 0 //never solid (You can always pass over it) - max_integrity = 200 - integrity_failure = 50 - armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60) - var/breakout_time = 2 - var/lastbang - var/can_weld_shut = TRUE - var/horizontal = FALSE - var/allow_objects = FALSE - var/allow_dense = FALSE - var/dense_when_open = FALSE //if it's dense when open or not - var/max_mob_size = MOB_SIZE_HUMAN //Biggest mob_size accepted by the container - var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. - var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate then open it in a populated area to crash clients. - var/cutting_tool = /obj/item/weldingtool - var/open_sound = 'sound/machines/click.ogg' - var/close_sound = 'sound/machines/click.ogg' - var/cutting_sound = 'sound/items/welder.ogg' - var/material_drop = /obj/item/stack/sheet/metal - var/material_drop_amount = 2 - var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable. - var/anchorable = TRUE - - -/obj/structure/closet/Initialize(mapload) - if(mapload && !opened) // if closed, any item at the crate's loc is put in the contents - addtimer(CALLBACK(src, .proc/take_contents), 0) - . = ..() - update_icon() - PopulateContents() - -//USE THIS TO FILL IT, NOT INITIALIZE OR NEW -/obj/structure/closet/proc/PopulateContents() - return - -/obj/structure/closet/Destroy() - dump_contents() - return ..() - -/obj/structure/closet/update_icon() - cut_overlays() - if(!opened) - if(icon_door) - add_overlay("[icon_door]_door") - else - add_overlay("[icon_state]_door") - if(welded) - add_overlay("welded") - if(secure) - if(!broken) - if(locked) - add_overlay("locked") - else - add_overlay("unlocked") - else - add_overlay("off") - - else - if(icon_door_override) - add_overlay("[icon_door]_open") - else - add_overlay("[icon_state]_open") - -/obj/structure/closet/examine(mob/user) - ..() - if(anchored) - to_chat(user, "It is anchored to the ground.") - else if(secure && !opened) - to_chat(user, "Alt-click to [locked ? "unlock" : "lock"].") - -/obj/structure/closet/CanPass(atom/movable/mover, turf/target) - if(wall_mounted) - return 1 - return !density - -/obj/structure/closet/proc/can_open(mob/living/user) - if(welded || locked) - return 0 - var/turf/T = get_turf(src) - for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) - if(user) - to_chat(user, "There's something large on top of [src], preventing it from opening." ) - return 0 - return 1 - -/obj/structure/closet/proc/can_close(mob/living/user) - var/turf/T = get_turf(src) - for(var/obj/structure/closet/closet in T) - if(closet != src && !closet.wall_mounted) - return 0 - for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) - if(user) - to_chat(user, "There's something too large in [src], preventing it from closing.") - return 0 - return 1 - -/obj/structure/closet/proc/dump_contents() - var/atom/L = drop_location() - for(var/atom/movable/AM in src) - AM.forceMove(L) - if(throwing) // you keep some momentum when getting out of a thrown closet - step(AM, dir) - if(throwing) - throwing.finalize(FALSE) - -/obj/structure/closet/proc/take_contents() - var/atom/L = drop_location() - for(var/atom/movable/AM in L) - if(AM != src && insert(AM) == -1) // limit reached - break - -/obj/structure/closet/proc/open(mob/living/user) - if(opened || !can_open(user)) - return - playsound(loc, open_sound, 15, 1, -3) - opened = 1 - if(!dense_when_open) - density = FALSE - climb_time *= 0.5 //it's faster to climb onto an open thing - dump_contents() - update_icon() - return 1 - -/obj/structure/closet/proc/insert(atom/movable/AM) - if(contents.len >= storage_capacity) - return -1 - - - if(ismob(AM)) - if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... - return - var/mob/living/L = AM - if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) - return - if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items. - if(horizontal && L.density) - return - if(L.mob_size > max_mob_size) - return - var/mobs_stored = 0 - for(var/mob/living/M in contents) - if(++mobs_stored >= mob_storage_capacity) - return - L.stop_pulling() - else if(istype(AM, /obj/structure/closet)) - return - else if(isobj(AM)) - if(!allow_objects && !istype(AM, /obj/item) && !istype(AM, /obj/effect/dummy/chameleon)) - return - if(!allow_dense && AM.density) - return - if(AM.anchored || AM.has_buckled_mobs() || (AM.flags_1 & NODROP_1)) - return - else - return - - AM.forceMove(src) - if(AM.pulledby) - AM.pulledby.stop_pulling() - - return 1 - -/obj/structure/closet/proc/close(mob/living/user) - if(!opened || !can_close(user)) - return 0 - take_contents() - playsound(loc, close_sound, 15, 1, -3) - climb_time = initial(climb_time) - opened = 0 - density = TRUE - update_icon() - return 1 - -/obj/structure/closet/proc/toggle(mob/living/user) - if(opened) - return close(user) - else - return open(user) - -/obj/structure/closet/deconstruct(disassembled = TRUE) - if(ispath(material_drop) && material_drop_amount && !(flags_1 & NODECONSTRUCT_1)) - new material_drop(loc, material_drop_amount) - qdel(src) - -/obj/structure/closet/obj_break(damage_flag) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - bust_open() - -/obj/structure/closet/attackby(obj/item/W, mob/user, params) - if(user in src) - return - if(opened) - if(istype(W, cutting_tool)) - if(istype(W, /obj/item/weldingtool)) - var/obj/item/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - to_chat(user, "You begin cutting \the [src] apart...") - playsound(loc, cutting_sound, 40, 1) - if(do_after(user, 40*WT.toolspeed, 1, target = src)) - if(!opened || !WT.isOn()) - return - playsound(loc, cutting_sound, 50, 1) - user.visible_message("[user] slices apart \the [src].", - "You cut \the [src] apart with \the [WT].", - "You hear welding.") - deconstruct(TRUE) - return 0 - else // for example cardboard box is cut with wirecutters - user.visible_message("[user] cut apart \the [src].", \ - "You cut \the [src] apart with \the [W].") - deconstruct(TRUE) - return 0 - if(user.drop_item()) // so we put in unlit welder too - W.forceMove(loc) - return 1 - else if(istype(W, /obj/item/weldingtool) && can_weld_shut) - var/obj/item/weldingtool/WT = W - if(!WT.remove_fuel(0, user)) - return - to_chat(user, "You begin [welded ? "unwelding":"welding"] \the [src]...") - playsound(loc, 'sound/items/welder2.ogg', 40, 1) - if(do_after(user, 40*WT.toolspeed, 1, target = src)) - if(opened || !WT.isOn()) - return - playsound(loc, WT.usesound, 50, 1) - welded = !welded - user.visible_message("[user] [welded ? "welds shut" : "unweldeds"] \the [src].", - "You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].", - "You hear welding.") - update_icon() - else if(istype(W, /obj/item/wrench) && anchorable) - if(isinspace() && !anchored) - return - anchored = !anchored - playsound(src.loc, W.usesound, 75, 1) - user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ - "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ - "You hear a ratchet.") - else if(user.a_intent != INTENT_HARM && !(W.flags_1 & NOBLUDGEON_1)) - if(W.GetID() || !toggle(user)) - togglelock(user) - return 1 - else - return ..() - -/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/living/user) - if(!istype(O) || O.anchored || istype(O, /obj/screen)) - return - if(!istype(user) || user.incapacitated() || user.lying) - return - if(!Adjacent(user) || !user.Adjacent(O)) - return - if(user == O) //try to climb onto it - return ..() - if(!opened) - return - if(!isturf(O.loc)) - return - - var/actuallyismob = 0 - if(isliving(O)) - actuallyismob = 1 - else if(!isitem(O)) - return - var/turf/T = get_turf(src) - var/list/targets = list(O, src) - add_fingerprint(user) - user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \ - "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ - "You hear clanging.") - if(actuallyismob) - if(do_after_mob(user, targets, 40)) - user.visible_message("[user] stuffs [O] into [src].", \ - "You stuff [O] into [src].", \ - "You hear a loud metal bang.") - var/mob/living/L = O - if(!issilicon(L)) - L.Knockdown(40) - O.forceMove(T) - close() - else - O.forceMove(T) - return 1 - -/obj/structure/closet/relaymove(mob/user) - if(user.stat || !isturf(loc) || !isliving(user)) - return - var/mob/living/L = user - if(!open()) - if(L.last_special <= world.time) - container_resist(L) - if(world.time > lastbang+5) - lastbang = world.time - for(var/mob/M in get_hearers_in_view(src, null)) - M.show_message("BANG, bang!", 2) - -/obj/structure/closet/attack_hand(mob/user) - ..() - if(user.lying && get_dist(src, user) > 0) - return - - if(!toggle(user)) - togglelock(user) - return - -/obj/structure/closet/attack_paw(mob/user) - return attack_hand(user) - -/obj/structure/closet/attack_robot(mob/user) - if(user.Adjacent(src)) - return attack_hand(user) - -// tk grab then use on self -/obj/structure/closet/attack_self_tk(mob/user) - return attack_hand(user) - -/obj/structure/closet/verb/verb_toggleopen() - set src in oview(1) - set category = "Object" - set name = "Toggle Open" - - if(!usr.canmove || usr.stat || usr.restrained()) - return - - if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) - attack_hand(usr) - else - to_chat(usr, "This mob type can't use this verb.") - -// Objects that try to exit a locker by stepping were doing so successfully, -// and due to an oversight in turf/Enter() were going through walls. That -// should be independently resolved, but this is also an interesting twist. -/obj/structure/closet/Exit(atom/movable/AM) - open() - if(AM.loc == src) - return 0 - return 1 - -/obj/structure/closet/container_resist(mob/living/user) - if(opened) - return - if(ismovableatom(loc)) - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - var/atom/movable/AM = loc - AM.relay_container_resist(user, src) - return - if(!welded && !locked) - open() - return - - //okay, so the closet is either welded or locked... resist!!! - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - to_chat(user, "You lean on the back of [src] and start pushing the door open.") - visible_message("[src] begins to shake violently!") - if(do_after(user,(breakout_time * 60 * 10), target = src)) //minutes * 60seconds * 10deciseconds - if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) ) - return - //we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting - user.visible_message("[user] successfully broke out of [src]!", - "You successfully break out of [src]!") - bust_open() - else - if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to break out of [src]!") - -/obj/structure/closet/proc/bust_open() - welded = FALSE //applies to all lockers - locked = FALSE //applies to critter crates and secure lockers only - broken = 1 //applies to secure lockers only - open() - -/obj/structure/closet/AltClick(mob/user) - ..() - if(!user.canUseTopic(src, be_close=TRUE)) - to_chat(user, "You can't do that right now!") - return - if(opened || !secure) - return - else - togglelock(user) - -/obj/structure/closet/proc/togglelock(mob/living/user) - if(secure && !broken) - if(allowed(user)) - if(iscarbon(user)) - add_fingerprint(user) - locked = !locked - user.visible_message("[user] [locked ? null : "un"]locks [src].", - "You [locked ? null : "un"]lock [src].") - update_icon() - else - to_chat(user, "Access Denied") - else if(secure && broken) - to_chat(user, "\The [src] is broken!") - -/obj/structure/closet/emag_act(mob/user) - if(secure && !broken) - user.visible_message("Sparks fly from [src]!", - "You scramble [src]'s lock, breaking it open!", - "You hear a faint electrical spark.") - playsound(src, "sparks", 50, 1) - broken = 1 - locked = FALSE - update_icon() - -/obj/structure/closet/get_remote_view_fullscreens(mob/user) - if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) - user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) - -/obj/structure/closet/emp_act(severity) - for(var/obj/O in src) - O.emp_act(severity) - if(secure && !broken) - if(prob(50 / severity)) - locked = !locked - update_icon() - if(prob(20 / severity) && !opened) - if(!locked) - open() - else - req_access = list() - req_access += pick(get_all_accesses()) - ..() - - -/obj/structure/closet/contents_explosion(severity, target) - for(var/atom/A in contents) - A.ex_act(severity, target) - CHECK_TICK - -/obj/structure/closet/singularity_act() - dump_contents() - ..() - -/obj/structure/closet/AllowDrop() - return TRUE +/obj/structure/closet + name = "closet" + desc = "It's a basic storage unit." + icon = 'icons/obj/closet.dmi' + icon_state = "generic" + density = TRUE + var/icon_door = null + var/icon_door_override = FALSE //override to have open overlay use icon different to its base's + var/secure = FALSE //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights + var/opened = FALSE + var/welded = FALSE + var/locked = FALSE + var/large = TRUE + var/wall_mounted = 0 //never solid (You can always pass over it) + max_integrity = 200 + integrity_failure = 50 + armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60) + var/breakout_time = 2 + var/lastbang + var/can_weld_shut = TRUE + var/horizontal = FALSE + var/allow_objects = FALSE + var/allow_dense = FALSE + var/dense_when_open = FALSE //if it's dense when open or not + var/max_mob_size = MOB_SIZE_HUMAN //Biggest mob_size accepted by the container + var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. + var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate then open it in a populated area to crash clients. + var/cutting_tool = /obj/item/weldingtool + var/open_sound = 'sound/machines/click.ogg' + var/close_sound = 'sound/machines/click.ogg' + var/cutting_sound = 'sound/items/welder.ogg' + var/material_drop = /obj/item/stack/sheet/metal + var/material_drop_amount = 2 + var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable. + var/anchorable = TRUE + + +/obj/structure/closet/Initialize(mapload) + if(mapload && !opened) // if closed, any item at the crate's loc is put in the contents + addtimer(CALLBACK(src, .proc/take_contents), 0) + . = ..() + update_icon() + PopulateContents() + +//USE THIS TO FILL IT, NOT INITIALIZE OR NEW +/obj/structure/closet/proc/PopulateContents() + return + +/obj/structure/closet/Destroy() + dump_contents() + return ..() + +/obj/structure/closet/update_icon() + cut_overlays() + if(!opened) + if(icon_door) + add_overlay("[icon_door]_door") + else + add_overlay("[icon_state]_door") + if(welded) + add_overlay("welded") + if(secure) + if(!broken) + if(locked) + add_overlay("locked") + else + add_overlay("unlocked") + else + add_overlay("off") + + else + if(icon_door_override) + add_overlay("[icon_door]_open") + else + add_overlay("[icon_state]_open") + +/obj/structure/closet/examine(mob/user) + ..() + if(anchored) + to_chat(user, "It is anchored to the ground.") + else if(secure && !opened) + to_chat(user, "Alt-click to [locked ? "unlock" : "lock"].") + +/obj/structure/closet/CanPass(atom/movable/mover, turf/target) + if(wall_mounted) + return 1 + return !density + +/obj/structure/closet/proc/can_open(mob/living/user) + if(welded || locked) + return 0 + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(user) + to_chat(user, "There's something large on top of [src], preventing it from opening." ) + return 0 + return 1 + +/obj/structure/closet/proc/can_close(mob/living/user) + var/turf/T = get_turf(src) + for(var/obj/structure/closet/closet in T) + if(closet != src && !closet.wall_mounted) + return 0 + for(var/mob/living/L in T) + if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(user) + to_chat(user, "There's something too large in [src], preventing it from closing.") + return 0 + return 1 + +/obj/structure/closet/proc/dump_contents() + var/atom/L = drop_location() + for(var/atom/movable/AM in src) + AM.forceMove(L) + if(throwing) // you keep some momentum when getting out of a thrown closet + step(AM, dir) + if(throwing) + throwing.finalize(FALSE) + +/obj/structure/closet/proc/take_contents() + var/atom/L = drop_location() + for(var/atom/movable/AM in L) + if(AM != src && insert(AM) == -1) // limit reached + break + +/obj/structure/closet/proc/open(mob/living/user) + if(opened || !can_open(user)) + return + playsound(loc, open_sound, 15, 1, -3) + opened = 1 + if(!dense_when_open) + density = FALSE + climb_time *= 0.5 //it's faster to climb onto an open thing + dump_contents() + update_icon() + return 1 + +/obj/structure/closet/proc/insert(atom/movable/AM) + if(contents.len >= storage_capacity) + return -1 + + + if(ismob(AM)) + if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... + return + var/mob/living/L = AM + if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) + return + if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items. + if(horizontal && L.density) + return + if(L.mob_size > max_mob_size) + return + var/mobs_stored = 0 + for(var/mob/living/M in contents) + if(++mobs_stored >= mob_storage_capacity) + return + L.stop_pulling() + else if(istype(AM, /obj/structure/closet)) + return + else if(isobj(AM)) + if(!allow_objects && !istype(AM, /obj/item) && !istype(AM, /obj/effect/dummy/chameleon)) + return + if(!allow_dense && AM.density) + return + if(AM.anchored || AM.has_buckled_mobs() || (AM.flags_1 & NODROP_1)) + return + else + return + + AM.forceMove(src) + if(AM.pulledby) + AM.pulledby.stop_pulling() + + return 1 + +/obj/structure/closet/proc/close(mob/living/user) + if(!opened || !can_close(user)) + return 0 + take_contents() + playsound(loc, close_sound, 15, 1, -3) + climb_time = initial(climb_time) + opened = 0 + density = TRUE + update_icon() + return 1 + +/obj/structure/closet/proc/toggle(mob/living/user) + if(opened) + return close(user) + else + return open(user) + +/obj/structure/closet/deconstruct(disassembled = TRUE) + if(ispath(material_drop) && material_drop_amount && !(flags_1 & NODECONSTRUCT_1)) + new material_drop(loc, material_drop_amount) + qdel(src) + +/obj/structure/closet/obj_break(damage_flag) + if(!broken && !(flags_1 & NODECONSTRUCT_1)) + bust_open() + +/obj/structure/closet/attackby(obj/item/W, mob/user, params) + if(user in src) + return + if(opened) + if(istype(W, cutting_tool)) + if(istype(W, /obj/item/weldingtool)) + var/obj/item/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + to_chat(user, "You begin cutting \the [src] apart...") + playsound(loc, cutting_sound, 40, 1) + if(do_after(user, 40*WT.toolspeed, 1, target = src)) + if(!opened || !WT.isOn()) + return + playsound(loc, cutting_sound, 50, 1) + user.visible_message("[user] slices apart \the [src].", + "You cut \the [src] apart with \the [WT].", + "You hear welding.") + deconstruct(TRUE) + return 0 + else // for example cardboard box is cut with wirecutters + user.visible_message("[user] cut apart \the [src].", \ + "You cut \the [src] apart with \the [W].") + deconstruct(TRUE) + return 0 + if(user.drop_item()) // so we put in unlit welder too + W.forceMove(loc) + return 1 + else if(istype(W, /obj/item/weldingtool) && can_weld_shut) + var/obj/item/weldingtool/WT = W + if(!WT.remove_fuel(0, user)) + return + to_chat(user, "You begin [welded ? "unwelding":"welding"] \the [src]...") + playsound(loc, 'sound/items/welder2.ogg', 40, 1) + if(do_after(user, 40*WT.toolspeed, 1, target = src)) + if(opened || !WT.isOn()) + return + playsound(loc, WT.usesound, 50, 1) + welded = !welded + user.visible_message("[user] [welded ? "welds shut" : "unweldeds"] \the [src].", + "You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].", + "You hear welding.") + update_icon() + else if(istype(W, /obj/item/wrench) && anchorable) + if(isinspace() && !anchored) + return + anchored = !anchored + playsound(src.loc, W.usesound, 75, 1) + user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ + "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ + "You hear a ratchet.") + else if(user.a_intent != INTENT_HARM && !(W.flags_1 & NOBLUDGEON_1)) + if(W.GetID() || !toggle(user)) + togglelock(user) + return 1 + else + return ..() + +/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/living/user) + if(!istype(O) || O.anchored || istype(O, /obj/screen)) + return + if(!istype(user) || user.incapacitated() || user.lying) + return + if(!Adjacent(user) || !user.Adjacent(O)) + return + if(user == O) //try to climb onto it + return ..() + if(!opened) + return + if(!isturf(O.loc)) + return + + var/actuallyismob = 0 + if(isliving(O)) + actuallyismob = 1 + else if(!isitem(O)) + return + var/turf/T = get_turf(src) + var/list/targets = list(O, src) + add_fingerprint(user) + user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \ + "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ + "You hear clanging.") + if(actuallyismob) + if(do_after_mob(user, targets, 40)) + user.visible_message("[user] stuffs [O] into [src].", \ + "You stuff [O] into [src].", \ + "You hear a loud metal bang.") + var/mob/living/L = O + if(!issilicon(L)) + L.Knockdown(40) + O.forceMove(T) + close() + else + O.forceMove(T) + return 1 + +/obj/structure/closet/relaymove(mob/user) + if(user.stat || !isturf(loc) || !isliving(user)) + return + var/mob/living/L = user + if(!open()) + if(L.last_special <= world.time) + container_resist(L) + if(world.time > lastbang+5) + lastbang = world.time + for(var/mob/M in get_hearers_in_view(src, null)) + M.show_message("BANG, bang!", 2) + +/obj/structure/closet/attack_hand(mob/user) + ..() + if(user.lying && get_dist(src, user) > 0) + return + + if(!toggle(user)) + togglelock(user) + return + +/obj/structure/closet/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/closet/attack_robot(mob/user) + if(user.Adjacent(src)) + return attack_hand(user) + +// tk grab then use on self +/obj/structure/closet/attack_self_tk(mob/user) + return attack_hand(user) + +/obj/structure/closet/verb/verb_toggleopen() + set src in oview(1) + set category = "Object" + set name = "Toggle Open" + + if(!usr.canmove || usr.stat || usr.restrained()) + return + + if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) + attack_hand(usr) + else + to_chat(usr, "This mob type can't use this verb.") + +// Objects that try to exit a locker by stepping were doing so successfully, +// and due to an oversight in turf/Enter() were going through walls. That +// should be independently resolved, but this is also an interesting twist. +/obj/structure/closet/Exit(atom/movable/AM) + open() + if(AM.loc == src) + return 0 + return 1 + +/obj/structure/closet/container_resist(mob/living/user) + if(opened) + return + if(ismovableatom(loc)) + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + var/atom/movable/AM = loc + AM.relay_container_resist(user, src) + return + if(!welded && !locked) + open() + return + + //okay, so the closet is either welded or locked... resist!!! + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + to_chat(user, "You lean on the back of [src] and start pushing the door open.") + visible_message("[src] begins to shake violently!") + if(do_after(user,(breakout_time * 60 * 10), target = src)) //minutes * 60seconds * 10deciseconds + if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) ) + return + //we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting + user.visible_message("[user] successfully broke out of [src]!", + "You successfully break out of [src]!") + bust_open() + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + to_chat(user, "You fail to break out of [src]!") + +/obj/structure/closet/proc/bust_open() + welded = FALSE //applies to all lockers + locked = FALSE //applies to critter crates and secure lockers only + broken = 1 //applies to secure lockers only + open() + +/obj/structure/closet/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + to_chat(user, "You can't do that right now!") + return + if(opened || !secure) + return + else + togglelock(user) + +/obj/structure/closet/proc/togglelock(mob/living/user) + if(secure && !broken) + if(allowed(user)) + if(iscarbon(user)) + add_fingerprint(user) + locked = !locked + user.visible_message("[user] [locked ? null : "un"]locks [src].", + "You [locked ? null : "un"]lock [src].") + update_icon() + else + to_chat(user, "Access Denied") + else if(secure && broken) + to_chat(user, "\The [src] is broken!") + +/obj/structure/closet/emag_act(mob/user) + if(secure && !broken) + user.visible_message("Sparks fly from [src]!", + "You scramble [src]'s lock, breaking it open!", + "You hear a faint electrical spark.") + playsound(src, "sparks", 50, 1) + broken = 1 + locked = FALSE + update_icon() + +/obj/structure/closet/get_remote_view_fullscreens(mob/user) + if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) + +/obj/structure/closet/emp_act(severity) + for(var/obj/O in src) + O.emp_act(severity) + if(secure && !broken) + if(prob(50 / severity)) + locked = !locked + update_icon() + if(prob(20 / severity) && !opened) + if(!locked) + open() + else + req_access = list() + req_access += pick(get_all_accesses()) + ..() + + +/obj/structure/closet/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK + +/obj/structure/closet/singularity_act() + dump_contents() + ..() + +/obj/structure/closet/AllowDrop() + return TRUE diff --git a/code/game/objects/structures/crates_lockers/closets.dm.rej b/code/game/objects/structures/crates_lockers/closets.dm.rej deleted file mode 100644 index 55cd62f8af..0000000000 --- a/code/game/objects/structures/crates_lockers/closets.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm (rejected hunks) -@@ -193,12 +193,12 @@ - return open(user) - - /obj/structure/closet/deconstruct(disassembled = TRUE) -- if(ispath(material_drop) && material_drop_amount && !(flags & NODECONSTRUCT)) -+ if(ispath(material_drop) && material_drop_amount && !(flags_1 & NODECONSTRUCT_1)) - new material_drop(loc, material_drop_amount) - qdel(src) - - /obj/structure/closet/obj_break(damage_flag) -- if(!broken && !(flags & NODECONSTRUCT)) -+ if(!broken && !(flags_1 & NODECONSTRUCT_1)) - bust_open() - - /obj/structure/closet/attackby(obj/item/W, mob/user, params) From f7d9c456d77abb08f0773e6859bda7426bc51f03 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 10:08:24 -0700 Subject: [PATCH 056/181] kek --- strings/brain_damage_lines.json | 1 + strings/brain_damage_lines.json.rej | 11 ----------- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 strings/brain_damage_lines.json.rej diff --git a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json index af040d5ba0..5efd3ac9b2 100644 --- a/strings/brain_damage_lines.json +++ b/strings/brain_damage_lines.json @@ -101,6 +101,7 @@ "SINGULO eNGINE 2 DANGER, SOLARS PLS!", "nerf blob!1", "iM NOT A FUWRRYY!!!", + "DON'T EVER TUCH ME", "FOURTEEN INCHES SOFT!!!" ], diff --git a/strings/brain_damage_lines.json.rej b/strings/brain_damage_lines.json.rej deleted file mode 100644 index da5d21a48b..0000000000 --- a/strings/brain_damage_lines.json.rej +++ /dev/null @@ -1,11 +0,0 @@ -diff a/strings/brain_damage_lines.json b/strings/brain_damage_lines.json (rejected hunks) -@@ -61,7 +61,8 @@ - "@pick(semicolon)N-NYAAAAAA~", - "@pick(bug)", - "@pick(semicolon)wtf??????????? @pick(bug)", -- "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)" -+ "@pick(semicolon)i ran into the supermattre ten i dsappeard @pick(bug)", -+ "DON'T EVER TUCH ME", - ], - - "mutations": [ From 6882163ef6467578d6763f193d2dec0dc226025c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:01:16 -0500 Subject: [PATCH 057/181] Moves comms settings into a new config file --- code/controllers/configuration.dm | 42 ++++++++++++++++++------------- config/comms.txt | 15 +++++++++++ config/config.txt | 16 ------------ 3 files changed, 40 insertions(+), 33 deletions(-) create mode 100644 config/comms.txt diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index abf2c1f937..c4d8335890 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -288,6 +288,7 @@ /datum/configuration/proc/Reload() load("config/config.txt") + load("config/comms.txt", "comms") load("config/game_options.txt","game_options") load("config/policies.txt", "policies") loadsql("config/dbconfig.txt") @@ -443,27 +444,12 @@ fps = text2num(value) if("automute_on") automute_on = 1 - if("comms_key") - global.comms_key = value - if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins - global.comms_allowed = 1 - if("cross_server_address") - cross_address = value - if(value != "byond:\\address:port") - cross_allowed = 1 - if("cross_comms_name") - cross_name = value if("panic_server_name") if (value != "\[Put the name here\]") panic_server_name = value if("panic_server_address") if(value != "byond://address:port") panic_address = value - - if("medal_hub_address") - global.medal_hub = value - if("medal_hub_password") - global.medal_pass = value if("show_irc_name") showircname = 1 if("see_own_notes") @@ -548,8 +534,12 @@ if("irc_announce_new_game") irc_announce_new_game = TRUE else - WRITE_FILE(GLOB.config_error_log, "Unknown setting in configuration: '[name]'") - +#if DM_VERSION > 511 +#error Replace the line below with WRITE_FILE(GLOB.config_error_log, "Unknown setting in configuration: '[name]'") +#endif + HandleCommsConfig(name, value) //TODO: Deprecate this eventually + else if(type == "comms") + HandleCommsConfig(name, value) else if(type == "game_options") switch(name) if("damage_multiplier") @@ -789,6 +779,24 @@ if(fps <= 0) fps = initial(fps) +/datum/configuration/proc/HandleCommsConfig(name, value) + switch(name) + if("comms_key") + global.comms_key = value + if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins + global.comms_allowed = TRUE + if("cross_server_address") + cross_address = value + if(value != "byond:\\address:port") + cross_allowed = TRUE + if("cross_comms_name") + cross_name = value + if("medal_hub_address") + global.medal_hub = value + if("medal_hub_password") + global.medal_pass = value + else + WRITE_FILE(GLOB.config_error_log, "Unknown setting in configuration: '[name]'") /datum/configuration/proc/loadmaplist(filename) var/list/Lines = world.file2list(filename) diff --git a/config/comms.txt b/config/comms.txt new file mode 100644 index 0000000000..4408819f2e --- /dev/null +++ b/config/comms.txt @@ -0,0 +1,15 @@ +## Communication key for receiving data through world/Topic(), you don't want to give this out +#COMMS_KEY default_pwd + +## World address and port for server recieving cross server messages +#CROSS_SERVER_ADDRESS byond:\\address:port + +## Name that the server calls itself in communications +#CROSS_COMMS_NAME + +## Hub address for tracking stats +## example: Hubmakerckey.Hubname +#MEDAL_HUB_ADDRESS + +## Password for the hub page +#MEDAL_HUB_PASSWORD \ No newline at end of file diff --git a/config/config.txt b/config/config.txt index 7497404a89..b344482679 100644 --- a/config/config.txt +++ b/config/config.txt @@ -205,22 +205,6 @@ TICKLAG 0.5 ## Comment this out to disable automuting #AUTOMUTE_ON -## Communication key for receiving data through world/Topic(), you don't want to give this out -#COMMS_KEY default_pwd - -## World address and port for server recieving cross server messages -#CROSS_SERVER_ADDRESS byond:\\address:port - -## Name that the server calls itself in communications -#CROSS_COMMS_NAME - -## Hub address for tracking stats -## example: Hubmakerckey.Hubname -#MEDAL_HUB_ADDRESS - -## Password for the hub page -#MEDAL_HUB_PASSWORD - ## Uncomment this to let players see their own notes (they can still be set by admins only) #SEE_OWN_NOTES From 5bdf18b8619cea0a9ecebddca3a113ccf2881ea5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:03:22 -0500 Subject: [PATCH 058/181] Makes playtitlemusic() waitfor = FALSE --- code/game/sound.dm.rej | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/sound.dm.rej b/code/game/sound.dm.rej index 003c8b9975..007e3e17b5 100644 --- a/code/game/sound.dm.rej +++ b/code/game/sound.dm.rej @@ -1,9 +1,9 @@ diff a/code/game/sound.dm b/code/game/sound.dm (rejected hunks) -@@ -145,7 +145,3 @@ - if ("can_open") - soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') - return soundin -- --/proc/playsound_global(file, repeat = 0, wait, channel, volume) -- for(var/V in GLOB.clients) -- V << sound(file, repeat, wait, channel, volume) +@@ -98,6 +98,7 @@ + SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = chan)) + + /client/proc/playtitlemusic(vol = 85) ++ set waitfor = FALSE + UNTIL(SSticker.login_music) //wait for SSticker init to set the login music + + if(prefs && (prefs.toggles & SOUND_LOBBY)) From 6f013d3d477b61358774279e4e2336c733300550 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:05:32 -0500 Subject: [PATCH 059/181] Stealth Option for RadioactiveMicro --- code/game/objects/items/devices/traitordevices.dm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 8de8bcd772..a74ea61e06 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -75,14 +75,16 @@ effective or pretty fucking useless. var/intensity = 10 // how much damage the radiation does var/wavelength = 10 // time it takes for the radiation to kick in, in seconds var/used = 0 // is it cooling down? + var/stealth = FALSE /obj/item/device/healthanalyzer/rad_laser/attack(mob/living/M, mob/living/user) - ..() + if(!stealth || !irradiate) + ..() if(!irradiate) return if(!used) add_logs(user, M, "irradiated", src) - var/cooldown = round(max(10, (intensity*5 - wavelength/4))) * 10 + var/cooldown = GetCooldown() used = 1 icon_state = "health1" handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength @@ -103,11 +105,15 @@ effective or pretty fucking useless. /obj/item/device/healthanalyzer/rad_laser/attack_self(mob/user) interact(user) +/obj/item/device/healthanalyzer/rad_laser/proc/GetCooldown() + return round(max(10, (stealth*30 + intensity*5 - wavelength/4))) + /obj/item/device/healthanalyzer/rad_laser/interact(mob/user) user.set_machine(src) - var/cooldown = round(max(10, (intensity*5 - wavelength/4))) + var/cooldown = GetCooldown() var/dat = "Irradiation: [irradiate ? "On" : "Off"]
" + dat += "Stealth Mode (NOTE: Deactivates automatically while Irradiation is off): [stealth ? "On" : "Off"]
" dat += "Scan Mode: " if(!scanmode) dat += "Scan Health" @@ -141,6 +147,9 @@ effective or pretty fucking useless. usr.set_machine(src) if(href_list["rad"]) irradiate = !irradiate + + else if(href_list["stealthy"]) + stealth = !stealth else if(href_list["mode"]) scanmode += 1 From 38284056df4023d6c8e7d11a43d8561962976216 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:06:37 -0500 Subject: [PATCH 060/181] Fix rare AI tracking bug --- code/game/machinery/camera/tracking.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 7b8007755b..1df8fc11e6 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -58,12 +58,12 @@ human = 1 var/name = M.name - if (name in track.names) + while(name in track.names) track.namecounts[name]++ name = text("[] ([])", name, track.namecounts[name]) - else - track.names.Add(name) - track.namecounts[name] = 1 + track.names.Add(name) + track.namecounts[name] = 1 + if(human) track.humans[name] = M else From 5f3775388cae4a612c54077407362b7329f9353f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:08:43 -0500 Subject: [PATCH 061/181] Gives cult blades updated item and inhand sprites --- code/game/gamemodes/cult/cult_items.dm | 6 ++++-- code/game/gamemodes/cult/cult_items.dm.rej | 18 +++++++++--------- code/game/objects/items/holy_weapons.dm | 4 ++++ icons/mob/inhands/64x64_lefthand.dmi | Bin 8805 -> 11705 bytes icons/mob/inhands/64x64_righthand.dmi | Bin 8883 -> 11687 bytes icons/obj/items_and_weapons.dmi | Bin 145168 -> 145318 bytes 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 54536db73c..ad7174f02a 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -3,8 +3,10 @@ desc = "A sword humming with unholy energy. It glows with a dim red light." icon_state = "cultblade" item_state = "cultblade" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 flags_1 = CONDUCT_1 sharpness = IS_SHARP w_class = WEIGHT_CLASS_BULKY diff --git a/code/game/gamemodes/cult/cult_items.dm.rej b/code/game/gamemodes/cult/cult_items.dm.rej index cb9c6324c1..5fbfc399bf 100644 --- a/code/game/gamemodes/cult/cult_items.dm.rej +++ b/code/game/gamemodes/cult/cult_items.dm.rej @@ -1,10 +1,10 @@ diff a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm (rejected hunks) -@@ -31,7 +31,7 @@ - /obj/item/melee/cultblade/ghost - name = "eldritch sword" - force = 19 //can't break normal airlocks -- flags = NODROP|DROPDEL -+ flags_1 = NODROP_1|DROPDEL_1 - - /obj/item/melee/cultblade/pickup(mob/living/user) - ..() +@@ -55,6 +57,8 @@ + item_state = "knife" + lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' ++ inhand_x_dimension = 32 ++ inhand_y_dimension = 32 + w_class = WEIGHT_CLASS_SMALL + force = 15 + throwforce = 25 diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 6d377cdcc5..5a5d9dd2e6 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -105,6 +105,10 @@ /obj/item/nullrod/claymore/darkblade icon_state = "cultblade" item_state = "cultblade" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 name = "dark blade" desc = "Spread the glory of the dark gods!" slot_flags = SLOT_BELT diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index ba2f54dac334d560a3eff6c2a240ba4e121ea72d..a9a952733a6e37b808eeb72831589e7d92899fad 100644 GIT binary patch literal 11705 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 literal 8805 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 KUwGE;;r{^?VgfDz diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index 05023605fad7a0e90f58d3d213fa5710520d4cce..bff96a991ba78b9141e37a998dadb5269fcbd5f1 100644 GIT binary patch literal 11687 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 Vr-YYBmhbnzA73}tJH&OA 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 diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 92ce2efa3ee679c0a544c4a0c064d3bbfb25429c..7667672715a1cf1d5725f1f76dbe51b1e4b555cc 100644 GIT binary patch delta 23795 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 Wvd1vjV6cTabS%O From 4dc8a1adbce0dd8d1a7c4b73bf4eb41499bbc8e7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:09:53 -0500 Subject: [PATCH 062/181] Workaround to prevent slippery components from flooding SSgarbage --- code/game/turfs/open.dm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index bc0af068c5..9c61c1453f 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -219,19 +219,30 @@ HandleWet() /turf/open/proc/UpdateSlip() + var/intensity + var/lube_flags switch(wet) if(TURF_WET_WATER) - AddComponent(/datum/component/slippery, 60, NO_SLIP_WHEN_WALKING) + intensity = 60 + lube_flags = NO_SLIP_WHEN_WALKING if(TURF_WET_LUBE) - AddComponent(/datum/component/slippery, 80, SLIDE | GALOSHES_DONT_HELP) + intensity = 80 + lube_flags = SLIDE | GALOSHES_DONT_HELP if(TURF_WET_ICE) - AddComponent(/datum/component/slippery, 120, SLIDE | GALOSHES_DONT_HELP) + intensity = 120 + lube_flags = SLIDE | GALOSHES_DONT_HELP if(TURF_WET_PERMAFROST) - AddComponent(/datum/component/slippery, 120, SLIDE_ICE | GALOSHES_DONT_HELP) + intensity = 120 + lube_flags = SLIDE_ICE | GALOSHES_DONT_HELP if(TURF_WET_SLIDE) - AddComponent(/datum/component/slippery, 80, SLIDE | GALOSHES_DONT_HELP) + intensity = 80 + lube_flags = SLIDE | GALOSHES_DONT_HELP else qdel(GetComponent(/datum/component/slippery)) + return + var/datum/component/slippery/S = LoadComponent(/datum/component/slippery) + S.intensity = intensity + S.lube_flags = lube_flags /turf/open/ComponentActivated(datum/component/C) ..() From 719717934c6e6cbc9494bfa284d2ed9f7fcbd964 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:10:59 -0500 Subject: [PATCH 063/181] Makes the singularity eat asteroids, adds a planetary z-level list with a helper that adds maps to it --- _maps/RandomZLevels/Cabin.dmm | 6 +- _maps/RandomZLevels/caves.dmm | 6 +- _maps/RandomZLevels/moonoutpost19.dmm | 880 +++++++++--------- _maps/RandomZLevels/snowdin.dmm | 6 +- _maps/RandomZLevels/spacebattle.dmm | 36 +- _maps/RandomZLevels/undergroundoutpost45.dmm | 56 +- _maps/map_files/Mining/Lavaland.dmm | 6 +- code/__HELPERS/unsorted.dm | 4 + .../simulated/floor/plating/asteroid.dm.rej | 14 + code/modules/mapping/mapping_helpers.dm | 18 + 10 files changed, 548 insertions(+), 484 deletions(-) create mode 100644 code/game/turfs/simulated/floor/plating/asteroid.dm.rej diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index a0a4907b02..b4869790a8 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -975,6 +975,10 @@ }, /turf/open/floor/plating, /area/awaymission/cabin) +"dw" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock/snow, +/area/space) (1,1,1) = {" aa @@ -1231,7 +1235,7 @@ aa aa aa aa -aa +dw "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 024abd1968..5c89b42453 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -2973,6 +2973,10 @@ initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/BMPship) +"gW" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock, +/area/space) (1,1,1) = {" aa @@ -3229,7 +3233,7 @@ aa aa aa aa -aa +gW "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 5daed4908c..22f0169437 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -10575,6 +10575,10 @@ has_gravity = 1; name = "MO19 Research" }) +"oV" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/space, +/area/space) (1,1,1) = {" aa @@ -10831,7 +10835,7 @@ aa aa aa aa -aa +oV "} (2,1,1) = {" aa @@ -29943,10 +29947,10 @@ ac ac ac ac -af -ae ad -ae +ad +ad +ad ac ac ac @@ -30200,10 +30204,10 @@ ac ac ad ad -af -hl -ah -af +ad +hk +ag +ad ad ad ac @@ -30455,14 +30459,14 @@ ac ac ac ac -ae +ad ai -ah -al +ag +ag ai hk ai -af +ad ad ac ac @@ -30711,16 +30715,16 @@ ac ac ac ac -ae -af +ad +ad hk -aq +ai ai hk -bb -ar -ah -af +aM +ai +ag +ad ac ac ac @@ -30968,13 +30972,13 @@ ac ac ac ac -af +ad +ai ai -aq aD -an -aq -ar +aj +ai +ai aD ai ad @@ -31227,14 +31231,14 @@ ac ac ad ai -ar -an -ar +ai +aj +ai aT av bj bc -ae +ad ac ac ac @@ -31482,16 +31486,16 @@ ac ac ac ac -ae -ah +ad +ag au ai -aq -ar +ai +ai bc av -ar -af +ai +ad ac ac ac @@ -31739,16 +31743,16 @@ ac ac ac ac -af -ao +ad +aj av -aq +ai ai am -ar -bk -al -ae +ai +au +ag +ad ac ac ac @@ -31999,13 +32003,13 @@ ac ad ap aw -ar -aq -aq -ar -al -aq -af +ai +ai +ai +ai +ag +ai +ad ac ac ac @@ -32253,11 +32257,11 @@ ac ac ac ac -ae -aq -ax -af -aq +ad +ai +av +ad +ai ai ai aD @@ -32511,31 +32515,31 @@ ac ac ac ad -af -ar -ai -ar -ai -ar -ar -aq -af -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -af -ae ad -ae +ai +ai +ai +ai +ai +ai +ai +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad ac ac ac @@ -32768,15 +32772,15 @@ ac ac ac ac -ae +ad ag -aq ai -aq ai -ar -aq -ae +ai +ai +ai +ai +ad ac ac ac @@ -32788,12 +32792,12 @@ ac ac ac ac -ae +ad ad dO aj -af -ae +ad +ad ac ac ac @@ -33025,15 +33029,15 @@ ac ac ac ac -af -ae -ar -aq -am -ar +ad +ad ai -af -af +ai +am +ai +ai +ad +ad ac ac ac @@ -33045,12 +33049,12 @@ ac ac ac ad -ae +ad ag -aL +av dS -ar -af +ai +ad ac ac ac @@ -33283,12 +33287,12 @@ ac ac ac ac -af -ae +ad +ad ai -ar -aq -ae +ai +ai +ad ad ac ac @@ -33301,12 +33305,12 @@ ac ac ac ac -af +ad aj -ar +ai am ai -ah +ag ad ac ac @@ -33541,11 +33545,11 @@ ac ac ac ac -af -af ad -af -af +ad +ad +ad +ad ac ac ac @@ -33557,13 +33561,13 @@ ac ac ac ad -ae -af -aq +ad +ad +ai +ai ai -ar aj -ae +ad ad ac ac @@ -33798,10 +33802,10 @@ ac ac ac ac -ae +ad am am -ae +ad ac ac ac @@ -33812,14 +33816,14 @@ ac ac ac ac -ae -ae -ar +ad +ad +ai ak ai -ah -ae -af +ag +ad +ad ad ac ac @@ -34055,27 +34059,27 @@ ac ac ac ac -af -ai -aq ad -ae +ai +ai +ad +ad ac ad -ae -af -ae -af ad -ae -ae -af +ad +ad +ad +ad +ad +ad +ad +ai ai -aq -ae -af ad -ae +ad +ad +ad ac ac ac @@ -34313,23 +34317,23 @@ ac ac ac ad -ar -ar -ai -af -af -ae -ar -ai -ar -aq ai ai -af +ai +ad +ad ad ai -af -ae +ai +ai +ai +ai +ai +ad +ad +ai +ad +ad ac ac ac @@ -34569,22 +34573,22 @@ ac ac ac ac -ae -ae +ad +ad +ai +ai +ai +ad +ai +ai ai ai -aq -af ai -ar -aq ai -ar -aq am -ar ai -aq +ai +ai ad ac ac @@ -34821,27 +34825,27 @@ ab ab ac ad -af -ae +ad +ad ad ac ac ac ad -af -aq -am -aq -ar +ad ai -af -ae -af -ae -ar -aq -ar -ae +am +ai +ai +ai +ad +ad +ad +ad +ai +ai +ai +ad ad ac ac @@ -35077,28 +35081,28 @@ ab ab ab ad -af -ah +ad +ag aj -ae -af -ae ad -ae -af -ar -aq +ad +ad +ad +ad +ad ai -aq -ae +ai +ai +ai +ad ad bl bl ad -af +ad ai -aq -af +ai +ad ac ac ac @@ -35333,29 +35337,29 @@ ab ab ab ab -ae +ad ag ai ak ai ad -af -ar +ad ai -aq ai -ar -ar -af +ai +ai +ai +ai +ad ad bl bl bl -ae -ar -ar +ad ai -ae +ai +ai +ad ac ac ac @@ -35591,27 +35595,27 @@ ab ab ab ad -ah +ag ai -al +ag am -ar ai -aq -af -ae -aq -af -ae -af -bl -bl -bl -bl -af ai -aq -af +ai +ad +ad +ai +ad +ad +ad +bl +bl +bl +bl +ad +ai +ai +ad ad ac ac @@ -35847,14 +35851,14 @@ ab ab ab ab -ae -af -af +ad +ad +ad +aj aj -an ad -af -ae +ad +ad ad ad ai @@ -35865,10 +35869,10 @@ bl bl bl bl -af -aq +ad ai -af +ai +ad ac ac ac @@ -36106,17 +36110,17 @@ ab ab ac ac -ae -af -af -ae +ad +ad +ad +ad ac ac ac -af +ad aM -af -ae +ad +ad bl bl bl @@ -36126,7 +36130,7 @@ ad ai dd ad -af +ad ad ac ac @@ -36134,8 +36138,8 @@ ac dA dA dA -dR -dU +dP +dT ba ba ba @@ -36370,27 +36374,27 @@ ac ac ac ac -af -aq +ad ai -ae -bl -bl -bl -bl -bl -ae -ar -aq -ar ai -af -ae -af +ad +bl +bl +bl +bl +bl +ad +ai +ai +ai +ai +ad +ad +ad ac dA dA -dW +dP dP dT ba @@ -36626,30 +36630,30 @@ ac ac ac ad -af -ae -ar -ar -af +ad +ad +ai +ai +ad ad bl bl bl bl -af -af -ai -aq -aq -ai -ar ad -af +ad +ai +ai +ai +ai +ai +ad +ad +dP dP -dR dV dT -dU +dT ba ba ba @@ -36882,31 +36886,31 @@ ac ac ac ad -ae +ad aJ ai -ar +ai am ag -ae +ad bl bl bl ad -af +ad +ai +ai +ad +ad +ai ai -ar -ae -af ai -aq -ar ad dQ dT -dX -dU -dX +dT +dT +dT ba ba ba @@ -37138,32 +37142,32 @@ ac ac ac ac -af +ad aE aK ak ai ag -an -af -bl -bl -bl -ae -ai -aq -af -ae +aj +ad +bl +bl +bl +ad +ai +ai +ad +ad +ad ad -af ai am ad dQ -dU -dX dT -dU +dT +dT +dT ba ba ba @@ -37395,32 +37399,32 @@ ac ac ac ac -af +ad aj -aL -aq -ao -an -af +av +ai +aj +aj +ad ad bl bl bl -af -ar -ae -af -ac -ac -ae -af ad -af -dR +ai +ad +ad +ac +ac +ad +ad +ad +ad +dP dV -dU -dX -dU +dT +dT +dT ba ba ba @@ -37652,20 +37656,20 @@ ac ac ac ac -ae ad -af +ad +ad ai -af -af -ae +ad +ad +ad bl bl bl bl ad -aq -af +ai +ad ad ac ac @@ -37674,9 +37678,9 @@ ac ac dA dA -dR +dP +dT dT -dU ba ba ba @@ -37911,19 +37915,19 @@ ac ac ac ac -ae -aq -ae +ad +ai +ad bl bl bl bl bl bl -ae +ad ai ai -ae +ad ac ac ac @@ -37932,7 +37936,7 @@ ac dA dA dP -dX +dT dT ba ba @@ -38169,27 +38173,27 @@ ac ac ac ad -aq -af +ai +ad bl bl bl bl bl bl -ae -af +ad +ad am -af +ad ac ac ac ac dA dA -dR -dR -dU +dP +dP +dT ba ba ba @@ -38425,7 +38429,7 @@ ac ac ac ac -ae +ad am ad bl @@ -38436,15 +38440,15 @@ bl bl bl ad -aq -ae +ai +ad ac ac ac ac dA dA -dR +dP ba ba ba @@ -38682,9 +38686,9 @@ ac ac ac ac -af -aq -ae +ad +ai +ad bl bl bl @@ -38692,9 +38696,9 @@ bl bl bl bl -af -ar -af +ad +ai +ad ac ac ac @@ -38939,19 +38943,19 @@ ac ac ac ac -ae +ad ai -af +ad bl bl bl bl bl bl -af -ae +ad +ad ai -ae +ad ac ac ac @@ -39196,18 +39200,18 @@ ac ac ac ac -af -ar -ae +ad +ai +ad bl bl bl bl bl ad -ae +ad +ai ai -aq ad ac ac @@ -39453,19 +39457,19 @@ ac ac ac ad -af -aq -af ad -ae -af -af +ai +ad +ad +ad +ad +ad +ad +ad +ai +ai +ad ad -af -aq -ar -ae -af ac ac ac @@ -39709,18 +39713,18 @@ ac ac ac ad -af -ar +ad +ai +ai +ag +ad +ad ai -al -ae -af ai -ar bW ai -ar -af +ai +ad ad ac ac @@ -39965,19 +39969,19 @@ ac ac ac ac -ae -an -aM -aq -ai -ar -aq -aq ad -af -ae -af -ae +aj +aM +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad ac ac ac @@ -40221,16 +40225,16 @@ ac ac ac ac -af -af -ah -ar +ad +ad +ag +ai am ai ag -af -ae -af +ad +ad +ad ac ac ac @@ -40478,13 +40482,13 @@ ac ac ac ac -ae +ad ag -ar ai -ao -an -af +ai +aj +aj +ad ad ac ac @@ -40736,12 +40740,12 @@ ac ac ac as -af -ae -af ad -ae -af +ad +ad +ad +ad +ad ac ac ac @@ -41800,7 +41804,7 @@ ba ba ea eg -ew +eg eI fj fA @@ -43087,7 +43091,7 @@ ea ea eA eq -eD +eq fF gc gu @@ -43343,10 +43347,10 @@ ba ea el er -eE +eq en fG -eG +em gv gM ha @@ -43600,13 +43604,13 @@ ba ea em eB -eG -eR +em +en fH -gd -eC +el +en eB -eE +eq ea ba ba @@ -43856,13 +43860,13 @@ ba ba ea en -eC -eP -eE -fI -eE -eD -eC +en +eH +eq +fH +eq +eq +en eq ea ba @@ -44113,11 +44117,11 @@ ba ba ec eo -eD +eq eq eq fJ -eE +eq eq en hb @@ -44370,11 +44374,11 @@ ba ba ea ep -eE -eP -eD -eD -eE +eq +eH +eq +eq +eq eq eQ hc @@ -44629,9 +44633,9 @@ ea eq eF eQ -fo -eC -ge +eH +en +fp eq en eq @@ -44884,12 +44888,12 @@ ba ba ea er -eG -eR +em +en en eQ -eC -eR +en +en eB eq ea @@ -45140,14 +45144,14 @@ ba ba ba ea -es +el eH eB fp fK eH -fo -eD +eH +eq eq ea ba diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 7acf9a7b3a..a18c9f18c8 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -5278,6 +5278,10 @@ }, /turf/open/floor/plating/asteroid/snow, /area/awaymission/snowdin) +"nR" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowdin) (1,1,1) = {" aa @@ -5534,7 +5538,7 @@ aa aa aa aa -aa +nR "} (2,1,1) = {" aa diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index c554618c9a..1b803966d3 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -3065,6 +3065,10 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) +"kM" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/closed/mineral/random, +/area/space) (1,1,1) = {" aa @@ -3321,7 +3325,7 @@ aa aa aa aa -aa +kM "} (2,1,1) = {" aa @@ -38141,17 +38145,17 @@ bT cd bT bT -eF -eQ -eQ -eQ -eQ -eQ -eQ -eQ -eQ -eQ -eQ +cY +eb +eb +eb +eb +eb +eb +eb +eb +eb +eb ha bT bT @@ -48177,7 +48181,7 @@ jS jS bT kd -ko +ki ix ab ab @@ -48691,7 +48695,7 @@ jS jS bT kd -ko +ki kr kx ab @@ -49205,7 +49209,7 @@ jS jS bT kd -ko +ki kr kx ab @@ -49719,7 +49723,7 @@ jS jS bT kd -ko +ki kr kz ab diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 575af3c075..a22555c6c8 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -17834,6 +17834,10 @@ power_light = 0; poweralm = 0 }) +"zi" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/space, +/area/space) (1,1,1) = {" aa @@ -18090,7 +18094,7 @@ aa aa aa aa -aa +zi "} (2,1,1) = {" aa @@ -36521,9 +36525,9 @@ ad ad ad ad -ys +yk yw -yx +yn ad ad ad @@ -37036,7 +37040,7 @@ ad ad ad ad -yx +yn eJ yB ad @@ -37298,8 +37302,8 @@ eJ eJ yr ad -yF -yG +yA +yj ad ad ad @@ -37554,8 +37558,8 @@ ad ad yC eJ -yE -yv +yw +ym yH ad ad @@ -37811,7 +37815,7 @@ ad ad ad eJ -yx +yn eJ yz ad @@ -38320,7 +38324,7 @@ ad yl eJ yq -yv +ym ad ad yz @@ -38578,7 +38582,7 @@ ad eJ eJ eJ -yy +yn ad yD eJ @@ -38588,8 +38592,8 @@ ad ad ad ad -yG -yy +yj +yn ad ad ad @@ -38835,17 +38839,17 @@ ad ad yr yn -yy yn -yx +yn +yn eJ eJ ad ad ad ad -yI -yv +yp +ym yA ad ad @@ -39092,7 +39096,7 @@ ad ad ad ad -yx +yn eJ eJ eJ @@ -39353,7 +39357,7 @@ yz eJ eJ eJ -yy +yn eJ eJ eJ @@ -39609,12 +39613,12 @@ ad yp yq eJ -yy yn -yv +yn +ym eJ -yy -yy +yn +yn ad ad ad @@ -39864,14 +39868,14 @@ ad ad ad yA -yx +yn eJ yn ad ad yw -yG -ys +yj +yk ad ad ad diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 9a982211b4..3e53168c2e 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -3420,6 +3420,10 @@ /obj/effect/baseturf_helper/lava_land/surface, /turf/open/floor/plasteel, /area/mine/production) +"Wz" = ( +/obj/effect/mapping_helpers/planet_z, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) (1,1,1) = {" aa @@ -3676,7 +3680,7 @@ aj aj aj aj -aj +Wz "} (2,1,1) = {" aa diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 918fd0b28c..05a0c9c3f1 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1453,3 +1453,7 @@ GLOBAL_PROTECT(valid_HTTPSGet) var/temp = bitfield - ((bitfield>>1)&46811) - ((bitfield>>2)&37449) //0133333 and 0111111 respectively temp = ((temp + (temp>>3))&29127) % 63 //070707 return temp + +//checks if a turf is in the planet z list. +/proc/turf_z_is_planet(turf/T) + return GLOB.z_is_planet["[T.z]"] diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm.rej b/code/game/turfs/simulated/floor/plating/asteroid.dm.rej new file mode 100644 index 0000000000..d8845745e8 --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm.rej @@ -0,0 +1,14 @@ +diff a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm (rejected hunks) +@@ -101,10 +101,9 @@ + return + + /turf/open/floor/plating/asteroid/singularity_act() +- if(!turf_z_is_planet(src)) +- ChangeTurf(/turf/open/space) +- else ++ if(turf_z_is_planet(src)) + return ..() ++ ChangeTurf(/turf/open/space) + + /turf/open/floor/plating/asteroid/singularity_pull(S, current_size) + return diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index cf82921646..e70786f80d 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -49,3 +49,21 @@ /obj/effect/baseturf_helper/lava_land/surface name = "lavaland baseturf editor" baseturf = /turf/open/lava/smooth/lava_land_surface + + +//Contains the list of planetary z-levels defined by the planet_z helper. +GLOBAL_LIST_EMPTY(z_is_planet) + +/obj/effect/mapping_helpers/planet_z //adds the map it is on to the z_is_planet list + name = "planet z helper" + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "syndballoon" + layer = POINT_LAYER + +/obj/effect/mapping_helpers/planet_z/Initialize() + . = ..() + var/turf/T = get_turf(src) + if(!turf_z_is_planet(T)) + GLOB.z_is_planet["[T.z]"] = list() + qdel(src) + From 9c63ab2d3998d7e22d5be842441df53617c87824 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:14:07 -0500 Subject: [PATCH 064/181] Shadow Walk/New Shadowling movement spell --- .../modules/spells/spell_types/shadow_walk.dm | 95 +++++++++++++++++++ tgstation.dme | 1 + 2 files changed, 96 insertions(+) create mode 100644 code/modules/spells/spell_types/shadow_walk.dm diff --git a/code/modules/spells/spell_types/shadow_walk.dm b/code/modules/spells/spell_types/shadow_walk.dm new file mode 100644 index 0000000000..546b960793 --- /dev/null +++ b/code/modules/spells/spell_types/shadow_walk.dm @@ -0,0 +1,95 @@ +/obj/effect/proc_holder/spell/targeted/shadowwalk + name = "Shadow Walk" + desc = "Grants unlimited movement in darkness." + charge_max = 0 + clothes_req = 0 + phase_allowed = 1 + selection_type = "range" + range = -1 + include_user = 1 + cooldown_min = 0 + overlay = null + action_icon = 'icons/mob/actions/actions_minor_antag.dmi' + action_icon_state = "ninja_cloak" + action_background_icon_state = "bg_alien" + +/obj/effect/proc_holder/spell/targeted/shadowwalk/cast(list/targets,mob/user = usr) + var/L = user.loc + if(istype(user.loc, /obj/effect/dummy/shadow)) + var/obj/effect/dummy/shadow/S = L + S.end_jaunt(FALSE) + return + else + var/turf/T = get_turf(user) + var/light_amount = T.get_lumcount() + if(light_amount < 0.2) + playsound(get_turf(user), 'sound/magic/ethereal_enter.ogg', 50, 1, -1) + visible_message("[user] melts into the shadows!") + var/obj/effect/dummy/shadow/S2 = new(get_turf(user.loc)) + user.forceMove(S2) + S2.jaunter = user + else + to_chat(user, "It isn't dark enough here!") + +/obj/effect/dummy/shadow + name = "darkness" + icon = 'icons/effects/effects.dmi' + icon_state = "nothing" + var/canmove = 1 + var/mob/living/jaunter + density = FALSE + anchored = TRUE + invisibility = 60 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/dummy/shadow/relaymove(mob/user, direction) + var/turf/newLoc = get_step(src,direction) + if(isspaceturf(newLoc)) + to_chat(user, "It really would not be wise to go into space.") + return + forceMove(newLoc) + check_light_level() + +/obj/effect/dummy/shadow/proc/check_light_level() + var/turf/T = get_turf(src) + var/light_amount = T.get_lumcount() + if(light_amount > 0.2) // jaunt ends + end_jaunt(TRUE) + else if (light_amount < 0.2 && (!QDELETED(jaunter))) //heal in the dark + jaunter.heal_overall_damage(1,1) + +/obj/effect/dummy/shadow/proc/end_jaunt(forced = FALSE) + if(jaunter) + if(forced) + visible_message("[jaunter] is revealed by the light!") + else + visible_message("[jaunter] emerges from the darkness!") + jaunter.forceMove(get_turf(src)) + playsound(get_turf(jaunter), 'sound/magic/ethereal_exit.ogg', 50, 1, -1) + jaunter = null + qdel(src) + +/obj/effect/dummy/shadow/Initialize(mapload) + . = ..() + START_PROCESSING(SSobj, src) + +/obj/effect/dummy/shadow/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/effect/dummy/shadow/process() + if(!jaunter) + qdel(src) + if(jaunter.loc != src) + qdel(src) + check_light_level() + +/obj/effect/dummy/shadow/ex_act() + return + +/obj/effect/dummy/shadow/bullet_act() + return + +/obj/effect/dummy/shadow/singularity_act() + return + diff --git a/tgstation.dme b/tgstation.dme index bca2fda847..d5b67070b4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2150,6 +2150,7 @@ #include "code\modules\spells\spell_types\rightandwrong.dm" #include "code\modules\spells\spell_types\rod_form.dm" #include "code\modules\spells\spell_types\santa.dm" +#include "code\modules\spells\spell_types\shadow_walk.dm" #include "code\modules\spells\spell_types\shapeshift.dm" #include "code\modules\spells\spell_types\spacetime_distortion.dm" #include "code\modules\spells\spell_types\summonitem.dm" From 605963d45c92b639e0b2a93048e274c14205c390 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:15:12 -0500 Subject: [PATCH 065/181] AltClick Improvements --- code/_onclick/click.dm | 2 +- code/modules/mob/mob.dm | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 4688e348b8..0eeca2eaf7 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -355,7 +355,7 @@ else user.listed_turf = T user.client.statpanel = T.name - return + user.Stat() //responsive ui pls /mob/proc/TurfAdjacent(turf/T) return T.Adjacent(src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 5d3d21f082..297f788001 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -623,6 +623,8 @@ continue if(overrides.len && (A in overrides)) continue + if(A.IsObscured()) + continue statpanel(listed_turf.name, null, A) From 3e1031d6b9171d9b8e19d6b88ff55d40d1f3ec1d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 29 Aug 2017 17:45:50 -0500 Subject: [PATCH 066/181] Adds a ghost verb to see all available ghost spawners --- code/_globalvars/lists/objects.dm | 2 + code/datums/spawners_menu.dm | 48 ++++++++++++++++++++++ code/modules/awaymissions/corpse.dm | 7 +++- code/modules/mob/dead/observer/observer.dm | 16 +++++++- tgstation.dme | 1 + tgui/assets/tgui.js.rej | 45 ++++++++++++++------ tgui/src/interfaces/spawners_menu.ract | 18 ++++++++ 7 files changed, 121 insertions(+), 16 deletions(-) create mode 100644 code/datums/spawners_menu.dm create mode 100644 tgui/src/interfaces/spawners_menu.ract diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 9ad2d6c969..5defb16551 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -35,3 +35,5 @@ GLOBAL_LIST_EMPTY(wire_color_directory) GLOBAL_LIST_EMPTY(wire_name_directory) GLOBAL_LIST_EMPTY(ai_status_displays) + +GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects \ No newline at end of file diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm new file mode 100644 index 0000000000..cc031d70bb --- /dev/null +++ b/code/datums/spawners_menu.dm @@ -0,0 +1,48 @@ +/datum/spawners_menu + var/mob/dead/observer/owner + +/datum/spawners_menu/New(mob/dead/observer/new_owner) + if(!istype(new_owner)) + qdel(src) + owner = new_owner + +/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.observer_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "spawners_menu", "Spawners Menu", 700, 600, master_ui, state) + ui.open() + +/datum/spawners_menu/ui_data(mob/user) + var/list/data = list() + data["spawners"] = list() + for(var/spawner in GLOB.mob_spawners) + var/list/this = list() + this["name"] = spawner + this["desc"] = "" + this["refs"] = list() + for(var/spawner_obj in GLOB.mob_spawners[spawner]) + this["refs"] += "\ref[spawner_obj]" + if(!this["desc"]) + var/obj/effect/mob_spawn/MS = spawner_obj + this["desc"] = MS.flavour_text + this["amount_left"] = LAZYLEN(GLOB.mob_spawners[spawner]) + data["spawners"] += list(this) + + return data + +/datum/spawners_menu/ui_act(action, params) + if(..()) + return + + var/spawner_ref = pick(GLOB.mob_spawners[params["name"]]) + var/obj/effect/mob_spawn/MS = locate(spawner_ref) in GLOB.poi_list + + switch(action) + if("jump") + if(MS) + owner.forceMove(get_turf(MS)) + . = TRUE + if("spawn") + if(MS) + MS.attack_ghost(owner) + . = TRUE \ No newline at end of file diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index a5ea4e9a0a..0014f92378 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -46,10 +46,13 @@ create() else GLOB.poi_list |= src + LAZYADD(GLOB.mob_spawners[name], src) /obj/effect/mob_spawn/Destroy() - GLOB.poi_list.Remove(src) - . = ..() + GLOB.poi_list -= src + var/list/spawners = GLOB.mob_spawners[name] + LAZYREMOVE(spawners, src) + return ..() /obj/effect/mob_spawn/proc/special(mob/M) return diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index bc6640286d..126f3bcf01 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -52,11 +52,14 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) // Used for displaying in ghost chat, without changing the actual name // of the mob var/deadchat_name + var/datum/spawners_menu/spawners_menu /mob/dead/observer/Initialize() set_invisibility(GLOB.observer_default_invisibility) - verbs += /mob/dead/observer/proc/dead_tele + verbs += list( + /mob/dead/observer/proc/dead_tele, + /mob/dead/observer/proc/open_spawners_menu) if(icon_state in GLOB.ghost_forms_with_directions_list) ghostimage_default = image(src.icon,src,src.icon_state + "_nodir") @@ -149,6 +152,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) QDEL_NULL(ghostimage_simple) updateallghostimages() + + QDEL_NULL(spawners_menu) return ..() /mob/dead/CanPass(atom/movable/mover, turf/target) @@ -816,3 +821,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(message) to_chat(G, message) GLOB.observer_default_invisibility = amount + +/mob/dead/observer/proc/open_spawners_menu() + set name = "Mob spawners menu" + set desc = "See all currently available ghost spawners" + set category = "Ghost" + if(!spawners_menu) + spawners_menu = new(src) + + spawners_menu.ui_interact(src) \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index bca2fda847..649f70fb5f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -269,6 +269,7 @@ #include "code\datums\ruins.dm" #include "code\datums\shuttles.dm" #include "code\datums\soullink.dm" +#include "code\datums\spawners_menu.dm" #include "code\datums\verbs.dm" #include "code\datums\antagonists\antag_datum.dm" #include "code\datums\antagonists\datum_clockcult.dm" diff --git a/tgui/assets/tgui.js.rej b/tgui/assets/tgui.js.rej index 7a19430f92..c742652a23 100644 --- a/tgui/assets/tgui.js.rej +++ b/tgui/assets/tgui.js.rej @@ -1,15 +1,34 @@ diff a/tgui/assets/tgui.js b/tgui/assets/tgui.js (rejected hunks) -@@ -7,10 +7,10 @@ return t.set(e,+a+n)}function O(t,e){return Jo(this,t,void 0===e?1:+e)}function - real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,"int":8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},sc=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],uc=RegExp("&(#?(?:x[\\w\\d]+|\\d+|"+Object.keys(oc).join("|")+"));?","g"),pc=//g,lc=/&/g;var gc=function(){return e(this.node)},bc=function(t){this.type=kp,this.text=t.template};bc.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createTextNode(this.text)),this.node},toString:function(t){return t?Ee(this.text):this.text},unrender:function(t){return t?this.detach():void 0}};var yc=bc,xc=Se,_c=Ce,wc=function(t,e,n){var a;this.ref=e,this.resolved=!1,this.root=t.root,this.parentFragment=t.parentFragment,this.callback=n,a=ls(t.root,e,t.parentFragment),void 0!=a?this.resolve(a):bs.addUnresolved(this)};wc.prototype={resolve:function(t){this.keypath&&!t&&bs.addUnresolved(this),this.resolved=!0,this.keypath=t,this.callback(t)},forceResolution:function(){this.resolve(E(this.ref))},rebind:function(t,e){var n;void 0!=this.keypath&&(n=this.keypath.replace(t,e),void 0!==n&&this.resolve(n))},unbind:function(){this.resolved||bs.removeUnresolved(this)}};var kc=wc,Ec=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,this.rebind()},Sc={"@keypath":{prefix:"c",prop:["context"]},"@index":{prefix:"i",prop:["index"]},"@key":{prefix:"k",prop:["key","index"]}};Ec.prototype={rebind:function(){var t,e=this.ref,n=this.parentFragment,a=Sc[e];if(!a)throw Error('Unknown special reference "'+e+'" - valid references are @index, @key and @keypath');if(this.cached)return this.callback(E("@"+a.prefix+Pe(this.cached,a)));if(-1!==a.prop.indexOf("index")||-1!==a.prop.indexOf("key"))for(;n;){if(n.owner.currentSubtype===Bp&&void 0!==(t=Pe(n,a)))return this.cached=n,n.registerIndexRef(this),this.callback(E("@"+a.prefix+t));n=!n.parent&&n.owner&&n.owner.component&&n.owner.component.parentFragment&&!n.owner.component.instance.isolated?n.owner.component.parentFragment:n.parent}else for(;n;){if(void 0!==(t=Pe(n,a)))return this.callback(E("@"+a.prefix+t.str));n=n.parent}},unbind:function(){this.cached&&this.cached.unregisterIndexRef(this)}};var Cc=Ec,Pc=function(t,e,n){this.parentFragment=t.parentFragment,this.ref=e,this.callback=n,e.ref.fragment.registerIndexRef(this),this.rebind()};Pc.prototype={rebind:function(){var t,e=this.ref.ref;t="k"===e.ref.t?"k"+e.fragment.key:"i"+e.fragment.index,void 0!==t&&this.callback(E("@"+t))},unbind:function(){this.ref.ref.fragment.unregisterIndexRef(this)}};var Ac=Pc,Oc=Ae;Ae.resolve=function(t){var e,n,a={};for(e in t.refs)n=t.refs[e],a[n.ref.n]="k"===n.ref.t?n.fragment.key:n.fragment.index;return a};var Tc,Mc=Oe,Rc=Te,jc={},Lc=Function.prototype.bind;Tc=function(t,e,n,a){var r,i=this;r=t.root,this.root=r,this.parentFragment=e,this.callback=a,this.owner=t,this.str=n.s,this.keypaths=[],this.pending=n.r.length,this.refResolvers=n.r.map(function(t,e){return Mc(i,t,function(t){i.resolve(e,t)})}),this.ready=!0,this.bubble()},Tc.prototype={bubble:function(){this.ready&&(this.uniqueString=Re(this.str,this.keypaths),this.keypath=je(this.uniqueString),this.createEvaluator(),this.callback(this.keypath))},unbind:function(){for(var t;t=this.refResolvers.pop();)t.unbind()},resolve:function(t,e){this.keypaths[t]=e,this.bubble()},createEvaluator:function(){var t,e,n,a,r,i=this;a=this.keypath,t=this.root.viewmodel.computations[a.str],t?this.root.viewmodel.mark(a):(r=Rc(this.str,this.refResolvers.length),e=this.keypaths.map(function(t){var e;return"undefined"===t?function(){}:t.isSpecial?(e=t.value,function(){return e}):function(){var e=i.root.viewmodel.get(t,{noUnwrap:!0,fullRootGet:!0});return"function"==typeof e&&(e=De(e,i.root)),e}}),n={deps:this.keypaths.filter(Le),getter:function(){var t=e.map(Me);return r.apply(null,t)}},t=this.root.viewmodel.compute(a,n))},rebind:function(t,e){this.refResolvers.forEach(function(n){return n.rebind(t,e)})}};var Dc=Tc,Nc=function(t,e,n){var a=this;this.resolver=e,this.root=e.root,this.parentFragment=n,this.viewmodel=e.root.viewmodel,"string"==typeof t?this.value=t:t.t===Np?this.refResolver=Mc(this,t.n,function(t){a.resolve(t)}):new Dc(e,n,t,function(t){a.resolve(t)})};Nc.prototype={resolve:function(t){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.keypath=t,this.value=this.viewmodel.get(t),this.bind(),this.resolver.bubble()},bind:function(){this.viewmodel.register(this.keypath,this)},rebind:function(t,e){this.refResolver&&this.refResolver.rebind(t,e)},setValue:function(t){this.value=t,this.resolver.bubble()},unbind:function(){this.keypath&&this.viewmodel.unregister(this.keypath,this),this.refResolver&&this.refResolver.unbind()},forceResolution:function(){this.refResolver&&this.refResolver.forceResolution()}};var Fc=Nc,Ic=function(t,e,n){var a,r,i,o,s=this;this.parentFragment=o=t.parentFragment,this.root=a=t.root,this.mustache=t,this.ref=r=e.r,this.callback=n,this.unresolved=[],(i=ls(a,r,o))?this.base=i:this.baseResolver=new kc(this,r,function(t){s.base=t,s.baseResolver=null,s.bubble()}),this.members=e.m.map(function(t){return new Fc(t,s,o)}),this.ready=!0,this.bubble()};Ic.prototype={getKeypath:function(){var t=this.members.map(Ne);return!t.every(Fe)||this.baseResolver?null:this.base.join(t.join("."))},bubble:function(){this.ready&&!this.baseResolver&&this.callback(this.getKeypath())},unbind:function(){this.members.forEach(K)},rebind:function(t,e){var n;if(this.base){var a=this.base.replace(t,e);a&&a!==this.base&&(this.base=a,n=!0)}this.members.forEach(function(a){a.rebind(t,e)&&(n=!0)}),n&&this.bubble()},forceResolution:function(){this.baseResolver&&(this.base=E(this.ref),this.baseResolver.unbind(),this.baseResolver=null),this.members.forEach(Ie),this.bubble()}};var Bc=Ic,qc=Be,Uc=qe,Gc=Ue,Vc={getValue:_c,init:qc,resolve:Uc,rebind:Gc},zc=function(t){this.type=Ep,Vc.init(this,t)};zc.prototype={update:function(){this.node.data=void 0==this.value?"":this.value},resolve:Vc.resolve,rebind:Vc.rebind,detach:gc,unbind:xc,render:function(){return this.node||(this.node=document.createTextNode(n(this.value))),this.node},unrender:function(t){t&&e(this.node)},getValue:Vc.getValue,setValue:function(t){var e;this.keypath&&(e=this.root.viewmodel.wrapped[this.keypath.str])&&(t=e.get()),s(t,this.value)||(this.value=t,this.parentFragment.bubble(),this.node&&bs.addView(this))},firstNode:function(){return this.node},toString:function(t){var e=""+n(this.value);return t?Ee(e):e}};var Wc=zc,Hc=Ge,Kc=Ve,Qc=ze,$c=We,Yc=He,Jc=Ke,Xc=Qe,Zc=$e,tl=Ye,el=function(t,e){Vc.rebind.call(this,t,e)},nl=Xe,al=Ze,rl=ln,il=fn,ol=dn,sl=vn,ul=function(t){this.type=Cp,this.subtype=this.currentSubtype=t.template.n,this.inverted=this.subtype===Ip,this.pElement=t.pElement,this.fragments=[],this.fragmentsToCreate=[],this.fragmentsToRender=[],this.fragmentsToUnrender=[],t.template.i&&(this.indexRefs=t.template.i.split(",").map(function(t,e){return{n:t,t:0===e?"k":"i"}})),this.renderedFragments=[],this.length=0,Vc.init(this,t)};ul.prototype={bubble:Hc,detach:Kc,find:Qc,findAll:$c,findAllComponents:Yc,findComponent:Jc,findNextNode:Xc,firstNode:Zc,getIndexRef:function(t){if(this.indexRefs)for(var e=this.indexRefs.length;e--;){var n=this.indexRefs[e];if(n.n===t)return n}},getValue:Vc.getValue,shuffle:tl,rebind:el,render:nl,resolve:Vc.resolve,setValue:al,toString:rl,unbind:il,unrender:ol,update:sl};var pl,cl,ll=ul,fl=gn,dl=bn,hl=yn,ml=xn,vl={};try{co("table").innerHTML="foo"}catch(Ao){pl=!0,cl={TABLE:['',"
"],THEAD:['',"
"],TBODY:['',"
"],TR:['',"
"],SELECT:['"]}}var gl=function(t,e,n){var a,r,i,o,s,u=[];if(null!=t&&""!==t){for(pl&&(r=cl[e.tagName])?(a=_n("DIV"),a.innerHTML=r[0]+t+r[1],a=a.querySelector(".x"),"SELECT"===a.tagName&&(i=a.options[a.selectedIndex])):e.namespaceURI===no.svg?(a=_n("DIV"),a.innerHTML=''+t+"",a=a.querySelector(".x")):(a=_n(e.tagName),a.innerHTML=t,"SELECT"===a.tagName&&(i=a.options[a.selectedIndex]));o=a.firstChild;)u.push(o),n.appendChild(o);if("SELECT"===e.tagName)for(s=u.length;s--;)u[s]!==i&&(u[s].selected=!1)}return u},bl=wn,yl=En,xl=Sn,_l=Cn,wl=Pn,kl=An,El=function(t){this.type=Sp,Vc.init(this,t)};El.prototype={detach:fl,find:dl,findAll:hl,firstNode:ml,getValue:Vc.getValue,rebind:Vc.rebind,render:yl,resolve:Vc.resolve,setValue:xl,toString:_l,unbind:xc,unrender:wl,update:kl};var Sl,Cl,Pl,Al,Ol=El,Tl=function(){this.parentFragment.bubble()},Ml=On,Rl=function(t){return this.node?lo(this.node,t)?this.node:this.fragment&&this.fragment.find?this.fragment.find(t):void 0:null},jl=function(t,e){e._test(this,!0)&&e.live&&(this.liveQueries||(this.liveQueries=[])).push(e),this.fragment&&this.fragment.findAll(t,e)},Ll=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},Dl=function(t){return this.fragment?this.fragment.findComponent(t):void 0},Nl=Tn,Fl=Mn,Il=Rn,Bl=/^true|on|yes|1$/i,ql=/^[0-9]+$/,Ul=function(t,e){var n,a,r;return r=e.a||{},a={},n=r.twoway,void 0!==n&&(a.twoway=0===n||Bl.test(n)),n=r.lazy,void 0!==n&&(0!==n&&ql.test(n)?a.lazy=parseInt(n):a.lazy=0===n||Bl.test(n)),a},Gl=jn;Sl="altGlyph altGlyphDef altGlyphItem animateColor animateMotion animateTransform clipPath feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence foreignObject glyphRef linearGradient radialGradient textPath vkern".split(" "),Cl="attributeName attributeType baseFrequency baseProfile calcMode clipPathUnits contentScriptType contentStyleType diffuseConstant edgeMode externalResourcesRequired filterRes filterUnits glyphRef gradientTransform gradientUnits kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY repeatCount repeatDur requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox viewTarget xChannelSelector yChannelSelector zoomAndPan".split(" "),Pl=function(t){for(var e={},n=t.length;n--;)e[t[n].toLowerCase()]=t[n];return e},Al=Pl(Sl.concat(Cl));var Vl=function(t){var e=t.toLowerCase();return Al[e]||e},zl=function(t,e){var n,a;if(n=e.indexOf(":"),-1===n||(a=e.substr(0,n),"xmlns"===a))t.name=t.element.namespace!==no.html?Vl(e):e;else if(e=e.substring(n+1),t.name=Vl(e),t.namespace=no[a.toLowerCase()],t.namespacePrefix=a,!t.namespace)throw'Unknown namespace ("'+a+'")'},Wl=Ln,Hl=Dn,Kl=Nn,Ql=Fn,$l={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor","class":"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName","for":"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},Yl=In,Jl=qn,Xl=Un,Zl=Gn,tf=Vn,ef=zn,nf=Wn,af=Hn,rf=Kn,of=Qn,sf=$n,uf=Yn,pf=Jn,cf=Xn,lf=Zn,ff=function(t){this.init(t)};ff.prototype={bubble:Gl,init:Hl,rebind:Kl,render:Ql,toString:Yl,unbind:Jl,update:lf};var df,hf=ff,mf=function(t,e){var n,a,r=[];for(n in e)"twoway"!==n&&"lazy"!==n&&e.hasOwnProperty(n)&&(a=new hf({element:t,name:n,value:e[n],root:t.root}),r[n]=a,"value"!==n&&r.push(a));return(a=r.value)&&r.push(a),r};"undefined"!=typeof document&&(df=co("div"));var vf=function(t,e){this.element=t,this.root=t.root,this.parentFragment=t.parentFragment,this.attributes=[],this.fragment=new rv({root:t.root,owner:this,template:[e]})};vf.prototype={bubble:function(){this.node&&this.update(),this.element.bubble()},rebind:function(t,e){this.fragment.rebind(t,e)},render:function(t){this.node=t,this.isSvg=t.namespaceURI===no.svg,this.update()},unbind:function(){this.fragment.unbind()},update:function(){var t,e,n=this;t=""+this.fragment,e=ta(t,this.isSvg),this.attributes.filter(function(t){return ea(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e},toString:function(){return""+this.fragment}};var gf=vf,bf=function(t,e){return e?e.map(function(e){return new gf(t,e)}):[]},yf=function(t){var e,n,a,r;if(this.element=t,this.root=t.root,this.attribute=t.attributes[this.name||"value"],e=this.attribute.interpolator,e.twowayBinding=this,n=e.keypath){if("}"===n.str.slice(-1))return v("Two-way binding does not work with expressions (`%s` on <%s>)",e.resolver.uniqueString,t.name,{ractive:this.root}),!1;if(n.isSpecial)return v("Two-way binding does not work with %s",e.resolver.ref,{ractive:this.root}),!1}else{var i=e.template.r?"'"+e.template.r+"' reference":"expression";m("The %s being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",i,{ractive:this.root}),e.resolver.forceResolution(),n=e.keypath}this.attribute.isTwoway=!0,this.keypath=n,a=this.root.viewmodel.get(n),void 0===a&&this.getInitialValue&&(a=this.getInitialValue(),void 0!==a&&this.root.viewmodel.set(n,a)),(r=na(t))&&(this.resetValue=a,r.formBindings.push(this))};yf.prototype={handleChange:function(){var t=this;bs.start(this.root),this.attribute.locked=!0,this.root.viewmodel.set(this.keypath,this.getValue()),bs.scheduleTask(function(){return t.attribute.locked=!1}),bs.end()},rebound:function(){var t,e,n;e=this.keypath,n=this.attribute.interpolator.keypath,e!==n&&(N(this.root._twowayBindings[e.str],this),this.keypath=n,t=this.root._twowayBindings[n.str]||(this.root._twowayBindings[n.str]=[]),t.push(this))},unbind:function(){}},yf.extend=function(t){var e,n=this;return e=function(t){yf.call(this,t),this.init&&this.init()},e.prototype=Eo(n.prototype),a(e.prototype,t),e.extend=yf.extend,e};var xf,_f=yf,wf=aa;xf=_f.extend({getInitialValue:function(){return""},getValue:function(){return this.element.node.value},render:function(){var t,e=this.element.node,n=!1;this.rendered=!0,t=this.root.lazy,this.element.lazy===!0?t=!0:this.element.lazy===!1?t=!1:u(this.element.lazy)?(t=!1,n=+this.element.lazy):u(t||"")&&(n=+t,t=!1,this.element.lazy=n),this.handler=n?ia:wf,e.addEventListener("change",wf,!1),t||(e.addEventListener("input",this.handler,!1),e.attachEvent&&e.addEventListener("keyup",this.handler,!1)),e.addEventListener("blur",ra,!1)},unrender:function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",wf,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",ra,!1)}});var kf=xf,Ef=kf.extend({getInitialValue:function(){return this.element.fragment?""+this.element.fragment:""},getValue:function(){return this.element.node.innerHTML}}),Sf=Ef,Cf=oa,Pf={},Af=_f.extend({name:"checked",init:function(){this.siblings=Cf(this.root._guid,"radio",this.element.getAttribute("name")),this.siblings.push(this)},render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},handleChange:function(){bs.start(this.root),this.siblings.forEach(function(t){t.root.viewmodel.set(t.keypath,t.getValue())}),bs.end()},getValue:function(){return this.element.node.checked},unbind:function(){N(this.siblings,this)}}),Of=Af,Tf=_f.extend({name:"name",init:function(){this.siblings=Cf(this.root._guid,"radioname",this.keypath.str),this.siblings.push(this),this.radioName=!0},getInitialValue:function(){return this.element.getAttribute("checked")?this.element.getAttribute("value"):void 0},render:function(){var t=this.element.node;t.name="{{"+this.keypath.str+"}}",t.checked=this.root.viewmodel.get(this.keypath)==this.element.getAttribute("value"),t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){var t=this.element.node;return t._ractive?t._ractive.value:t.value},handleChange:function(){this.element.node.checked&&_f.prototype.handleChange.call(this)},rebound:function(t,e){var n;_f.prototype.rebound.call(this,t,e),(n=this.element.node)&&(n.name="{{"+this.keypath.str+"}}")},unbind:function(){N(this.siblings,this)}}),Mf=Tf,Rf=_f.extend({name:"name",getInitialValue:function(){return this.noInitialValue=!0,[]},init:function(){var t,e;this.checkboxName=!0,this.siblings=Cf(this.root._guid,"checkboxes",this.keypath.str),this.siblings.push(this),this.noInitialValue&&(this.siblings.noInitialValue=!0),this.siblings.noInitialValue&&this.element.getAttribute("checked")&&(t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),t.push(e))},unbind:function(){N(this.siblings,this)},render:function(){var t,e,n=this.element.node;t=this.root.viewmodel.get(this.keypath),e=this.element.getAttribute("value"),i(t)?this.isChecked=R(t,e):this.isChecked=t==e,n.name="{{"+this.keypath.str+"}}",n.checked=this.isChecked,n.addEventListener("change",wf,!1),n.attachEvent&&n.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},changed:function(){var t=!!this.isChecked;return this.isChecked=this.element.node.checked,this.isChecked===t},handleChange:function(){this.isChecked=this.element.node.checked,_f.prototype.handleChange.call(this)},getValue:function(){return this.siblings.filter(sa).map(ua)}}),jf=Rf,Lf=_f.extend({name:"checked",render:function(){var t=this.element.node;t.addEventListener("change",wf,!1),t.attachEvent&&t.addEventListener("click",wf,!1)},unrender:function(){var t=this.element.node;t.removeEventListener("change",wf,!1),t.removeEventListener("click",wf,!1)},getValue:function(){return this.element.node.checked}}),Df=Lf,Nf=_f.extend({getInitialValue:function(){var t,e,n,a,r=this.element.options;if(void 0===this.element.getAttribute("value")&&(e=t=r.length,t)){for(;e--;)if(r[e].getAttribute("selected")){n=r[e].getAttribute("value"),a=!0;break}if(!a)for(;++ee;e+=1)if(a=t[e],t[e].selected)return r=a._ractive?a._ractive.value:a.value},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))}}),Ff=Nf,If=Ff.extend({getInitialValue:function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},render:function(){var t;this.element.node.addEventListener("change",wf,!1),t=this.root.viewmodel.get(this.keypath),void 0===t&&this.handleChange()},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},setValue:function(){throw Error("TODO not implemented yet")},getValue:function(){var t,e,n,a,r,i;for(t=[],e=this.element.node.options,a=e.length,n=0;a>n;n+=1)r=e[n],r.selected&&(i=r._ractive?r._ractive.value:r.value,t.push(i));return t},handleChange:function(){var t,e,n;return t=this.attribute,e=t.value,n=this.getValue(),void 0!==e&&j(n,e)||Ff.prototype.handleChange.call(this),this},forceUpdate:function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,bs.scheduleTask(function(){return t.attribute.locked=!1}),this.root.viewmodel.set(this.keypath,e))},updateModel:function(){void 0!==this.attribute.value&&this.attribute.value.length||this.root.viewmodel.set(this.keypath,this.initialValue)}}),Bf=If,qf=_f.extend({render:function(){this.element.node.addEventListener("change",wf,!1)},unrender:function(){this.element.node.removeEventListener("change",wf,!1)},getValue:function(){return this.element.node.files}}),Uf=qf,Gf=kf.extend({getInitialValue:function(){},getValue:function(){var t=parseFloat(this.element.node.value);return isNaN(t)?void 0:t}}),Vf=pa,zf=la,Wf=fa,Hf=da,Kf=ha,Qf=/^event(?:\.(.+))?/,$f=ba,Yf=ya,Jf={},Xf={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0,touchleave:!0},Zf=_a,td=wa,ed=ka,nd=Ea,ad=Sa,rd=function(t,e,n){this.init(t,e,n)};rd.prototype={bubble:zf,fire:Wf,getAction:Hf,init:Kf,listen:Yf,rebind:Zf,render:td,resolve:ed,unbind:nd,unrender:ad};var id=rd,od=function(t,e){var n,a,r,i,o=[];for(a in e)if(e.hasOwnProperty(a))for(r=a.split("-"),n=r.length;n--;)i=new id(t,r[n],e[a]),o.push(i);return o},sd=function(t,e){var n,a,r,i=this;this.element=t,this.root=n=t.root,a=e.n||e,("string"==typeof a||(r=new rv({template:a,root:n,owner:t}),a=""+r,r.unbind(),""!==a))&&(e.a?this.params=e.a:e.d&&(this.fragment=new rv({template:e.d,root:n,owner:t}),this.params=this.fragment.getArgsList(),this.fragment.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,i.params=this.getArgsList(),i.ready&&i.update()}),this.fn=g("decorators",n,a),this.fn||l(Io(a,"decorator")))};sd.prototype={init:function(){var t,e,n;if(t=this.element.node,this.params?(n=[t].concat(this.params),e=this.fn.apply(this.root,n)):e=this.fn.call(this.root,t),!e||!e.teardown)throw Error("Decorator definition must return an object with a teardown method");this.actual=e,this.ready=!0},update:function(){this.actual.update?this.actual.update.apply(this.root,this.params):(this.actual.teardown(!0),this.init())},rebind:function(t,e){this.fragment&&this.fragment.rebind(t,e)},teardown:function(t){this.torndown=!0,this.ready&&this.actual.teardown(),!t&&this.fragment&&this.fragment.unbind()}};var ud,pd,cd,ld=sd,fd=Ra,dd=ja,hd=Ba,md=function(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})};Xi?(pd={},cd=co("div").style,ud=function(t){var e,n,a;if(t=md(t),!pd[t])if(void 0!==cd[t])pd[t]=t;else for(a=t.charAt(0).toUpperCase()+t.substring(1),e=ro.length;e--;)if(n=ro[e],void 0!==cd[n+a]){pd[t]=n+a;break}return pd[t]}):ud=null;var vd,gd,bd=ud;Xi?(gd=window.getComputedStyle||Po.getComputedStyle,vd=function(t){var e,n,a,r,o;if(e=gd(this.node),"string"==typeof t)return o=e[bd(t)],"0px"===o&&(o=0),o;if(!i(t))throw Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(n={},a=t.length;a--;)r=t[a],o=e[bd(r)],"0px"===o&&(o=0),n[r]=o;return n}):vd=null;var yd=vd,xd=function(t,e){var n;if("string"==typeof t)this.node.style[bd(t)]=e;else for(n in t)t.hasOwnProperty(n)&&(this.node.style[bd(n)]=t[n]);return this},_d=function(t){var e;this.duration=t.duration,this.step=t.step,this.complete=t.complete,"string"==typeof t.easing?(e=t.root.easing[t.easing],e||(v(Io(t.easing,"easing")),e=qa)):e="function"==typeof t.easing?t.easing:qa,this.easing=e,this.start=ns(),this.end=this.start+this.duration,this.running=!0,_s.add(this)};_d.prototype={tick:function(t){var e,n;return this.running?t>this.end?(this.step&&this.step(1),this.complete&&this.complete(1),!1):(e=t-this.start,n=this.easing(e/this.duration),this.step&&this.step(n),!0):!1},stop:function(){this.abort&&this.abort(),this.running=!1}};var wd,kd,Ed,Sd,Cd,Pd,Ad,Od,Td=_d,Md=RegExp("^-(?:"+ro.join("|")+")-"),Rd=function(t){return t.replace(Md,"")},jd=RegExp("^(?:"+ro.join("|")+")([A-Z])"),Ld=function(t){var e;return t?(jd.test(t)&&(t="-"+t),e=t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""},Dd={},Nd={};Xi?(kd=co("div").style,function(){void 0!==kd.transition?(Ed="transition",Sd="transitionend",Cd=!0):void 0!==kd.webkitTransition?(Ed="webkitTransition",Sd="webkitTransitionEnd",Cd=!0):Cd=!1}(),Ed&&(Pd=Ed+"Duration",Ad=Ed+"Property",Od=Ed+"TimingFunction"),wd=function(t,e,n,a,r){setTimeout(function(){var i,o,s,u,p;u=function(){o&&s&&(t.root.fire(t.name+":end",t.node,t.isIntro),r())},i=(t.node.namespaceURI||"")+t.node.tagName,t.node.style[Ad]=a.map(bd).map(Ld).join(","),t.node.style[Od]=Ld(n.easing||"linear"),t.node.style[Pd]=n.duration/1e3+"s",p=function(e){var n;n=a.indexOf(md(Rd(e.propertyName))),-1!==n&&a.splice(n,1),a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},t.node.addEventListener(Sd,p,!1),setTimeout(function(){for(var r,c,l,f,d,h=a.length,v=[];h--;)f=a[h],r=i+f,Cd&&!Nd[r]&&(t.node.style[bd(f)]=e[f],Dd[r]||(c=t.getStyle(f),Dd[r]=t.getStyle(f)!=e[f],Nd[r]=!Dd[r],Nd[r]&&(t.node.style[bd(f)]=c))),(!Cd||Nd[r])&&(void 0===c&&(c=t.getStyle(f)),l=a.indexOf(f),-1===l?m("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):a.splice(l,1),d=/[^\d]*$/.exec(e[f])[0],v.push({name:bd(f),interpolator:qo(parseFloat(c),parseFloat(e[f])),suffix:d}));v.length?new Td({root:t.root,duration:n.duration,easing:md(n.easing||""),step:function(e){var n,a;for(a=v.length;a--;)n=v[a],t.node.style[n.name]=n.interpolator(e)+n.suffix},complete:function(){o=!0,u()}}):o=!0,a.length||(t.node.removeEventListener(Sd,p,!1),s=!0,u())},0)},n.delay||0)}):wd=null;var Fd,Id,Bd,qd,Ud,Gd=wd;if("undefined"!=typeof document){if(Fd="hidden",Ud={},Fd in document)Bd="";else for(qd=ro.length;qd--;)Id=ro[qd],Fd=Id+"Hidden",Fd in document&&(Bd=Id);void 0!==Bd?(document.addEventListener(Bd+"visibilitychange",Ua),Ua()):("onfocusout"in document?(document.addEventListener("focusout",Ga),document.addEventListener("focusin",Va)):(window.addEventListener("pagehide",Ga),window.addEventListener("blur",Ga),window.addEventListener("pageshow",Va),window.addEventListener("focus",Va)),Ud.hidden=!1)}var Vd,zd,Wd,Hd=Ud;Xi?(zd=window.getComputedStyle||Po.getComputedStyle,Vd=function(t,e,n){var a,r=this;if(4===arguments.length)throw Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(Hd.hidden)return this.setStyle(t,e),Wd||(Wd=ps.resolve());"string"==typeof t?(a={},a[t]=e):(a=t,n=e),n||(v('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this);var i=new ps(function(t){var e,i,o,s,u,p,c;if(!n.duration)return r.setStyle(a),void t();for(e=Object.keys(a),i=[],o=zd(r.node),u={},p=e.length;p--;)c=e[p],s=o[bd(c)],"0px"===s&&(s=0),s!=a[c]&&(i.push(c),r.node.style[bd(c)]=s);return i.length?void Gd(r,a,n,i,t):void t()});return i}):Vd=null;var Kd=Vd,Qd=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),r({},t,e)},$d=za,Yd=function(t,e,n){this.init(t,e,n)};Yd.prototype={init:hd,start:$d,getStyle:yd,setStyle:xd,animateStyle:Kd,processParams:Qd};var Jd,Xd,Zd=Yd,th=Ha;Jd=function(){var t=this.node,e=this.fragment.toString(!1);if(window&&window.appearsToBeIELessEqual8&&(t.type="text/css"),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}},Xd=function(){this.node.type&&"text/javascript"!==this.node.type||m("Script tag was updated. This does not cause the code to be re-evaluated!",{ractive:this.root}),this.node.text=this.fragment.toString(!1)};var eh=function(){var t,e;return this.template.y?"":(t="<"+this.template.e,t+=this.attributes.map(Xa).join("")+this.conditionalAttributes.map(Xa).join(""),"option"===this.name&&Ya(this)&&(t+=" selected"),"input"===this.name&&Ja(this)&&(t+=" checked"),t+=">","textarea"===this.name&&void 0!==this.getAttribute("value")?t+=Ee(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(t+=this.getAttribute("value")||""),this.fragment&&(e="script"!==this.name&&"style"!==this.name,t+=this.fragment.toString(e)),ic.test(this.template.e)||(t+=""),t)},nh=Za,ah=tr,rh=function(t){this.init(t)};rh.prototype={bubble:Tl,detach:Ml,find:Rl,findAll:jl,findAllComponents:Ll,findComponent:Dl,findNextNode:Nl,firstNode:Fl,getAttribute:Il,init:fd,rebind:dd,render:th,toString:eh,unbind:nh,unrender:ah};var ih=rh,oh=/^\s*$/,sh=/^\s*/,uh=function(t){var e,n,a,r;return e=t.split("\n"),n=e[0],void 0!==n&&oh.test(n)&&e.shift(),a=D(e),void 0!==a&&oh.test(a)&&e.pop(),r=e.reduce(nr,null),r&&(t=e.map(function(t){return t.replace(r,"")}).join("\n")),t},ph=ar,ch=function(t,e){var n;return e?n=t.split("\n").map(function(t,n){return n?e+t:t}).join("\n"):t},lh='Could not find template for partial "%s"',fh=function(t){var e,n;e=this.parentFragment=t.parentFragment,this.root=e.root,this.type=Ap,this.index=t.index,this.name=t.template.r,this.rendered=!1,this.fragment=this.fragmentToRender=this.fragmentToUnrender=null,Vc.init(this,t),this.keypath||((n=ph(this.root,this.name,e))?(xc.call(this),this.isNamed=!0,this.setTemplate(n)):v(lh,this.name))};fh.prototype={bubble:function(){this.parentFragment.bubble()},detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},firstNode:function(){return this.fragment.firstNode()},findNextNode:function(){return this.parentFragment.findNextNode(this)},getPartialName:function(){return this.isNamed&&this.name?this.name:void 0===this.value?this.name:this.value},getValue:function(){return this.fragment.getValue()},rebind:function(t,e){this.isNamed||Gc.call(this,t,e),this.fragment&&this.fragment.rebind(t,e)},render:function(){return this.docFrag=document.createDocumentFragment(),this.update(),this.rendered=!0,this.docFrag},resolve:Vc.resolve,setValue:function(t){var e;(void 0===t||t!==this.value)&&(void 0!==t&&(e=ph(this.root,""+t,this.parentFragment)),!e&&this.name&&(e=ph(this.root,this.name,this.parentFragment))&&(xc.call(this),this.isNamed=!0),e||v(lh,this.name,{ractive:this.root}),this.value=t,this.setTemplate(e||[]),this.bubble(),this.rendered&&bs.addView(this))},setTemplate:function(t){this.fragment&&(this.fragment.unbind(),this.rendered&&(this.fragmentToUnrender=this.fragment)),this.fragment=new rv({template:t,root:this.root,owner:this,pElement:this.parentFragment.pElement}),this.fragmentToRender=this.fragment},toString:function(t){var e,n,a,r;return e=this.fragment.toString(t),n=this.parentFragment.items[this.index-1],n&&n.type===kp?(a=n.text.split("\n").pop(),(r=/^\s+$/.exec(a))?ch(e,r[0]):e):e},unbind:function(){this.isNamed||xc.call(this),this.fragment&&this.fragment.unbind()},unrender:function(t){this.rendered&&(this.fragment&&this.fragment.unrender(t),this.rendered=!1)},update:function(){var t,e;this.fragmentToUnrender&&(this.fragmentToUnrender.unrender(!0),this.fragmentToUnrender=null),this.fragmentToRender&&(this.docFrag.appendChild(this.fragmentToRender.render()),this.fragmentToRender=null), - this.rendered&&(t=this.parentFragment.getNode(),e=this.parentFragment.findNextNode(this),t.insertBefore(this.docFrag,e))}};var dh,hh,mh,vh=fh,gh=ur,bh=pr,yh=new is("detach"),xh=cr,_h=lr,wh=fr,kh=dr,Eh=hr,Sh=mr,Ch=function(t,e,n,a){var r=t.root,i=t.keypath;a?r.viewmodel.smartUpdate(i,e,a):r.viewmodel.mark(i)},Ph=[],Ah=["pop","push","reverse","shift","sort","splice","unshift"];Ah.forEach(function(t){var e=function(){for(var e=arguments.length,n=Array(e),a=0;e>a;a++)n[a]=arguments[a];var r,i,o,s;for(r=bu(this,t,n),i=Array.prototype[t].apply(this,arguments),bs.start(),this._ractive.setting=!0,s=this._ractive.wrappers.length;s--;)o=this._ractive.wrappers[s],bs.addRactive(o.root),Ch(o,this,t,r);return bs.end(),this._ractive.setting=!1,i};So(Ph,t,{value:e})}),dh={},dh.__proto__?(hh=function(t){t.__proto__=Ph},mh=function(t){t.__proto__=Array.prototype}):(hh=function(t){var e,n;for(e=Ah.length;e--;)n=Ah[e],So(t,n,{value:Ph[n],configurable:!0})},mh=function(t){var e;for(e=Ah.length;e--;)delete t[Ah[e]]}),hh.unpatch=mh;var Oh,Th,Mh,Rh=hh;Oh={filter:function(t){return i(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Th(t,e,n)}},Th=function(t,e,n){this.root=t,this.value=e,this.keypath=E(n),e._ractive||(So(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Rh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)},Th.prototype={get:function(){return this.value},teardown:function(){var t,e,n,a,r;if(t=this.value,e=t._ractive,n=e.wrappers,a=e.instances,e.setting)return!1;if(r=n.indexOf(this),-1===r)throw Error(Mh);if(n.splice(r,1),n.length){if(a[this.root._guid]-=1,!a[this.root._guid]){if(r=a.indexOf(this.root),-1===r)throw Error(Mh);a.splice(r,1)}}else delete t._ractive,Rh.unpatch(this.value)}},Mh="Something went wrong in a rather interesting way";var jh,Lh,Dh=Oh,Nh=/^\s*[0-9]+\s*$/,Fh=function(t){return Nh.test(t)?[]:{}};try{Object.defineProperty({},"test",{value:0}),jh={filter:function(t,e,n){var a,r;return e?(e=E(e),(a=n.viewmodel.wrapped[e.parent.str])&&!a.magic?!1:(r=n.viewmodel.get(e.parent),i(r)&&/^[0-9]+$/.test(e.lastKey)?!1:r&&("object"==typeof r||"function"==typeof r))):!1},wrap:function(t,e,n){return new Lh(t,e,n)}},Lh=function(t,e,n){var a,r,i;return n=E(n),this.magic=!0,this.ractive=t,this.keypath=n,this.value=e,this.prop=n.lastKey,a=n.parent,this.obj=a.isRoot?t.viewmodel.data:t.viewmodel.get(a),r=this.originalDescriptor=Object.getOwnPropertyDescriptor(this.obj,this.prop),r&&r.set&&(i=r.set._ractiveWrappers)?void(-1===i.indexOf(this)&&i.push(this)):void vr(this,e,r)},Lh.prototype={get:function(){return this.value},reset:function(t){return this.updating?void 0:(this.updating=!0,this.obj[this.prop]=t,bs.addRactive(this.ractive),this.ractive.viewmodel.mark(this.keypath,{keepExistingWrapper:!0}),this.updating=!1,!0)},set:function(t,e){this.updating||(this.obj[this.prop]||(this.updating=!0,this.obj[this.prop]=Fh(t),this.updating=!1),this.obj[this.prop][t]=e)},teardown:function(){var t,e,n,a,r;return this.updating?!1:(t=Object.getOwnPropertyDescriptor(this.obj,this.prop),e=t&&t.set,void(e&&(a=e._ractiveWrappers,r=a.indexOf(this),-1!==r&&a.splice(r,1),a.length||(n=this.obj[this.prop],Object.defineProperty(this.obj,this.prop,this.originalDescriptor||{writable:!0,enumerable:!0,configurable:!0}),this.obj[this.prop]=n))))}}}catch(Ao){jh=!1}var Ih,Bh,qh=jh;qh&&(Ih={filter:function(t,e,n){return qh.filter(t,e,n)&&Dh.filter(t)},wrap:function(t,e,n){return new Bh(t,e,n)}},Bh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=qh.wrap(t,e,n),this.arrayWrapper=Dh.wrap(t,e,n)},Bh.prototype={get:function(){return this.value},teardown:function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},reset:function(t){return this.magicWrapper.reset(t)}});var Uh=Ih,Gh=gr,Vh={},zh=xr,Wh=_r,Hh=Er,Kh=Or,Qh=Tr,$h=function(t,e){this.computation=t,this.viewmodel=t.viewmodel,this.ref=e,this.root=this.viewmodel.ractive,this.parentFragment=this.root.component&&this.root.component.parentFragment};$h.prototype={resolve:function(t){this.computation.softDeps.push(t),this.computation.unresolvedDeps[t.str]=null,this.viewmodel.register(t,this.computation,"computed")}};var Yh=$h,Jh=function(t,e){this.key=t,this.getter=e.getter,this.setter=e.setter,this.hardDeps=e.deps||[],this.softDeps=[],this.unresolvedDeps={},this.depValues={},this._dirty=this._firstRun=!0};Jh.prototype={constructor:Jh,init:function(t){var e,n=this;this.viewmodel=t,this.bypass=!0,e=t.get(this.key),t.clearCache(this.key.str),this.bypass=!1,this.setter&&void 0!==e&&this.set(e),this.hardDeps&&this.hardDeps.forEach(function(e){return t.register(e,n,"computed")})},invalidate:function(){this._dirty=!0},get:function(){var t,e,n=this,a=!1;if(this.getting){var r="The "+this.key.str+" computation indirectly called itself. This probably indicates a bug in the computation. It is commonly caused by `array.sort(...)` - if that's the case, clone the array first with `array.slice().sort(...)`";return h(r),this.value}if(this.getting=!0,this._dirty){if(this._firstRun||!this.hardDeps.length&&!this.softDeps.length?a=!0:[this.hardDeps,this.softDeps].forEach(function(t){var e,r,i;if(!a)for(i=t.length;i--;)if(e=t[i],r=n.viewmodel.get(e),!s(r,n.depValues[e.str]))return n.depValues[e.str]=r,void(a=!0)}),a){this.viewmodel.capture();try{this.value=this.getter()}catch(i){m('Failed to compute "%s"',this.key.str),f(i.stack||i),this.value=void 0}t=this.viewmodel.release(),e=this.updateDependencies(t),e&&[this.hardDeps,this.softDeps].forEach(function(t){t.forEach(function(t){n.depValues[t.str]=n.viewmodel.get(t)})})}this._dirty=!1}return this.getting=this._firstRun=!1,this.value},set:function(t){if(this.setting)return void(this.value=t);if(!this.setter)throw Error("Computed properties without setters are read-only. (This may change in a future version of Ractive!)");this.setter(t)},updateDependencies:function(t){var e,n,a,r,i;for(n=this.softDeps,e=n.length;e--;)a=n[e],-1===t.indexOf(a)&&(r=!0,this.viewmodel.unregister(a,this,"computed"));for(e=t.length;e--;)a=t[e],-1!==n.indexOf(a)||this.hardDeps&&-1!==this.hardDeps.indexOf(a)||(r=!0,Mr(this.viewmodel,a)&&!this.unresolvedDeps[a.str]?(i=new Yh(this,a.str),t.splice(e,1),this.unresolvedDeps[a.str]=i,bs.addUnresolved(i)):this.viewmodel.register(a,this,"computed"));return r&&(this.softDeps=t.slice()),r}};var Xh=Jh,Zh=Rr,tm={FAILED_LOOKUP:!0},em=jr,nm={},am=Dr,rm=Nr,im=function(t,e){this.localKey=t,this.keypath=e.keypath,this.origin=e.origin,this.deps=[],this.unresolved=[],this.resolved=!1};im.prototype={forceResolution:function(){this.keypath=this.localKey,this.setup()},get:function(t,e){return this.resolved?this.origin.get(this.map(t),e):void 0},getValue:function(){return this.keypath?this.origin.get(this.keypath):void 0},initViewmodel:function(t){this.local=t,this.setup()},map:function(t){return void 0===typeof this.keypath?this.localKey:t.replace(this.localKey,this.keypath)},register:function(t,e,n){this.deps.push({keypath:t,dep:e,group:n}),this.resolved&&this.origin.register(this.map(t),e,n)},resolve:function(t){void 0!==this.keypath&&this.unbind(!0),this.keypath=t,this.setup()},set:function(t,e){this.resolved||this.forceResolution(),this.origin.set(this.map(t),e)},setup:function(){var t=this;void 0!==this.keypath&&(this.resolved=!0,this.deps.length&&(this.deps.forEach(function(e){var n=t.map(e.keypath);if(t.origin.register(n,e.dep,e.group),e.dep.setValue)e.dep.setValue(t.origin.get(n));else{if(!e.dep.invalidate)throw Error("An unexpected error occurred. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");e.dep.invalidate()}}),this.origin.mark(this.keypath)))},setValue:function(t){if(!this.keypath)throw Error("Mapping does not have keypath, cannot set value. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!");this.origin.set(this.keypath,t)},unbind:function(t){var e=this;t||delete this.local.mappings[this.localKey],this.resolved&&(this.deps.forEach(function(t){e.origin.unregister(e.map(t.keypath),t.dep,t.group)}),this.tracker&&this.origin.unregister(this.keypath,this.tracker))},unregister:function(t,e,n){var a,r;if(this.resolved){for(a=this.deps,r=a.length;r--;)if(a[r].dep===e){a.splice(r,1);break}this.origin.unregister(this.map(t),e,n)}}};var om=Fr,sm=function(t,e){var n,a,r,i;return n={},a=0,r=t.map(function(t,r){var o,s,u;s=a,u=e.length;do{if(o=e.indexOf(t,s),-1===o)return i=!0,-1;s=o+1}while(n[o]&&u>s);return o===a&&(a+=1),o!==r&&(i=!0),n[o]=!0,o})},um=Ir,pm={},cm=Ur,lm=Vr,fm=zr,dm=Wr,hm=Kr,mm={implicit:!0},vm={noCascade:!0},gm=$r,bm=Yr,ym=function(t){var e,n,a=t.adapt,r=t.data,i=t.ractive,o=t.computed,s=t.mappings;this.ractive=i,this.adaptors=a,this.onchange=t.onchange,this.cache={},this.cacheMap=Eo(null),this.deps={computed:Eo(null),"default":Eo(null)},this.depsMap={computed:Eo(null),"default":Eo(null)},this.patternObservers=[],this.specials=Eo(null),this.wrapped=Eo(null),this.computations=Eo(null),this.captureGroups=[],this.unresolvedImplicitDependencies=[],this.changes=[],this.implicitChanges={},this.noCascade={},this.data=r,this.mappings=Eo(null);for(e in s)this.map(E(e),s[e]);if(r)for(e in r)(n=this.mappings[e])&&void 0===n.getValue()&&n.setValue(r[e]);for(e in o)s&&e in s&&l("Cannot map to a computed property ('%s')",e),this.compute(E(e),o[e]);this.ready=!0};ym.prototype={adapt:Gh,applyChanges:Hh,capture:Kh,clearCache:Qh,compute:Zh,get:em,init:am,map:rm,mark:om,merge:um,register:cm,release:lm,reset:fm,set:dm,smartUpdate:hm,teardown:gm,unregister:bm};var xm=ym;Xr.prototype={constructor:Xr,begin:function(t){this.inProcess[t._guid]=!0},end:function(t){var e=t.parent;e&&this.inProcess[e._guid]?Zr(this.queue,e).push(t):ti(this,t),delete this.inProcess[t._guid]}};var _m=Xr,wm=ei,km=/\$\{([^\}]+)\}/g,Em=new is("construct"),Sm=new is("config"),Cm=new _m("init"),Pm=0,Am=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Om=ii,Tm=ci;ci.prototype={bubble:function(){this.dirty||(this.dirty=!0,bs.addView(this))},update:function(){this.callback(this.fragment.getValue()),this.dirty=!1},rebind:function(t,e){this.fragment.rebind(t,e)},unbind:function(){this.fragment.unbind()}};var Mm=function(t,e,n,r,o){var s,u,p,c,l,f,d={},h={},v={},g=[];for(u=t.parentFragment,p=t.root,o=o||{},a(d,o),o.content=r||[],d[""]=o.content,e.defaults.el&&m("The <%s/> component has a default `el` property; it has been disregarded",t.name),c=u;c;){if(c.owner.type===Rp){l=c.owner.container;break}c=c.parent}return n&&Object.keys(n).forEach(function(e){var a,r,o=n[e];if("string"==typeof o)a=fc(o),h[e]=a?a.value:o;else if(0===o)h[e]=!0;else{if(!i(o))throw Error("erm wut");fi(o)?(v[e]={origin:t.root.viewmodel,keypath:void 0},r=li(t,o[0],function(t){t.isSpecial?f?s.set(e,t.value):(h[e]=t.value,delete v[e]):f?s.viewmodel.mappings[e].resolve(t):v[e].keypath=t})):r=new Tm(t,o,function(t){f?s.set(e,t):h[e]=t}),g.push(r)}}),s=Eo(e.prototype),Om(s,{el:null,append:!0,data:h,partials:o,magic:p.magic||e.defaults.magic,modifyArrays:p.modifyArrays,adapt:p.adapt},{parent:p,component:t,container:l,mappings:v,inlinePartials:d,cssIds:u.cssIds}),f=!0,t.resolvers=g,s},Rm=di,jm=function(t){var e,n;for(e=t.root;e;)(n=e._liveComponentQueries["_"+t.name])&&n.push(t.instance),e=e.parent},Lm=mi,Dm=vi,Nm=gi,Fm=bi,Im=yi,Bm=new is("teardown"),qm=_i,Um=function(t,e){this.init(t,e)};Um.prototype={detach:bh,find:xh,findAll:_h,findAllComponents:wh,findComponent:kh,findNextNode:Eh,firstNode:Sh,init:Lm,rebind:Dm,render:Nm,toString:Fm,unbind:Im,unrender:qm};var Gm=Um,Vm=function(t){this.type=Op,this.value=t.template.c};Vm.prototype={detach:gc,firstNode:function(){return this.node},render:function(){return this.node||(this.node=document.createComment(this.value)),this.node},toString:function(){return""},unrender:function(t){t&&this.node.parentNode.removeChild(this.node)}};var zm=Vm,Wm=function(t){var e,n;this.type=Rp,this.container=e=t.parentFragment.root,this.component=n=e.component,this.container=e,this.containerFragment=t.parentFragment,this.parentFragment=n.parentFragment;var a=this.name=t.template.n||"",r=e._inlinePartials[a];r||(m('Could not find template for partial "'+a+'"',{ractive:t.root}),r=[]),this.fragment=new rv({owner:this,root:e.parent,template:r,pElement:this.containerFragment.pElement}),i(n.yielders[a])?n.yielders[a].push(this):n.yielders[a]=[this],bs.scheduleTask(function(){if(n.yielders[a].length>1)throw Error("A component template can only have one {{yield"+(a?" "+a:"")+"}} declaration at a time")})};Wm.prototype={detach:function(){return this.fragment.detach()},find:function(t){return this.fragment.find(t)},findAll:function(t,e){return this.fragment.findAll(t,e)},findComponent:function(t){return this.fragment.findComponent(t)},findAllComponents:function(t,e){return this.fragment.findAllComponents(t,e)},findNextNode:function(){return this.containerFragment.findNextNode(this)},firstNode:function(){return this.fragment.firstNode()},getValue:function(t){return this.fragment.getValue(t)},render:function(){return this.fragment.render()},unbind:function(){this.fragment.unbind()},unrender:function(t){this.fragment.unrender(t),N(this.component.yielders[this.name],this)},rebind:function(t,e){this.fragment.rebind(t,e)},toString:function(){return""+this.fragment}};var Hm=Wm,Km=function(t){this.declaration=t.template.a};Km.prototype={init:ko,render:ko,unrender:ko,teardown:ko,toString:function(){return""}};var Qm=Km,$m=wi,Ym=Ei,Jm=Si,Xm=Ci,Zm=Oi,tv=Mi,ev=function(t){this.init(t)};ev.prototype={bubble:cp,detach:lp,find:fp,findAll:dp,findAllComponents:hp,findComponent:mp,findNextNode:vp,firstNode:gp,getArgsList:hc,getNode:mc,getValue:vc,init:$m,rebind:Ym,registerIndexRef:function(t){var e=this.registeredIndexRefs;-1===e.indexOf(t)&&e.push(t)},render:Jm,toString:Xm,unbind:Zm,unregisterIndexRef:function(t){var e=this.registeredIndexRefs;e.splice(e.indexOf(t),1)},unrender:tv};var nv,av,rv=ev,iv=Ri,ov=["template","partials","components","decorators","events"],sv=new is("reset"),uv=function(t,e){function n(e,a,r){r&&r.partials[t]||e.forEach(function(e){e.type===Ap&&e.getPartialName()===t&&a.push(e),e.fragment&&n(e.fragment.items,a,r),i(e.fragments)?n(e.fragments,a,r):i(e.items)?n(e.items,a,r):e.type===Mp&&e.instance&&n(e.instance.fragment.items,a,e.instance),e.type===Pp&&(i(e.attributes)&&n(e.attributes,a,r),i(e.conditionalAttributes)&&n(e.conditionalAttributes,a,r))})}var a,r=[];return n(this.fragment.items,r),this.partials[t]=e,a=bs.start(this,!0),r.forEach(function(e){e.value=void 0,e.setValue(t)}),bs.end(),a},pv=ji,cv=xu("reverse"),lv=Li,fv=xu("shift"),dv=xu("sort"),hv=xu("splice"),mv=Ni,vv=Fi,gv=new is("teardown"),bv=Bi,yv=qi,xv=Ui,_v=new is("unrender"),wv=xu("unshift"),kv=Gi,Ev=new is("update"),Sv=Vi,Cv={add:Zo,animate:Es,detach:Cs,find:As,findAll:Fs,findAllComponents:Is,findComponent:Bs,findContainer:qs,findParent:Us,fire:Ws,get:Hs,insert:Qs,merge:Ys,observe:lu,observeOnce:fu,off:mu,on:vu,once:gu,pop:_u,push:wu,render:Tu,reset:iv,resetPartial:uv,resetTemplate:pv,reverse:cv,set:lv,shift:fv,sort:dv,splice:hv,subtract:mv,teardown:vv,toggle:bv,toHTML:yv,toHtml:yv,unrender:xv,unshift:wv,update:kv,updateModel:Sv},Pv=function(t,e,n){return n||Wi(t,e)?function(){var n,a="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),a&&(this._super=r),n}:t},Av=Hi,Ov=Yi,Tv=function(t){var e,n,a={};return t&&(e=t._ractive)?(a.ractive=e.root,a.keypath=e.keypath.str,a.index={},(n=Oc(e.proxy.parentFragment))&&(a.index=Oc.resolve(n)),a):a};nv=function(t){return this instanceof nv?void Om(this,t):new nv(t)},av={DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:Ov},getNodeInfo:{value:Tv},parse:{value:Hu},Promise:{value:ps},svg:{value:ao},magic:{value:eo},VERSION:{value:"0.7.3"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:uo},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Go},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}},Co(nv,av),nv.prototype=a(Cv,so),nv.prototype.constructor=nv,nv.defaults=nv.prototype;var Mv="function";if(typeof Date.now!==Mv||typeof String.prototype.trim!==Mv||typeof Object.keys!==Mv||typeof Array.prototype.indexOf!==Mv||typeof Array.prototype.forEach!==Mv||typeof Array.prototype.map!==Mv||typeof Array.prototype.filter!==Mv||"undefined"!=typeof window&&typeof window.addEventListener!==Mv)throw Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");var Rv=nv;return Rv})},{}],206:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.observe("value",function(e,n,a){var r=t.get(),i=r.min,o=r.max,s=Math.clamp(i,o,e);t.animate("percentage",Math.round((s-i)/(o-i)*100))})}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,305],t:7,e:"div",a:{"class":"bar"},f:[{p:[14,3,326],t:7,e:"div",a:{"class":["barFill ",{t:2,r:"state",p:[14,23,346]}],style:["width: ",{t:2,r:"percentage",p:[14,48,371]},"%"]}}," ",{p:[15,3,398],t:7,e:"span",a:{"class":"barText"},f:[{t:16,p:[15,25,420]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],207:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309);e.exports={computed:{clickable:function(){return!this.get("enabled")||this.get("state")&&"toggle"!=this.get("state")?!1:!0},enabled:function(){return this.get("config.status")===n.UI_INTERACTIVE?!0:!1},styles:function(){var t="";if(this.get("class")&&(t+=" "+this.get("class")),this.get("tooltip-side")&&(t=" tooltip-"+this.get("tooltip-side")),this.get("grid")&&(t+=" gridable"),this.get("enabled")){var e=this.get("state"),n=this.get("style");return e?"inactive "+e+" "+t:"active normal "+n+" "+t}return"inactive disabled "+t}},oninit:function(){var t=this;this.on("press",function(e){var n=t.get(),r=n.action,i=n.params;(0,a.act)(t.get("config.ref"),r,i),e.node.blur()})},data:{iconStackToHTML:function(t){var e="",n=t.split(",");if(n.length){e+='';for(var a=n,r=Array.isArray(a),i=0,a=r?a:a[Symbol.iterator]();;){var o;if(r){if(i>=a.length)break;o=a[i++]}else{if(i=a.next(),i.done)break;o=i.value}var s=o,u=/([\w\-]+)\s*(\dx)/g,p=u.exec(s),c=p[1],l=p[2];e+=''}}return e&&(e+=""),e}}}}(r),r.exports.template={v:3,t:[" ",{p:[70,1,2015],t:7,e:"span",a:{"class":["button ",{t:2,r:"styles",p:[70,21,2035]}],unselectable:"on","data-tooltip":[{t:2,r:"tooltip",p:[73,17,2120]}]},m:[{t:4,f:["tabindex='0'"],r:"clickable",p:[72,3,2071]}],v:{"mouseover-mousemove":"hover",mouseleave:"unhover","click-enter":{n:[{t:4,f:["press"],r:"clickable",p:[76,19,2213]}],d:[]}},f:[{t:4,f:[{p:[78,5,2261],t:7,e:"i",a:{"class":["fa fa-",{t:2,r:"icon",p:[78,21,2277]}]}}],n:50,r:"icon",p:[77,3,2243]}," ",{t:4,f:[{t:3,x:{r:["iconStackToHTML","icon_stack"],s:"_0(_1)"},p:[81,6,2331]}],n:50,r:"icon_stack",p:[80,3,2306]}," ",{t:16,p:[83,3,2379]}]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310}],208:[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":"display"},f:[{t:4,f:[{p:[3,5,44],t:7,e:"header",f:[{p:[4,7,60],t:7,e:"h3",f:[{t:2,r:"title",p:[4,11,64]}]}," ",{t:4,f:[{p:[6,9,110],t:7,e:"div",a:{"class":"buttonRight"},f:[{t:16,n:"button",p:[6,34,135]}]}],n:50,r:"button",p:[5,7,86]}]}],n:50,r:"title",p:[2,3,25]}," ",{p:[10,3,202],t:7,e:"article",f:[{t:16,p:[11,5,217]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],209:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.on("clear",function(){t.set("value",""),t.find("input").focus()})}}}(r),r.exports.template={v:3,t:[" ",{p:[12,1,170],t:7,e:"input",a:{type:"text",value:[{t:2,r:"value",p:[12,27,196]}],placeholder:[{t:2,r:"placeholder",p:[12,51,220]}]}}," ",{p:[13,1,240],t:7,e:"ui-button",a:{icon:"refresh"},v:{press:"clear"}}]},e.exports=a.extend(r.exports)},{205:205}],210:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";e.exports={data:{graph:t(201),xaccessor:function(t){return t.x},yaccessor:function(t){return t.y}},computed:{size:function(){var t=this.get("points");return t[0].length},scale:function(){var t=this.get("points");return Math.max.apply(Math,Array.map(t,function(t){return Math.max.apply(Math,Array.map(t,function(t){return t.y}))}))},xaxis:function(){var t=this.get("xinc"),e=this.get("size");return Array.from(Array(e).keys()).filter(function(e){return e&&e%t==0})},yaxis:function(){var t=this.get("yinc"),e=this.get("scale");return Array.from(Array(t).keys()).map(function(t){return Math.round(e*(++t/100)*10)})}},oninit:function(){var t=this;this.on({enter:function(t){this.set("selected",t.index.count)},exit:function(t){this.set("selected")}}),window.addEventListener("resize",function(e){t.set("width",t.el.clientWidth)})},onrender:function(){this.set("width",this.el.clientWidth)}}}(r),r.exports.template={v:3,t:[" ",{p:[47,1,1269],t:7,e:"svg",a:{"class":"linegraph",width:"100%",height:[{t:2,x:{r:["height"],s:"_0+10"},p:[47,45,1313]}]},f:[{p:[48,3,1334],t:7,e:"g",a:{transform:"translate(0, 5)"},f:[{t:4,f:[{t:4,f:[{p:[51,9,1504],t:7,e:"line",a:{x1:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,19,1514]}],x2:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[51,38,1533]}],y1:"0",y2:[{t:2,r:"height",p:[51,64,1559]}],stroke:"darkgray"}}," ",{t:4,f:[{p:[53,11,1635],t:7,e:"text",a:{x:[{t:2,x:{r:["xscale","."],s:"_0(_1)"},p:[53,20,1644]}],y:[{t:2,x:{r:["height"],s:"_0-5"},p:[53,38,1662]}],"text-anchor":"middle",fill:"white"},f:[{t:2,x:{r:["size",".","xfactor"],s:"(_0-_1)*_2"},p:[53,88,1712]}," ",{t:2,r:"xunit",p:[53,113,1737]}]}],n:50,x:{r:["@index"],s:"_0%2==0"},p:[52,9,1600]}],n:52,r:"xaxis",p:[50,7,1479]}," ",{t:4,f:[{p:[57,9,1820],t:7,e:"line",a:{x1:"0",x2:[{t:2,r:"width",p:[57,26,1837]}],y1:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,41,1852]}],y2:[{t:2,x:{r:["yscale","."],s:"_0(_1)"},p:[57,60,1871]}],stroke:"darkgray"}}," ",{p:[58,9,1915],t:7,e:"text",a:{x:"0",y:[{t:2,x:{r:["yscale","."],s:"_0(_1)-5"},p:[58,24,1930]}],"text-anchor":"begin",fill:"white"},f:[{t:2,x:{r:[".","yfactor"],s:"_0*_1"},p:[58,76,1982]}," ",{t:2,r:"yunit",p:[58,92,1998]}]}],n:52,r:"yaxis",p:[56,7,1795]}," ",{t:4,f:[{p:[61,9,2071],t:7,e:"path",a:{d:[{t:2,x:{r:["area.path"],s:"_0.print()"},p:[61,18,2080]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[61,47,2109]}],opacity:"0.1"}}],n:52,i:"curve",r:"curves",p:[60,7,2039]}," ",{t:4,f:[{p:[64,9,2200],t:7,e:"path",a:{d:[{t:2,x:{r:["line.path"],s:"_0.print()"},p:[64,18,2209]}],stroke:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[64,49,2240]}],fill:"none"}}],n:52,i:"curve",r:"curves",p:[63,7,2168]}," ",{t:4,f:[{t:4,f:[{p:[68,11,2375],t:7,e:"circle",a:{transform:["translate(",{t:2,r:".",p:[68,40,2404]},")"],r:[{t:2,x:{r:["selected","count"],s:"_0==_1?10:4"},p:[68,51,2415]}],fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[68,89,2453]}]},v:{mouseenter:"enter",mouseleave:"exit"}}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[67,9,2329]}],n:52,i:"curve",r:"curves",p:[66,7,2297]}," ",{t:4,f:[{t:4,f:[{t:4,f:[{p:[74,13,2678],t:7,e:"text",a:{transform:["translate(",{t:2,r:".",p:[74,40,2705]},") ",{t:2,x:{r:["count","size"],s:'_0<=_1/2?"translate(15, 4)":"translate(-15, 4)"'},p:[74,47,2712]}],"text-anchor":[{t:2,x:{r:["count","size"],s:'_0<=_1/2?"start":"end"'},p:[74,126,2791]}],fill:"white"},f:[{t:2,x:{r:["count","item","yfactor"],s:"_1[_0].y*_2"},p:[75,15,2861]}," ",{t:2,r:"yunit",p:[75,43,2889]}," @ ",{t:2,x:{r:["size","count","item","xfactor"],s:"(_0-_2[_1].x)*_3"},p:[75,55,2901]}," ",{t:2,r:"xunit",p:[75,92,2938]}]}],n:50,x:{r:["selected","count"],s:"_0==_1"},p:[73,11,2638]}],n:52,i:"count",x:{r:["line.path"],s:"_0.points()"},p:[72,9,2592]}],n:52,i:"curve",r:"curves",p:[71,7,2560]}," ",{t:4,f:[{p:[81,9,3063],t:7,e:"g",a:{transform:["translate(",{t:2,x:{r:["width","curves.length","@index"],s:"(_0/(_1+1))*(_2+1)"},p:[81,33,3087]},", 10)"]},f:[{p:[82,11,3154],t:7,e:"circle",a:{r:"4",fill:[{t:2,rx:{r:"colors",m:[{t:30,n:"curve"}]},p:[82,31,3174]}]}}," ",{p:[83,11,3206],t:7,e:"text",a:{x:"8",y:"4",fill:"white"},f:[{t:2,rx:{r:"legend",m:[{t:30,n:"curve"}]},p:[83,42,3237]}]}]}],n:52,i:"curve",r:"curves",p:[80,7,3031]}],x:{r:["graph","points","xaccessor","yaccessor","width","height"],s:"_0({data:_1,xaccessor:_2,yaccessor:_3,width:_4,height:_5})"},p:[49,5,1371]}]}]}]},e.exports=a.extend(r.exports)},{201:201,205:205}],211:[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":"notice"},f:[{t:16,p:[2,3,24]}]}]},e.exports=a.extend(r.exports)},{205:205}],212:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);e.exports={oninit:function(){var t=this,e=a.resize.bind(this),r=function(){return t.set({resize:!1,x:null,y:null})};this.observe("config.fancy",function(a,i,o){(0,n.winset)(t.get("config.window"),"can-resize",!a),a?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r))}),this.on("resize",function(){return t.toggle("resize")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[28,3,766],t:7,e:"div",a:{"class":"resize"},v:{mousedown:"resize"}}],n:50,r:"config.fancy",p:[27,1,742]}]},e.exports=a.extend(r.exports)},{205:205,309:309,311:311}],213:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"section",a:{"class":[{t:4,f:["candystripe"],r:"candystripe",p:[1,17,16]}]},f:[{t:4,f:[{p:[3,5,84],t:7,e:"span",a:{"class":"label",style:[{t:4,f:["color:",{t:2,r:"labelcolor",p:[3,53,132]}],r:"labelcolor",p:[3,32,111]}]},f:[{t:2,r:"label",p:[3,84,163]},":"]}],n:50,r:"label",p:[2,3,65]}," ",{t:4,f:[{t:16,p:[6,5,215]}],n:50,r:"nowrap",p:[5,3,195]},{t:4,n:51,f:[{p:[8,5,242],t:7,e:"div",a:{"class":"content",style:[{t:4,f:["float:right;"],r:"right",p:[8,33,270]}]},f:[{t:16,p:[9,7,312]}]}],r:"nowrap"}]}]},e.exports=a.extend(r.exports)},{205:205}],214:[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":"subdisplay"},f:[{t:4,f:[{p:[3,5,47],t:7,e:"header",f:[{p:[4,7,63],t:7,e:"h4",f:[{t:2,r:"title",p:[4,11,67]}]}," ",{t:4,f:[{t:16,n:"button",p:[5,21,103]}],n:50,r:"button",p:[5,7,89]}]}],n:50,r:"title",p:[2,3,28]}," ",{p:[8,3,156],t:7,e:"article",f:[{t:16,p:[9,5,171]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],215:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={oninit:function(){var t=this;this.set("active",this.findComponent("tab").get("name")),this.on("switch",function(e){t.set("active",e.node.textContent.trim())}),this.observe("active",function(e,n,a){for(var r=t.findAllComponents("tab"),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;u.set("shown",u.get("name")===e)}})}}}(r),r.exports.template={v:3,t:[" "," ",{p:[20,1,524],t:7,e:"header",f:[{t:4,f:[{p:[22,5,556],t:7,e:"ui-button",a:{pane:[{t:2,r:".",p:[22,22,573]}]},v:{press:"switch"},f:[{t:2,r:".",p:[22,47,598]}]}],n:52,r:"tabs",p:[21,3,536]}]}," ",{p:[25,1,641],t:7,e:"ui-display",f:[{t:8,r:"content",p:[26,3,657]}]}]},r.exports.components=r.exports.components||{};var i={tab:t(216)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,216:216}],216:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:16,p:[2,3,17]}],n:50,r:"shown",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{205:205}],217:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(310),a=t(309),r=t(311);e.exports={computed:{visualStatus:function(){switch(this.get("config.status")){case n.UI_INTERACTIVE:return"good";case n.UI_UPDATE:return"average";case n.UI_DISABLED:return"bad";default:return"bad"}}},oninit:function(){var t=this,e=r.drag.bind(this),n=function(e){return t.set({drag:!1,x:null,y:null})};this.observe("config.fancy",function(r,i,o){(0,a.winset)(t.get("config.window"),"titlebar",!r&&t.get("config.titlebar")),r?(document.addEventListener("mousemove",e),document.addEventListener("mouseup",n)):(document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n))}),this.on({drag:function(){this.toggle("drag")},close:function(){(0,a.winset)(this.get("config.window"),"is-visible",!1),window.location.href=(0,a.href)({command:"uiclose "+this.get("config.ref")},"winset")},minimize:function(){(0,a.winset)(this.get("config.window"),"is-minimized",!0)}})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[50,3,1440],t:7,e:"header",a:{"class":"titlebar"},v:{mousedown:"drag"},f:[{p:[51,5,1491],t:7,e:"i",a:{"class":["statusicon fa fa-eye fa-2x ",{t:2,r:"visualStatus",p:[51,42,1528]}]}}," ",{p:[52,5,1556],t:7,e:"span",a:{"class":"title"},f:[{t:16,p:[52,25,1576]}]}," ",{t:4,f:[{p:[54,7,1626],t:7,e:"i",a:{"class":"minimize fa fa-minus fa-2x"},v:{click:"minimize"}}," ",{p:[55,7,1696],t:7,e:"i",a:{"class":"close fa fa-close fa-2x"},v:{click:"close"}}],n:50,r:"config.fancy",p:[53,5,1598]}]}],n:50,r:"config.titlebar",p:[49,1,1413]}]},e.exports=a.extend(r.exports)},{205:205,309:309,310:310,311:311}],218:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";var e=[11,10,9,8];t.exports={data:{userAgent:navigator.userAgent},computed:{ie:function(){if(document.documentMode)return document.documentMode;for(var t in e){var n=document.createElement("div");if(n.innerHTML="",n.getElementsByTagName("span").length)return t}}},oninit:function(){var t=this;this.on("debug",function(){return t.toggle("debug")})}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[27,3,662],t:7,e:"ui-notice",f:[{p:[28,5,679],t:7,e:"span",f:["You have an old (IE",{t:2,r:"ie",p:[28,30,704]},"), end-of-life (click 'EOL Info' for more information) version of Internet Explorer installed."]},{p:[28,137,811],t:7,e:"br"}," ",{p:[29,5,822],t:7,e:"span",f:["To upgrade, click 'Upgrade IE' to download IE11 from Microsoft."]},{p:[29,81,898],t:7,e:"br"}," ",{p:[30,5,909],t:7,e:"span",f:["If you are unable to upgrade directly, click 'IE VMs' to download a VM with IE11 or Edge from Microsoft."]},{p:[30,122,1026],t:7,e:"br"}," ",{p:[31,5,1037],t:7,e:"span",f:["Otherwise, click 'No Frills' below to disable potentially incompatible features (and this message)."]}," ",{p:[32,5,1155],t:7,e:"hr"}," ",{p:[33,5,1166],t:7,e:"ui-button",a:{icon:"close",action:"tgui:nofrills"},f:["No Frills"]}," ",{p:[34,5,1240],t:7,e:"ui-button",a:{icon:"internet-explorer",action:"tgui:link",params:'{"url": "http://windows.microsoft.com/en-us/internet-explorer/download-ie"}'},f:["Upgrade IE"]}," ",{p:[36,5,1416],t:7,e:"ui-button",a:{icon:"edge",action:"tgui:link",params:'{"url": "https://dev.windows.com/en-us/microsoft-edge/tools/vms"}'},f:["IE VMs"]}," ",{p:[38,5,1565],t:7,e:"ui-button",a:{icon:"info",action:"tgui:link",params:'{"url": "https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer"}'},f:["EOL Info"]}," ",{p:[40,5,1738],t:7,e:"ui-button",a:{icon:"bug"},v:{press:"debug"},f:["Debug Info"]}," ",{t:4,f:[{p:[42,7,1826],t:7,e:"hr"}," ",{p:[43,7,1839],t:7,e:"span",f:["Detected: IE",{t:2,r:"ie",p:[43,25,1857]}]},{p:[43,38,1870],t:7,e:"br"}," ",{p:[44,7,1883],t:7,e:"span",f:["User Agent: ",{t:2,r:"userAgent",p:[44,25,1901]}]}],n:50,r:"debug",p:[41,5,1805]}]}],n:50,x:{r:["config.fancy","ie"],s:"_0&&_1&&_1<11"},p:[26,1,621]}]},e.exports=a.extend(r.exports)},{205:205}],219:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," ",{p:[7,1,267],t:7,e:"ui-notice",f:[{t:4,f:[{p:[9,5,312],t:7,e:"ui-section",a:{ - label:"Interface Lock"},f:[{p:[10,7,355],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[10,24,372]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[10,75,423]}]}]}],n:50,r:"data.siliconUser",p:[8,3,282]},{t:4,n:51,f:[{p:[13,5,514],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,31,540]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[16,1,625],t:7,e:"status"}," ",{t:4,f:[{t:4,f:[{p:[19,7,719],t:7,e:"ui-display",a:{title:"Air Controls"},f:[{p:[20,9,762],t:7,e:"ui-section",f:[{p:[21,11,786],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"exclamation-triangle":"exclamation"'},p:[21,28,803]}],style:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"caution":null'},p:[21,98,873]}],action:[{t:2,x:{r:["data.atmos_alarm"],s:'_0?"reset":"alarm"'},p:[22,23,937]}]},f:["Area Atmosphere Alarm"]}]}," ",{p:[24,9,1045],t:7,e:"ui-section",f:[{p:[25,11,1069],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0==3?"exclamation-triangle":"exclamation"'},p:[25,28,1086]}],style:[{t:2,x:{r:["data.mode"],s:'_0==3?"danger":null'},p:[25,96,1154]}],action:"mode",params:['{"mode": ',{t:2,x:{r:["data.mode"],s:"_0==3?1:3"},p:[26,44,1236]},"}"]},f:["Panic Siphon"]}]}," ",{p:[28,9,1322],t:7,e:"br"}," ",{p:[29,9,1337],t:7,e:"ui-section",f:[{p:[30,11,1361],t:7,e:"ui-button",a:{icon:"sign-out",action:"tgui:view",params:'{"screen": "vents"}'},f:["Vent Controls"]}]}," ",{p:[32,9,1494],t:7,e:"ui-section",f:[{p:[33,11,1518],t:7,e:"ui-button",a:{icon:"filter",action:"tgui:view",params:'{"screen": "scrubbers"}'},f:["Scrubber Controls"]}]}," ",{p:[35,9,1657],t:7,e:"ui-section",f:[{p:[36,11,1681],t:7,e:"ui-button",a:{icon:"cog",action:"tgui:view",params:'{"screen": "modes"}'},f:["Operating Mode"]}]}," ",{p:[38,9,1810],t:7,e:"ui-section",f:[{p:[39,11,1834],t:7,e:"ui-button",a:{icon:"bar-chart",action:"tgui:view",params:'{"screen": "thresholds"}'},f:["Alarm Thresholds"]}]}]}],n:50,x:{r:["config.screen"],s:'_0=="home"'},p:[18,3,680]},{t:4,n:51,f:[{t:4,n:50,x:{r:["config.screen"],s:'_0=="vents"'},f:[{p:[43,5,2032],t:7,e:"vents"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&(_0=="scrubbers")'},f:[" ",{p:[45,5,2089],t:7,e:"scrubbers"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&(_0=="modes"))'},f:[" ",{p:[47,5,2146],t:7,e:"modes"}]},{t:4,n:50,x:{r:["config.screen"],s:'(!(_0=="vents"))&&((!(_0=="scrubbers"))&&((!(_0=="modes"))&&(_0=="thresholds")))'},f:[" ",{p:[49,5,2204],t:7,e:"thresholds"}]}],x:{r:["config.screen"],s:'_0=="home"'}}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[17,1,636]}]},r.exports.components=r.exports.components||{};var i={vents:t(225),modes:t(221),thresholds:t(224),status:t(223),scrubbers:t(222)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,221:221,222:222,223:223,224:224,225:225}],220:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-button",a:{icon:"arrow-left",action:"tgui:view",params:'{"screen": "home"}'},f:["Back"]}]},e.exports=a.extend(r.exports)},{205:205}],221:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,115],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Operating Modes",button:0},f:[" ",{t:4,f:[{p:[8,5,168],t:7,e:"ui-section",f:[{p:[9,7,188],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["selected"],s:'_0?"check-square-o":"square-o"'},p:[9,24,205]}],state:[{t:2,x:{r:["selected","danger"],s:'_0?_1?"danger":"selected":null'},p:[10,16,267]}],action:"mode",params:['{"mode": ',{t:2,r:"mode",p:[11,40,361]},"}"]},f:[{t:2,r:"name",p:[11,51,372]}]}]}],n:52,r:"data.modes",p:[7,3,142]}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],222:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,117],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Scrubber Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,174],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,196]}]},f:[{p:[9,7,219],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,255],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,272]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,314]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,391]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,411]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,425]}]}]}," ",{p:[13,7,490],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,525],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["scrubbing"],s:'_0?"filter":"sign-in"'},p:[14,26,542]}],style:[{t:2,x:{r:["scrubbing"],s:'_0?null:"danger"'},p:[14,71,587]}],action:"scrubbing",params:['{"id_tag": "',{t:2,r:"id_tag",p:[15,50,670]},'", "val": ',{t:2,x:{r:["scrubbing"],s:"+!_0"},p:[15,70,690]},"}"]},f:[{t:2,x:{r:["scrubbing"],s:'_0?"Scrubbing":"Siphoning"'},p:[15,88,708]}]}]}," ",{p:[17,7,790],t:7,e:"ui-section",a:{label:"Range"},f:[{p:[18,9,826],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["widenet"],s:'_0?"expand":"compress"'},p:[18,26,843]}],style:[{t:2,x:{r:["widenet"],s:'_0?"selected":null'},p:[18,70,887]}],action:"widenet",params:['{"id_tag": "',{t:2,r:"id_tag",p:[19,48,968]},'", "val": ',{t:2,x:{r:["widenet"],s:"+!_0"},p:[19,68,988]},"}"]},f:[{t:2,x:{r:["widenet"],s:'_0?"Expanded":"Normal"'},p:[19,84,1004]}]}]}," ",{p:[21,7,1080],t:7,e:"ui-section",a:{label:"Filters"},f:[{p:[22,9,1118],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_co2"],s:'_0?"check-square-o":"square-o"'},p:[22,26,1135]}],style:[{t:2,x:{r:["filter_co2"],s:'_0?"selected":null'},p:[22,81,1190]}],action:"co2_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[23,50,1276]},'", "val": ',{t:2,x:{r:["filter_co2"],s:"+!_0"},p:[23,70,1296]},"}"]},f:["CO2"]}," ",{p:[24,9,1340],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_n2o"],s:'_0?"check-square-o":"square-o"'},p:[24,26,1357]}],style:[{t:2,x:{r:["filter_n2o"],s:'_0?"selected":null'},p:[24,81,1412]}],action:"n2o_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[25,50,1498]},'", "val": ',{t:2,x:{r:["filter_n2o"],s:"+!_0"},p:[25,70,1518]},"}"]},f:["N2O"]}," ",{p:[26,9,1562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_toxins"],s:'_0?"check-square-o":"square-o"'},p:[26,26,1579]}],style:[{t:2,x:{r:["filter_toxins"],s:'_0?"selected":null'},p:[26,84,1637]}],action:"tox_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[27,50,1726]},'", "val": ',{t:2,x:{r:["filter_toxins"],s:"+!_0"},p:[27,70,1746]},"}"]},f:["Plasma"]}," ",{p:[28,3,1790],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_bz"],s:'_0?"check-square-o":"square-o"'},p:[28,20,1807]}],style:[{t:2,x:{r:["filter_bz"],s:'_0?"selected":null'},p:[28,74,1861]}],action:"bz_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[29,43,1939]},'", "val": ',{t:2,x:{r:["filter_bz"],s:"+!_0"},p:[29,63,1959]},"}"]},f:["BZ"]}," ",{p:[30,3,1995],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_freon"],s:'_0?"check-square-o":"square-o"'},p:[30,20,2012]}],style:[{t:2,x:{r:["filter_freon"],s:'_0?"selected":null'},p:[30,77,2069]}],action:"freon_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[31,46,2153]},'", "val": ',{t:2,x:{r:["filter_freon"],s:"+!_0"},p:[31,66,2173]},"}"]},f:["Freon"]}," ",{p:[32,3,2215],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"check-square-o":"square-o"'},p:[32,20,2232]}],style:[{t:2,x:{r:["filter_water_vapor"],s:'_0?"selected":null'},p:[32,83,2295]}],action:"water_vapor_scrub",params:['{"id_tag": "',{t:2,r:"id_tag",p:[33,52,2391]},'", "val": ',{t:2,x:{r:["filter_water_vapor"],s:"+!_0"},p:[33,72,2411]},"}"]},f:["Water Vapor"]}]}]}],n:52,r:"data.scrubbers",p:[7,3,144]},{t:4,n:51,f:[{p:[37,5,2522],t:7,e:"span",a:{"class":"bad"},f:["Error: No scrubbers connected."]}],r:"data.scrubbers"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],223:[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:"Air Status"},f:[{t:4,f:[{t:4,f:[{p:[4,7,110],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[4,26,129]}]},f:[{p:[5,6,146],t:7,e:"span",a:{"class":[{t:2,x:{r:["danger_level"],s:'_0==2?"bad":_0==1?"average":"good"'},p:[5,19,159]}]},f:[{t:2,x:{r:["value"],s:"Math.fixed(_0,2)"},p:[6,5,237]},{t:2,r:"unit",p:[6,29,261]}]}]}],n:52,r:"adata.environment_data",p:[3,5,70]}," ",{p:[10,5,322],t:7,e:"ui-section",a:{label:"Local Status"},f:[{p:[11,7,363],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.danger_level"],s:'_0==2?"bad bold":_0==1?"average bold":"good"'},p:[11,20,376]}]},f:[{t:2,x:{r:["data.danger_level"],s:'_0==2?"Danger (Internals Required)":_0==1?"Caution":"Optimal"'},p:[12,6,475]}]}]}," ",{p:[15,5,619],t:7,e:"ui-section",a:{label:"Area Status"},f:[{p:[16,7,659],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.atmos_alarm","data.fire_alarm"],s:'_0||_1?"bad bold":"good"'},p:[16,20,672]}]},f:[{t:2,x:{r:["data.atmos_alarm","fire_alarm"],s:'_0?"Atmosphere Alarm":_1?"Fire Alarm":"Nominal"'},p:[17,8,744]}]}]}],n:50,r:"data.environment_data",p:[2,3,35]},{t:4,n:51,f:[{p:[21,5,876],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[22,7,912],t:7,e:"span",a:{"class":"bad bold"},f:["Cannot obtain air sample for analysis."]}]}],r:"data.environment_data"}," ",{t:4,f:[{p:[26,5,1040],t:7,e:"ui-section",a:{label:"Warning"},f:[{p:[27,7,1076],t:7,e:"span",a:{"class":"bad bold"},f:["Safety measures offline. Device may exhibit abnormal behavior."]}]}],n:50,r:"data.emagged",p:[25,3,1014]}]}]},e.exports=a.extend(r.exports)},{205:205}],224:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" th, td {\r\n padding-right: 16px;\r\n text-align: left;\r\n }",r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,116],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Alarm Thresholds",button:0},f:[" ",{p:[7,3,143],t:7,e:"table",f:[{p:[8,5,156],t:7,e:"thead",f:[{p:[8,12,163],t:7,e:"tr",f:[{p:[9,7,175],t:7,e:"th"}," ",{p:[10,7,192],t:7,e:"th",f:[{p:[10,11,196],t:7,e:"span",a:{"class":"bad"},f:["min2"]}]}," ",{p:[11,7,238],t:7,e:"th",f:[{p:[11,11,242],t:7,e:"span",a:{"class":"average"},f:["min1"]}]}," ",{p:[12,7,288],t:7,e:"th",f:[{p:[12,11,292],t:7,e:"span",a:{"class":"average"},f:["max1"]}]}," ",{p:[13,7,338],t:7,e:"th",f:[{p:[13,11,342],t:7,e:"span",a:{"class":"bad"},f:["max2"]}]}]}]}," ",{p:[15,5,401],t:7,e:"tbody",f:[{t:4,f:[{p:[16,32,441],t:7,e:"tr",f:[{p:[17,9,455],t:7,e:"th",f:[{t:3,r:"name",p:[17,13,459]}]}," ",{t:4,f:[{p:[18,27,502],t:7,e:"td",f:[{p:[19,11,518],t:7,e:"ui-button",a:{action:"threshold",params:['{"env": "',{t:2,r:"env",p:[19,58,565]},'", "var": "',{t:2,r:"val",p:[19,76,583]},'"}']},f:[{t:2,x:{r:["selected"],s:"Math.fixed(_0,2)"},p:[19,87,594]}]}]}],n:52,r:"settings",p:[18,9,484]}]}],n:52,r:"data.thresholds",p:[16,7,416]}]}," ",{p:[23,3,697],t:7,e:"table",f:[]}]}]}," "]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],225:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[" ",{p:{button:[{p:[5,5,113],t:7,e:"back"}]},t:7,e:"ui-display",a:{title:"Vent Controls",button:0},f:[" ",{t:4,f:[{p:[8,5,166],t:7,e:"ui-subdisplay",a:{title:[{t:2,r:"long_name",p:[8,27,188]}]},f:[{p:[9,7,211],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[10,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["power"],s:'_0?"power-off":"close"'},p:[10,26,264]}],style:[{t:2,x:{r:["power"],s:'_0?"selected":null'},p:[10,68,306]}],action:"power",params:['{"id_tag": "',{t:2,r:"id_tag",p:[11,46,383]},'", "val": ',{t:2,x:{r:["power"],s:"+!_0"},p:[11,66,403]},"}"]},f:[{t:2,x:{r:["power"],s:'_0?"On":"Off"'},p:[11,80,417]}]}]}," ",{p:[13,7,482],t:7,e:"ui-section",a:{label:"Mode"},f:[{p:[14,9,517],t:7,e:"span",f:[{t:2,x:{r:["direction"],s:'_0=="release"?"Pressurizing":"Siphoning"'},p:[14,15,523]}]}]}," ",{p:[16,7,616],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[17,9,665],t:7,e:"ui-button",a:{icon:"sign-in",style:[{t:2,x:{r:["incheck"],s:'_0?"selected":null'},p:[17,42,698]}],action:"incheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[18,48,779]},'", "val": ',{t:2,r:"checks",p:[18,68,799]},"}"]},f:["Internal"]}," ",{p:[19,9,842],t:7,e:"ui-button",a:{icon:"sign-out",style:[{t:2,x:{r:["excheck"],s:'_0?"selected":null'},p:[19,43,876]}],action:"excheck",params:['{"id_tag": "',{t:2,r:"id_tag",p:[20,48,957]},'", "val": ',{t:2,r:"checks",p:[20,68,977]},"}"]},f:["External"]}]}," ",{p:[22,7,1039],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,9,1085],t:7,e:"ui-button",a:{icon:"pencil",action:"set_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[24,31,1172]},'"}']},f:[{t:2,x:{r:["external"],s:"Math.fixed(_0)"},p:[24,45,1186]}]}," ",{p:[25,9,1232],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["extdefault"],s:'_0?"disabled":null'},p:[25,42,1265]}],action:"reset_external_pressure",params:['{"id_tag": "',{t:2,r:"id_tag",p:[26,31,1365]},'"}']},f:["Reset"]}]}]}],n:52,r:"data.vents",p:[7,3,140]},{t:4,n:51,f:[{p:[30,5,1457],t:7,e:"span",a:{"class":"bad"},f:["Error: No vents connected."]}],r:"data.vents"}]}]},r.exports.components=r.exports.components||{};var i={back:t(220)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,220:220}],226:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.css=" table {\r\n width: 100%;\r\n border-spacing: 2px;\r\n }\r\n th {\r\n text-align: left;\r\n }\r\n td {\r\n vertical-align: top;\r\n }\r\n td .button {\r\n margin-top: 4px\r\n }",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",f:[{p:[3,5,34],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oneAccess"],s:'_0?"unlock":"lock"'},p:[3,22,51]}],action:"one_access"},f:[{t:2,x:{r:["data.oneAccess"],s:'_0?"One":"All"'},p:[3,82,111]}," Required"]}," ",{p:[4,5,172],t:7,e:"ui-button",a:{icon:"refresh",action:"clear"},f:["Clear"]}]}," ",{p:[6,3,251],t:7,e:"hr"}," ",{p:[7,3,260],t:7,e:"table",f:[{p:[8,3,271],t:7,e:"thead",f:[{p:[9,4,283],t:7,e:"tr",f:[{t:4,f:[{p:[10,5,315],t:7,e:"th",f:[{p:[10,9,319],t:7,e:"span",a:{"class":"highlight bold"},f:[{t:2,r:"name",p:[10,38,348]}]}]}],n:52,r:"data.regions",p:[9,8,287]}]}]}," ",{p:[13,3,403],t:7,e:"tbody",f:[{p:[14,4,415],t:7,e:"tr",f:[{t:4,f:[{p:[15,5,447],t:7,e:"td",f:[{t:4,f:[{p:[16,11,481],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["req"],s:'_0?"check-square-o":"square-o"'},p:[16,28,498]}],style:[{t:2,x:{r:["req"],s:'_0?"selected":null'},p:[16,76,546]}],action:"set",params:['{"access": "',{t:2,r:"id",p:[17,46,621]},'"}']},f:[{t:2,r:"name",p:[17,56,631]}]}," ",{p:[18,9,661],t:7,e:"br"}],n:52,r:"accesses",p:[15,9,451]}]}],n:52,r:"data.regions",p:[14,8,419]}]}]}]}]}," "]},e.exports=a.extend(r.exports)},{205:205}],227:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}}},computed:{malfAction:function(){switch(this.get("data.malfStatus")){case 1:return"hack";case 2:return"occupy";case 3:return"deoccupy"}},malfButton:function(){switch(this.get("data.malfStatus")){case 1:return"Override Programming";case 2:case 4:return"Shunt Core Process";case 3:return"Return to Main Core"}},malfIcon:function(){switch(this.get("data.malfStatus")){case 1:return"terminal";case 2:case 4:return"caret-square-o-down";case 3:return"caret-square-o-left"}},powerCellStatusState:function(){var t=this.get("data.powerCellStatus");return t>50?"good":t>25?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[46,2,1206],t:7,e:"ui-notice",f:[{p:[47,3,1221],t:7,e:"b",f:[{p:[47,6,1224],t:7,e:"h3",f:["SYSTEM FAILURE"]}]}," ",{p:[48,3,1255],t:7,e:"i",f:["I/O regulators malfunction detected! Waiting for system reboot..."]},{p:[48,75,1327],t:7,e:"br"}," Automatic reboot in ",{t:2,r:"data.failTime",p:[49,23,1355]}," seconds... ",{p:[50,3,1387],t:7,e:"ui-button",a:{icon:"refresh",action:"reboot"},f:["Reboot Now"]},{p:[50,67,1451],t:7,e:"br"},{p:[50,71,1455],t:7,e:"br"},{p:[50,75,1459],t:7,e:"br"}]}],n:50,r:"data.failTime",p:[45,1,1182]},{t:4,n:51,f:[{p:[53,2,1491],t:7,e:"ui-notice",f:[{t:4,f:[{p:[55,3,1535],t:7,e:"ui-section",a:{label:"Interface Lock"},f:[{p:[56,5,1576],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"lock":"unlock"'},p:[56,22,1593]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Engaged":"Disengaged"'},p:[56,73,1644]}]}]}],n:50,r:"data.siliconUser",p:[54,4,1507]},{t:4,n:51,f:[{p:[59,3,1732],t:7,e:"span",f:["Swipe an ID card to ",{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[59,29,1758]}," this interface."]}],r:"data.siliconUser"}]}," ",{p:[62,2,1846],t:7,e:"ui-display",a:{title:"Power Status"},f:[{p:[63,4,1884],t:7,e:"ui-section",a:{label:"Main Breaker"},f:[{t:4,f:[{p:[65,5,1967],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.isOperating"],s:'_0?"good":"bad"'},p:[65,18,1980]}]},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[65,57,2019]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[64,3,1921]},{t:4,n:51,f:[{p:[67,5,2079],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isOperating"],s:'_0?"power-off":"close"'},p:[67,22,2096]}],style:[{t:2,x:{r:["data.isOperating"],s:'_0?"selected":null'},p:[67,75,2149]}],action:"breaker"},f:[{t:2,x:{r:["data.isOperating"],s:'_0?"On":"Off"'},p:[68,21,2212]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}," ",{p:[71,4,2293],t:7,e:"ui-section",a:{label:"External Power"},f:[{p:[72,3,2332],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.externalPower"],s:"_0(_1)"},p:[72,16,2345]}]},f:[{t:2,x:{r:["data.externalPower"],s:'_0==2?"Good":_0==1?"Low":"None"'},p:[72,52,2381]}]}]}," ",{p:[74,4,2490],t:7,e:"ui-section",a:{label:"Power Cell"},f:[{t:4,f:[{p:[76,5,2567],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerCellStatus",p:[76,38,2600]}],state:[{t:2,r:"powerCellStatusState",p:[76,71,2633]}]},f:[{t:2,x:{r:["adata.powerCellStatus"],s:"Math.fixed(_0)"},p:[76,97,2659]},"%"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[75,3,2525]},{t:4,n:51,f:[{p:[78,5,2724],t:7,e:"span",a:{"class":"bad"},f:["Removed"]}],x:{r:["data.powerCellStatus"],s:"_0!=null"}}]}," ",{t:4,f:[{p:[82,3,2830],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{t:4,f:[{p:[84,4,2913],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.chargeMode"],s:'_0?"good":"bad"'},p:[84,17,2926]}]},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[84,55,2964]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[83,5,2868]},{t:4,n:51,f:[{p:[86,4,3026],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.chargeMode"],s:'_0?"refresh":"close"'},p:[86,21,3043]}],style:[{t:2,x:{r:["data.chargeMode"],s:'_0?"selected":null'},p:[86,71,3093]}],action:"charge"},f:[{t:2,x:{r:["data.chargeMode"],s:'_0?"Auto":"Off"'},p:[87,22,3156]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}," [",{p:[90,6,3236],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.chargingStatus"],s:"_0(_1)"},p:[90,19,3249]}]},f:[{t:2,x:{r:["data.chargingStatus"],s:'_0==2?"Fully Charged":_0==1?"Charging":"Not Charging"'},p:[90,56,3286]}]},"]"]}],n:50,x:{r:["data.powerCellStatus"],s:"_0!=null"},p:[81,4,2790]}]}," ",{p:[94,2,3445],t:7,e:"ui-display",a:{title:"Power Channels"},f:[{t:4,f:[{p:[96,3,3517],t:7,e:"ui-section",a:{label:[{t:2,r:"title",p:[96,22,3536]}],nowrap:0},f:[{p:[97,5,3560],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.powerChannels"],s:"Math.round(_1[_0].powerLoad)"},p:[97,26,3581]}," W"]}," ",{p:[98,5,3648],t:7,e:"div",a:{"class":"content"},f:[{p:[98,26,3669],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0>=2?"good":"bad"'},p:[98,39,3682]}]},f:[{t:2,x:{r:["status"],s:'_0>=2?"On":"Off"'},p:[98,73,3716]}]}]}," ",{p:[99,5,3765],t:7,e:"div",a:{"class":"content"},f:["[",{p:[99,27,3787],t:7,e:"span",f:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"Auto":"Manual"'},p:[99,33,3793]}]},"]"]}," ",{p:[100,5,3863],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{t:4,f:[{p:[102,6,3956],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["status"],s:'_0==1||_0==3?"selected":null'},p:[102,39,3989]}],action:"channel",params:[{t:2,r:"topicParams.auto",p:[103,30,4071]}]},f:["Auto"]}," ",{p:[104,6,4116],t:7,e:"ui-button",a:{icon:"power-off",state:[{t:2,x:{r:["status"],s:'_0==2?"selected":null'},p:[104,41,4151]}],action:"channel",params:[{t:2,r:"topicParams.on",p:[105,13,4218]}]},f:["On"]}," ",{p:[106,6,4259],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["status"],s:'_0==0?"selected":null'},p:[106,37,4290]}],action:"channel",params:[{t:2,r:"topicParams.off",p:[107,13,4357]}]},f:["Off"]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"!_0||_1"},p:[101,4,3909]}]}]}],n:52,r:"data.powerChannels",p:[95,4,3485]}," ",{p:[112,4,4453],t:7,e:"ui-section",a:{label:"Total Load"},f:[{p:[113,3,4488],t:7,e:"span",a:{"class":"bold"},f:[{t:2,x:{r:["adata.totalLoad"],s:"Math.round(_0)"},p:[113,22,4507]}," W"]}]}]}," ",{t:4,f:[{p:[117,4,4613],t:7,e:"ui-display",a:{title:"System Overrides"},f:[{p:[118,3,4654],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"overload"},f:["Overload"]}," ",{t:4,f:[{p:[120,5,4755],t:7,e:"ui-button",a:{icon:[{t:2,r:"malfIcon",p:[120,22,4772]}],state:[{t:2,x:{r:["data.malfStatus"],s:'_0==4?"disabled":null'},p:[120,43,4793]}],action:[{t:2,r:"malfAction",p:[120,97,4847]}]},f:[{t:2,r:"malfButton",p:[120,113,4863]}]}],n:50,r:"data.malfStatus",p:[119,3,4726]}]}],n:50,r:"data.siliconUser",p:[116,2,4584]}," ",{p:[124,2,4931],t:7,e:"ui-notice",f:[{p:[125,4,4947],t:7,e:"ui-section",a:{label:"Cover Lock"},f:[{t:4,f:[{p:[127,5,5028],t:7,e:"span",f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[127,11,5034]}]}],n:50,x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"},p:[126,3,4982]},{t:4,n:51,f:[{p:[129,5,5106],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.coverLocked"],s:'_0?"lock":"unlock"'},p:[129,22,5123]}],action:"cover"},f:[{t:2,x:{r:["data.coverLocked"],s:'_0?"Engaged":"Disengaged"'},p:[129,79,5180]}]}],x:{r:["data.locked","data.siliconUser"],s:"_0&&!_1"}}]}]}],r:"data.failTime"}]},e.exports=a.extend(r.exports)},{205:205}],228:[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:"Alarms"},f:[{p:[2,3,31],t:7,e:"ul",f:[{t:4,f:[{p:[4,7,72],t:7,e:"li",f:[{p:[4,11,76],t:7,e:"ui-button",a:{icon:"close",style:"danger",action:"clear",params:['{"zone": "',{t:2,r:".",p:[4,83,148]},'"}']},f:[{t:2,r:".",p:[4,92,157]}]}]}],n:52,r:"data.priority",p:[3,5,41]},{t:4,n:51,f:[{p:[6,7,201],t:7,e:"li",f:[{p:[6,11,205],t:7,e:"span",a:{"class":"good"},f:["No Priority Alerts"]}]}],r:"data.priority"}," ",{t:4,f:[{p:[9,7,303],t:7,e:"li",f:[{p:[9,11,307],t:7,e:"ui-button",a:{icon:"close",style:"caution",action:"clear",params:['{"zone": "',{t:2,r:".",p:[9,84,380]},'"}']},f:[{t:2,r:".",p:[9,93,389]}]}]}],n:52,r:"data.minor",p:[8,5,275]},{t:4,n:51,f:[{p:[11,7,433],t:7,e:"li",f:[{p:[11,11,437],t:7,e:"span",a:{"class":"good"},f:["No Minor Alerts"]}]}],r:"data.minor"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],229:[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:[{t:2,x:{r:["data.tank","data.sensors.0.long_name"],s:"_0?_1:null"},p:[1,20,19]}]},f:[{t:4,f:[{p:[3,5,102],t:7,e:"ui-subdisplay",a:{title:[{t:2,x:{r:["data.tank","long_name"],s:"!_0?_1:null"},p:[3,27,124]}]},f:[{p:[4,7,167],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[5,3,200],t:7,e:"span",f:[{t:2,x:{r:["pressure"],s:"Math.fixed(_0,2)"},p:[5,9,206]}," kPa"]}]}," ",{t:4,f:[{p:[8,9,302],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[9,11,346],t:7,e:"span",f:[{t:2,x:{r:["temperature"],s:"Math.fixed(_0,2)"},p:[9,17,352]}," K"]}]}],n:50,r:"temperature",p:[7,7,273]}," ",{t:4,f:[{p:[13,9,462],t:7,e:"ui-section",a:{label:[{t:2,r:"id",p:[13,28,481]}]},f:[{p:[14,5,495],t:7,e:"span",f:[{t:2,x:{r:["."],s:"Math.fixed(_0,2)"},p:[14,11,501]},"%"]}]}],n:52,i:"id",r:"gases",p:[12,4,434]}]}],n:52,r:"adata.sensors",p:[2,3,73]}]}," ",{t:4,f:[{p:{button:[{p:[23,5,704],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]},t:7,e:"ui-display",a:{title:"Controls",button:0},f:[" ",{p:[25,5,792],t:7,e:"ui-section",a:{label:"Input Injector"},f:[{p:[26,7,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputting"],s:'_0?"power-off":"close"'},p:[26,24,852]}],style:[{t:2,x:{r:["data.inputting"],s:'_0?"selected":null'},p:[26,75,903]}],action:"input"},f:[{t:2,x:{r:["data.inputting"],s:'_0?"Injecting":"Off"'},p:[27,9,968]}]}]}," ",{p:[29,5,1044],t:7,e:"ui-section",a:{label:"Input Rate"},f:[{p:[30,7,1083],t:7,e:"span",f:[{t:2,x:{r:["adata.inputRate"],s:"Math.fixed(_0)"},p:[30,13,1089]}," L/s"]}]}," ",{p:[32,5,1156],t:7,e:"ui-section",a:{label:"Output Regulator"},f:[{p:[33,7,1201],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputting"],s:'_0?"power-off":"close"'},p:[33,24,1218]}],style:[{t:2,x:{r:["data.outputting"],s:'_0?"selected":null'},p:[33,76,1270]}],action:"output"},f:[{t:2,x:{r:["data.outputting"],s:'_0?"Open":"Closed"'},p:[34,9,1337]}]}]}," ",{p:[36,5,1412],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[37,7,1456],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure"},f:[{t:2,x:{r:["adata.outputPressure"],s:"Math.round(_0)"},p:[37,50,1499]}," kPa"]}]}]}],n:50,r:"data.tank",p:[20,1,618]}]},e.exports=a.extend(r.exports)},{205:205}],230:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,518],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[9,11,524]}," kPa"]}]}," ",{p:[11,3,586],t:7,e:"ui-section",a:{label:"Filter"},f:[{p:[12,5,619],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0==""?"selected":null'},p:[12,23,637]}],action:"filter",params:'{"mode": ""}'},f:["Nothing"]}," ",{p:[14,5,755],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="plasma"?"selected":null'},p:[14,23,773]}],action:"filter",params:'{"mode": "plasma"}'},f:["Plasma"]}," ",{p:[16,5,902],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="o2"?"selected":null'},p:[16,23,920]}],action:"filter",params:'{"mode": "o2"}'},f:["O2"]}," ",{p:[18,5,1037],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2"?"selected":null'},p:[18,23,1055]}],action:"filter",params:'{"mode": "n2"}'},f:["N2"]}," ",{p:[20,5,1172],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="co2"?"selected":null'},p:[20,23,1190]}],action:"filter",params:'{"mode": "co2"}'},f:["CO2"]}," ",{p:[22,5,1310],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="n2o"?"selected":null'},p:[22,23,1328]}],action:"filter",params:'{"mode": "n2o"}'},f:["N2O"]}," ",{p:[24,2,1445],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="bz"?"selected":null'},p:[24,20,1463]}],action:"filter",params:'{"mode": "bz"}'},f:["BZ"]}," ",{p:[26,2,1578],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="freon"?"selected":null'},p:[26,20,1596]}],action:"filter",params:'{"mode": "freon"}'},f:["Freon"]}," ",{p:[28,2,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.filter_type"],s:'_0=="water_vapor"?"selected":null'},p:[28,20,1738]}],action:"filter",params:'{"mode": "water_vapor"}'},f:["Water Vapor"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],231:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{p:[6,3,223],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[7,5,265],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[8,5,360],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.set_pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[8,35,390]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[9,5,522],t:7,e:"span",f:[{t:2,x:{r:["adata.set_pressure"],s:"Math.round(_0)"},p:[9,11,528]}," kPa"]}]}," ",{p:[11,3,594],t:7,e:"ui-section",a:{label:"Node 1"},f:[{p:[12,5,627],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[12,44,666]}],action:"node1",params:'{"concentration": -0.1}'}}," ",{p:[14,5,783],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==0?"disabled":null'},p:[14,39,817]}],action:"node1",params:'{"concentration": -0.01}'}}," ",{p:[16,5,935],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[16,38,968]}],action:"node1",params:'{"concentration": 0.01}'}}," ",{p:[18,5,1087],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node1_concentration"],s:'_0==100?"disabled":null'},p:[18,43,1125]}],action:"node1",params:'{"concentration": 0.1}'}}," ",{p:[20,5,1243],t:7,e:"span",f:[{t:2,x:{r:["adata.node1_concentration"],s:"Math.round(_0)"},p:[20,11,1249]},"%"]}]}," ",{p:[22,3,1319],t:7,e:"ui-section",a:{label:"Node 2"},f:[{p:[23,5,1352],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[23,44,1391]}],action:"node2",params:'{"concentration": -0.1}'}}," ",{p:[25,5,1508],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==0?"disabled":null'},p:[25,39,1542]}],action:"node2",params:'{"concentration": -0.01}'}}," ",{p:[27,5,1660],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[27,38,1693]}],action:"node2",params:'{"concentration": 0.01}'}}," ",{p:[29,5,1812],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.node2_concentration"],s:'_0==100?"disabled":null'},p:[29,43,1850]}],action:"node2",params:'{"concentration": 0.1}'}}," ",{p:[31,5,1968],t:7,e:"span",f:[{t:2,x:{r:["adata.node2_concentration"],s:"Math.round(_0)"},p:[31,11,1974]},"%"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],232:[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:"Power"},f:[{p:[3,5,48],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[3,22,65]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[3,66,109]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[4,22,164]}]}]}," ",{t:4,f:[{p:[7,5,250],t:7,e:"ui-section",a:{label:"Transfer Rate"},f:[{p:[8,7,292],t:7,e:"ui-button",a:{icon:"pencil",action:"rate",params:'{"rate": "input"}'},f:["Set"]}," ",{p:[9,7,381],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.rate","data.max_rate"],s:'_0==_1?"disabled":null'},p:[9,37,411]}],action:"rate",params:'{"rate": "max"}'},f:["Max"]}," ",{p:[10,7,525],t:7,e:"span",f:[{t:2,x:{r:["adata.rate"],s:"Math.round(_0)"},p:[10,13,531]}," L/s"]}]}],n:50,r:"data.max_rate",p:[6,3,223]},{t:4,n:51,f:[{ --p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[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:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[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.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"Centcom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to Centcom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[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:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[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:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[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:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[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-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[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:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" -+p:[13,5,605],t:7,e:"ui-section",a:{label:"Output Pressure"},f:[{p:[14,7,649],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[15,7,746],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.pressure","data.max_pressure"],s:'_0==_1?"disabled":null'},p:[15,37,776]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}," ",{p:[16,7,906],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[16,13,912]}," kPa"]}]}],r:"data.max_rate"}]}]},e.exports=a.extend(r.exports)},{205:205}],233:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"selected":null'},p:[3,38,100]}],action:[{t:2,x:{r:["data.timing"],s:'_0?"stop":"start"'},p:[3,83,145]}]},f:[{t:2,x:{r:["data.timing"],s:'_0?"Stop":"Start"'},p:[3,119,181]}]}," ",{p:[4,5,233],t:7,e:"ui-button",a:{icon:"lightbulb-o",action:"flash",style:[{t:2,x:{r:["data.flash_charging"],s:'_0?"disabled":null'},p:[4,57,285]}]},f:[{t:2,x:{r:["data.flash_charging"],s:'_0?"Recharging":"Flash"'},p:[4,102,330]}]}]},t:7,e:"ui-display",a:{title:"Cell Timer",button:0},f:[" ",{p:[6,3,410],t:7,e:"ui-section",f:[{p:[7,5,428],t:7,e:"ui-button",a:{icon:"fast-backward",action:"time",params:'{"adjust": -600}'}}," ",{p:[8,5,518],t:7,e:"ui-button",a:{icon:"backward",action:"time",params:'{"adjust": -100}'}}," ",{p:[9,5,603],t:7,e:"span",f:[{t:2,x:{r:["text","data.minutes"],s:"_0.zeroPad(_1,2)"},p:[9,11,609]},":",{t:2,x:{r:["text","data.seconds"],s:"_0.zeroPad(_1,2)"},p:[9,45,643]}]}," ",{p:[10,5,689],t:7,e:"ui-button",a:{icon:"forward",action:"time",params:'{"adjust": 100}'}}," ",{p:[11,5,772],t:7,e:"ui-button",a:{icon:"fast-forward",action:"time",params:'{"adjust": 600}'}}]}," ",{p:[13,3,875],t:7,e:"ui-section",f:[{p:[14,7,895],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "short"}'},f:["Short"]}," ",{p:[15,7,999],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "medium"}'},f:["Medium"]}," ",{p:[16,7,1105],t:7,e:"ui-button",a:{icon:"hourglass-start",action:"preset",params:'{"preset": "long"}'},f:["Long"]}]}]}]},e.exports=a.extend(r.exports)},{205:205}],234:[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:"Bluespace Artillery Control",button:0},f:[{t:4,f:[{p:[8,3,167],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,5,200],t:7,e:"ui-button",a:{icon:"crosshairs",action:"recalibrate"},f:[{t:2,r:"data.target",p:[9,55,250]}]}]}," ",{p:[11,3,298],t:7,e:"ui-section",a:{label:"Controls"},f:[{t:4,f:[{p:[13,3,356],t:7,e:"ui-notice",f:[{p:[14,4,372],t:7,e:"span",f:["Bluespace Artillery firing protocols must be globally unlocked from two keycard authentication devices first!"]}]}],n:50,x:{r:["data.unlocked"],s:"!_0"},p:[12,2,330]},{t:4,n:51,f:[{p:[17,3,525],t:7,e:"ui-button",a:{icon:"warning",state:[{t:2,x:{r:["data.ready"],s:'_0?null:"disabled"'},p:[17,36,558]}],action:"fire"},f:["FIRE!"]}],x:{r:["data.unlocked"],s:"!_0"}}]}],n:50,r:"data.connected",p:[7,3,141]}," ",{t:4,f:[{p:[22,3,694],t:7,e:"ui-section",a:{label:"Maintenance"},f:[{p:[23,7,734],t:7,e:"ui-button",a:{icon:"wrench",action:"build"},f:["Complete Deployment."]}]}],n:50,x:{r:["data.connected"],s:"!_0"},p:[21,3,667]}]}]},e.exports=a.extend(r.exports)},{205:205}],235:[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.hasHoldingTank"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:{button:[{p:[6,5,185],t:7,e:"ui-button",a:{icon:"pencil",action:"relabel"},f:["Relabel"]}]},t:7,e:"ui-display",a:{title:"Canister",button:0},f:[" ",{p:[8,3,266],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[9,5,301],t:7,e:"span",f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[9,11,307]}," kPa"]}]}," ",{p:[11,3,373],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[12,5,404],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.portConnected"],s:'_0?"good":"average"'},p:[12,18,417]}]},f:[{t:2,x:{r:["data.portConnected"],s:'_0?"Connected":"Not Connected"'},p:[12,63,462]}]}]}," ",{t:4,f:[{p:[15,3,573],t:7,e:"ui-section",a:{label:"Access"},f:[{p:[16,7,608],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.restricted"],s:'_0?"lock":"unlock"'},p:[16,24,625]}],style:[{t:2,x:{r:[],s:'"caution"'},p:[17,14,680]}],action:"restricted"},f:[{t:2,x:{r:["data.restricted"],s:'_0?"Restricted to Engineering":"Public"'},p:[18,27,722]}]}]}],n:50,r:"data.isPrototype",p:[14,3,544]}]}," ",{p:[22,1,839],t:7,e:"ui-display",a:{title:"Valve"},f:[{p:[23,3,869],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[24,5,912],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[24,18,925]}],max:[{t:2,r:"data.maxReleasePressure",p:[24,52,959]}],value:[{t:2,r:"data.releasePressure",p:[25,14,1002]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[25,40,1028]}," kPa"]}]}," ",{p:[27,3,1099],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[28,5,1144],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[28,38,1177]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[30,5,1333],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[30,36,1364]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[32,5,1511],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[33,5,1606],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[33,35,1636]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}," ",{p:[36,3,1798],t:7,e:"ui-section",a:{label:"Valve"},f:[{p:[37,5,1830],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.valveOpen"],s:'_0?"unlock":"lock"'},p:[37,22,1847]}],style:[{t:2,x:{r:["data.valveOpen","data.hasHoldingTank"],s:'_0?_1?"caution":"danger":null'},p:[38,14,1901]}],action:"valve"},f:[{t:2,x:{r:["data.valveOpen"],s:'_0?"Open":"Closed"'},p:[39,22,1995]}]}]}]}," ",{t:4,f:[{p:[42,1,2090],t:7,e:"ui-display",a:{title:"Valve Toggle Timer"},f:[{t:4,f:[{p:[44,5,2155],t:7,e:"ui-section",a:{label:"Adjust Timer"},f:[{p:[45,7,2196],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.timer_is_not_default"],s:'_0?null:"disabled"'},p:[45,40,2229]}],action:"timer",params:'{"change": "reset"}'},f:["Reset"]}," ",{p:[47,7,2358],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.timer_is_not_min"],s:'_0?null:"disabled"'},p:[47,38,2389]}],action:"timer",params:'{"change": "decrease"}'},f:["Decrease"]}," ",{p:[49,7,2520],t:7,e:"ui-button",a:{icon:"pencil",state:[{t:2,x:{r:[],s:'"disabled"'},p:[49,39,2552]}],action:"timer",params:'{"change": "input"}'},f:["Set"]}," ",{p:[51,7,2637],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.timer_is_not_max"],s:'_0?null:"disabled"'},p:[51,37,2667]}],action:"timer",params:'{"change": "increase"}'},f:["Increase"]}]}],n:51,r:"data.timing",p:[43,3,2133]}," ",{p:[55,3,2833],t:7,e:"ui-section",a:{label:"Timer"},f:[{p:[56,6,2866],t:7,e:"ui-button",a:{icon:"clock-o",style:[{t:2,x:{r:["data.timing"],s:'_0?"danger":"caution"'},p:[56,39,2899]}],action:"toggle_timer"},f:[{t:2,x:{r:["data.timing"],s:'_0?"On":"Off"'},p:[57,30,2969]}]}," ",{p:[59,2,3017],t:7,e:"ui-section",a:{label:"Time until Valve Toggle"},f:[{p:[60,2,3064],t:7,e:"span",f:[{t:2,x:{r:["data.timing","data.time_left","data.timer_set"],s:"_0?_1:_2"},p:[60,8,3070]}]}]}]}]}],n:50,r:"data.isPrototype",p:[41,1,2062]},{p:{button:[{t:4,f:[{p:[69,7,3277],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.valveOpen"],s:'_0?"danger":null'},p:[69,38,3308]}],action:"eject"},f:["Eject"]}],n:50,r:"data.hasHoldingTank",p:[68,5,3242]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[73,3,3442],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holdingTank.name",p:[74,4,3473]}]}," ",{p:[76,3,3519],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holdingTank.tankPressure"],s:"Math.round(_0)"},p:[77,4,3553]}," kPa"]}],n:50,r:"data.hasHoldingTank",p:[72,3,3411]},{t:4,n:51,f:[{p:[80,3,3635],t:7,e:"ui-section",f:[{p:[81,4,3652],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.hasHoldingTank"}]}]},e.exports=a.extend(r.exports)},{205:205}],236:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={computed:{tabs:function(){return Object.keys(this.get("data.supplies"))}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,158],t:7,e:"ui-display",a:{title:"Cargo"},f:[{p:[12,3,188],t:7,e:"ui-section",a:{label:"Shuttle"},f:[{t:4,f:[{p:[14,7,270],t:7,e:"ui-button",a:{action:"send"},f:[{t:2,r:"data.location",p:[14,32,295]}]}],n:50,x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"},p:[13,5,222]},{t:4,n:51,f:[{p:[16,7,346],t:7,e:"span",f:[{t:2,r:"data.location",p:[16,13,352]}]}],x:{r:["data.docked","data.requestonly"],s:"_0&&!_1"}}]}," ",{p:[19,3,410],t:7,e:"ui-section",a:{label:"Credits"},f:[{p:[20,5,444],t:7,e:"span",f:[{t:2,x:{r:["adata.points"],s:"Math.floor(_0)"},p:[20,11,450]}]}]}," ",{p:[22,3,506],t:7,e:"ui-section",a:{label:"CentCom Message"},f:[{p:[23,7,550],t:7,e:"span",f:[{t:2,r:"data.message",p:[23,13,556]}]}]}," ",{t:4,f:[{p:[26,5,644],t:7,e:"ui-section",a:{label:"Loan"},f:[{t:4,f:[{p:[28,9,716],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.away","data.docked"],s:'_0&&_1?null:"disabled"'},p:[29,17,744]}],action:"loan"},f:["Loan Shuttle"]}],n:50,x:{r:["data.loan_dispatched"],s:"!_0"},p:[27,7,677]},{t:4,n:51,f:[{p:[32,9,868],t:7,e:"span",a:{"class":"bad"},f:["Loaned to CentCom"]}],x:{r:["data.loan_dispatched"],s:"!_0"}}]}],n:50,x:{r:["data.loan","data.requestonly"],s:"_0&&!_1"},p:[25,3,600]}]}," ",{t:4,f:[{p:{button:[{p:[40,7,1066],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.cart.length"],s:'_0?null:"disabled"'},p:[40,38,1097]}],action:"clear"},f:["Clear"]}]},t:7,e:"ui-display",a:{title:"Cart",button:0},f:[" ",{t:4,f:[{p:[43,7,1222],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[44,9,1263],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[44,31,1285]}]}," ",{p:[45,9,1307],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[45,30,1328]}]}," ",{p:[46,9,1354],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[46,30,1375]}," Credits"]}," ",{p:[47,9,1407],t:7,e:"div",a:{"class":"content"},f:[{p:[48,11,1440],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"id": "',{t:2,r:"id",p:[48,67,1496]},'"}']}}]}]}],n:52,r:"data.cart",p:[42,5,1195]},{t:4,n:51,f:[{p:[52,7,1566],t:7,e:"span",f:["Nothing in Cart"]}],r:"data.cart"}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[37,1,972]},{p:{button:[{t:4,f:[{p:[59,7,1735],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.requests.length"],s:'_0?null:"disabled"'},p:[59,38,1766]}],action:"denyall"},f:["Clear"]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[58,5,1702]}]},t:7,e:"ui-display",a:{title:"Requests",button:0},f:[" ",{t:4,f:[{p:[63,5,1908],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[64,7,1947],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[64,29,1969]}]}," ",{p:[65,7,1989],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"object",p:[65,28,2010]}]}," ",{p:[66,7,2034],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"cost",p:[66,28,2055]}," Credits"]}," ",{p:[67,7,2085],t:7,e:"div",a:{"class":"content"},f:["By ",{t:2,r:"orderer",p:[67,31,2109]}]}," ",{p:[68,7,2134],t:7,e:"div",a:{"class":"content"},f:["Comment: ",{t:2,r:"reason",p:[68,37,2164]}]}," ",{t:4,f:[{p:[70,9,2223],t:7,e:"div",a:{"class":"content"},f:[{p:[71,11,2256],t:7,e:"ui-button",a:{icon:"check",action:"approve",params:['{"id": "',{t:2,r:"id",p:[71,68,2313]},'"}']}}," ",{p:[72,11,2336],t:7,e:"ui-button",a:{icon:"close",action:"deny",params:['{"id": "',{t:2,r:"id",p:[72,65,2390]},'"}']}}]}],n:50,x:{r:["data.requestonly"],s:"!_0"},p:[69,7,2188]}]}],n:52,r:"data.requests",p:[62,3,1879]},{t:4,n:51,f:[{p:[77,7,2473],t:7,e:"span",f:["No Requests"]}],r:"data.requests"}]}," ",{p:[80,1,2529],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"tabs",p:[80,16,2544]}]},f:[{t:4,f:[{p:[82,5,2587],t:7,e:"tab",a:{name:[{t:2,r:"name",p:[82,16,2598]}]},f:[{t:4,f:[{p:[84,9,2641],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[84,28,2660]}],candystripe:0,right:0},f:[{p:[85,11,2700],t:7,e:"ui-button",a:{action:"add",params:['{"id": "',{t:2,r:"id",p:[85,51,2740]},'"}']},f:[{t:2,r:"cost",p:[85,61,2750]}," Credits"]}]}],n:52,r:"packs",p:[83,7,2616]}]}],n:52,r:"data.supplies",p:[81,3,2558]}]}]},e.exports=a.extend(r.exports)},{205:205}],237:[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:"Cellular Emporium",button:0},f:[{p:[2,3,49],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.can_readapt"],s:'_0?null:"disabled"'},p:[2,36,82]}],action:"readapt"},f:["Readapt"]}," ",{p:[4,3,169],t:7,e:"ui-section",a:{label:"Genetic Points Remaining",right:0},f:[{t:2,r:"data.genetic_points_remaining",p:[5,5,226]}]}]}," ",{p:[8,1,293],t:7,e:"ui-display",f:[{t:4,f:[{p:[10,3,335],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[10,22,354]}],candystripe:0,right:0},f:[{p:[11,5,388],t:7,e:"span",f:[{t:2,r:"desc",p:[11,11,394]}]}," ",{p:[12,5,415],t:7,e:"span",f:[{t:2,r:"helptext",p:[12,11,421]}]}," ",{p:[13,5,446],t:7,e:"span",f:["Cost: ",{t:2,r:"dna_cost",p:[13,17,458]}]}," ",{p:[14,5,483],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["owned","can_purchase"],s:'_0?"selected":_1?null:"disabled"'},p:[15,14,508]}],action:"evolve",params:['{"name": "',{t:2,r:"name",p:[17,25,615]},'"}']},f:[{t:2,x:{r:["owned"],s:'_0?"Evolved":"Evolve"'},p:[18,7,635]}]}]}],n:52,r:"data.abilities",p:[9,1,307]},{t:4,f:[{p:[23,3,738],t:7,e:"span",a:{"class":"warning"},f:["No abilities availible."]}],n:51,r:"data.abilities",p:[22,1,715]}]}]},e.exports=a.extend(r.exports)},{205:205}],238:[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:"Energy"},f:[{p:[3,5,64],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.maxEnergy",p:[3,26,85]}],value:[{t:2,r:"data.energy",p:[3,53,112]}]},f:[{t:2,x:{r:["adata.energy"],s:"Math.fixed(_0)"},p:[3,70,129]}," Units"]}]}]}," ",{p:{button:[{t:4,f:[{p:[9,7,315],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.amount","."],s:'_0==_1?"selected":null'},p:[9,37,345]}],action:"amount",params:['{"target": ',{t:2,r:".",p:[9,114,422]},"}"]},f:[{t:2,r:".",p:[9,122,430]}]}],n:52,r:"data.beakerTransferAmounts",p:[8,5,271]}]},t:7,e:"ui-display",a:{title:"Dispense",button:0},f:[" ",{p:[12,3,482],t:7,e:"ui-section",f:[{t:4,f:[{p:[14,7,532],t:7,e:"ui-button",a:{grid:0,icon:"tint",action:"dispense",params:['{"reagent": "',{t:2,r:"id",p:[14,74,599]},'"}']},f:[{t:2,r:"title",p:[14,84,609]}]}],n:52,r:"data.chemicals",p:[13,5,500]}]}]}," ",{p:{button:[{t:4,f:[{p:[21,7,786],t:7,e:"ui-button",a:{icon:"minus",action:"remove",params:['{"amount": ',{t:2,r:".",p:[21,66,845]},"}"]},f:[{t:2,r:".",p:[21,74,853]}]}],n:52,r:"data.beakerTransferAmounts",p:[20,5,742]}," ",{p:[23,5,891],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[23,36,922]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[25,3,1019],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[27,7,1089],t:7,e:"span",f:[{t:2,x:{r:["adata.beakerCurrentVolume"],s:"Math.round(_0)"},p:[27,13,1095]},"/",{t:2,r:"data.beakerMaxVolume",p:[27,55,1137]}," Units"]}," ",{p:[28,7,1182],t:7,e:"br"}," ",{t:4,f:[{p:[30,9,1235],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[30,52,1278]}," units of ",{t:2,r:"name",p:[30,87,1313]}]},{p:[30,102,1328],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[29,7,1195]},{t:4,n:51,f:[{p:[32,9,1359],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[26,5,1054]},{t:4,n:51,f:[{p:[35,7,1435],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],239:[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:"Thermostat"},f:[{p:[2,3,35],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[3,5,67],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isActive"],s:'_0?"power-off":"close"'},p:[3,22,84]}],style:[{t:2,x:{r:["data.isActive"],s:'_0?"selected":null'},p:[4,10,137]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,10,186]}],action:"power"},f:[{t:2,x:{r:["data.isActive"],s:'_0?"On":"Off"'},p:[6,18,249]}]}]}," ",{p:[8,3,314],t:7,e:"ui-section",a:{label:"Target"},f:[{p:[9,4,346],t:7,e:"ui-button",a:{icon:"pencil",action:"temperature",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[9,79,421]}," K"]}]}]}," ",{p:{button:[{p:[14,5,564],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[14,36,595]}],action:"eject"},f:["Eject"]}]},t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[" ",{p:[16,3,692],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[18,7,762],t:7,e:"span",f:["Temperature: ",{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[18,26,781]}," K"]}," ",{p:[19,7,831],t:7,e:"br"}," ",{t:4,f:[{p:[21,9,885],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[21,52,928]}," units of ",{t:2,r:"name",p:[21,87,963]}]},{p:[21,102,978],t:7,e:"br"}],n:52,r:"adata.beakerContents",p:[20,7,845]},{t:4,n:51,f:[{p:[23,9,1009],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"adata.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[17,5,727]},{t:4,n:51,f:[{p:[26,7,1085],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}]},e.exports=a.extend(r.exports)},{205:205}],240:[function(t,e,n){var a=t(205),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,32],t:7,e:"ui-display",a:{title:"Beaker",button:0},f:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject":"close"'},p:[3,20,87]}],style:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"selected":null'},p:[4,11,143]}],state:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?null:"disabled"'},p:[5,11,199]}],action:"eject"},f:[{t:2,x:{r:["data.isBeakerLoaded"],s:'_0?"Eject and Clear Buffer":"No beaker"'},p:[7,5,268]}]}," ",{p:[10,3,357],t:7,e:"ui-section",f:[{t:4,f:[{t:4,f:[{p:[13,6,443],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[13,25,462]}," units of ",{t:2,r:"name",p:[13,60,497]}],nowrap:0},f:[{p:[14,7,522],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[15,8,572],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[15,61,625]},'", "amount": 1}']},f:["1"]}," ",{p:[16,8,670],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[16,61,723]},'", "amount": 5}']},f:["5"]}," ",{p:[17,8,768],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[17,61,821]},'", "amount": 10}']},f:["10"]}," ",{p:[18,8,868],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[18,61,921]},'", "amount": 1000}']},f:["All"]}," ",{p:[19,8,971],t:7,e:"ui-button",a:{action:"transferToBuffer",params:['{"id": "',{t:2,r:"id",p:[19,61,1024]},'", "amount": -1}']},f:["Custom"]}," ",{p:[20,8,1075],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[20,52,1119]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.beakerContents",p:[12,5,407]},{t:4,n:51,f:[{p:[24,5,1201],t:7,e:"span",a:{"class":"bad"},f:["Beaker Empty"]}],r:"data.beakerContents"}],n:50,r:"data.isBeakerLoaded",p:[11,4,374]},{t:4,n:51,f:[{p:[27,5,1272],t:7,e:"span",a:{"class":"average"},f:["No Beaker"]}],r:"data.isBeakerLoaded"}]}]}," ",{p:[32,2,1360],t:7,e:"ui-display",a:{title:"Buffer"},f:[{p:[33,3,1391],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?null:"selected"'},p:[33,41,1429]}]},f:["Destroy"]}," ",{p:[34,3,1487],t:7,e:"ui-button",a:{action:"toggleMode",state:[{t:2,x:{r:["data.mode"],s:'_0?"selected":null'},p:[34,41,1525]}]},f:["Transfer to Beaker"]}," ",{p:[35,3,1594],t:7,e:"ui-section",f:[{t:4,f:[{p:[37,5,1646],t:7,e:"ui-section",a:{label:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[37,24,1665]}," units of ",{t:2,r:"name",p:[37,59,1700]}],nowrap:0},f:[{p:[38,6,1724],t:7,e:"div",a:{"class":"content",style:"float:right"},f:[{p:[39,7,1773],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[39,62,1828]},'", "amount": 1}']},f:["1"]}," ",{p:[40,7,1872],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[40,62,1927]},'", "amount": 5}']},f:["5"]}," ",{p:[41,7,1971],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[41,62,2026]},'", "amount": 10}']},f:["10"]}," ",{p:[42,7,2072],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[42,62,2127]},'", "amount": 1000}']},f:["All"]}," ",{p:[43,7,2176],t:7,e:"ui-button",a:{action:"transferFromBuffer",params:['{"id": "',{t:2,r:"id",p:[43,62,2231]},'", "amount": -1}']},f:["Custom"]}," ",{p:[44,7,2281],t:7,e:"ui-button",a:{action:"analyze",params:['{"id": "',{t:2,r:"id",p:[44,51,2325]},'"}']},f:["Analyze"]}]}]}],n:52,r:"data.bufferContents",p:[36,4,1611]}]}]}," ",{t:4,f:[{p:[52,3,2461],t:7,e:"ui-display",a:{title:"Pills, Bottles and Patches"},f:[{t:4,f:[{p:[54,5,2551],t:7,e:"ui-button",a:{action:"ejectp",state:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?null:"disabled"'},p:[54,39,2585]}]},f:[{t:2,x:{r:["data.isPillBottleLoaded"],s:'_0?"Eject":"No Pill bottle loaded"'},p:[54,88,2634]}]}," ",{p:[55,5,2715],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.pillBotContent",p:[55,27,2737]},"/",{t:2,r:"data.pillBotMaxContent",p:[55,51,2761]}]}],n:50,r:"data.isPillBottleLoaded",p:[53,4,2514]},{t:4,n:51,f:[{p:[57,5,2813],t:7,e:"span",a:{"class":"average"},f:["No Pillbottle"]}],r:"data.isPillBottleLoaded"}," ",{p:[60,4,2877],t:7,e:"br"}," ",{p:[61,4,2887],t:7,e:"br"}," ",{p:[62,4,2897],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[62,63,2956]}]},f:["Create Pill (max 50µ)"]}," ",{p:[63,4,3040],t:7,e:"br"}," ",{p:[64,4,3050],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[64,63,3109]}]},f:["Create Multiple Pills"]}," ",{p:[65,4,3193],t:7,e:"br"}," ",{p:[66,4,3203],t:7,e:"br"}," ",{p:[67,4,3213],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[67,64,3273]}]},f:["Create Patch (max 40µ)"]}," ",{p:[68,4,3358],t:7,e:"br"}," ",{p:[69,4,3368],t:7,e:"ui-button",a:{action:"createPatch",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[69,64,3428]}]},f:["Create Multiple Patches"]}," ",{p:[70,4,3514],t:7,e:"br"}," ",{p:[71,4,3524],t:7,e:"br"}," ",{p:[72,4,3534],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[72,65,3595]}]},f:["Create Bottle (max 30µ)"]}," ",{p:[73,4,3681],t:7,e:"br"}," ",{p:[74,4,3691],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 1}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[74,65,3752]}]},f:["Dispense Buffer to Bottles"]}]}],n:50,x:{r:["data.condi"],s:"!_0"},p:[51,2,2438]},{t:4,n:51,f:[{p:[79,3,3874],t:7,e:"ui-display",a:{title:"Condiments bottles and packs"},f:[{p:[80,4,3929],t:7,e:"ui-button",a:{action:"createPill",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[80,63,3988]}]},f:["Create Pack (max 10µ)"]}," ",{p:[81,4,4072],t:7,e:"br"}," ",{p:[82,4,4082],t:7,e:"br"}," ",{p:[83,4,4092],t:7,e:"ui-button",a:{action:"createBottle",params:'{"many": 0}',state:[{t:2,x:{r:["data.bufferContents"],s:'_0?null:"disabled"'},p:[83,65,4153]}]},f:["Create Bottle (max 50µ)"]}]}],x:{r:["data.condi"],s:"!_0"}}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,1,0]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.screen"],s:'_0=="analyze"'},f:[{p:[87,2,4301],t:7,e:"ui-display",a:{title:[{t:2,r:"data.analyzeVars.name",p:[87,20,4319]}]},f:[{p:[88,3,4350],t:7,e:"span",a:{"class":"highlight"},f:["Description:"]}," ",{p:[89,3,4398],t:7,e:"span",a:{"class":"content",style:"float:center"},f:[{t:2,r:"data.analyzeVars.description",p:[89,46,4441]}]}," ",{p:[90,3,4484],t:7,e:"br"}," ",{p:[91,3,4493],t:7,e:"span",a:{"class":"highlight"},f:["Color:"]}," ",{p:[92,3,4535],t:7,e:"span",a:{style:["color: ",{t:2,r:"data.analyzeVars.color",p:[92,23,4555]},"; background-color: ",{t:2,r:"data.analyzeVars.color",p:[92,69,4601]}]},f:[{t:2,r:"data.analyzeVars.color",p:[92,97,4629]}]}," ",{p:[93,3,4666],t:7,e:"br"}," ",{p:[94,3,4675],t:7,e:"span",a:{"class":"highlight"},f:["State:"]}," ",{p:[95,3,4717],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.state",p:[95,25,4739]}]}," ",{p:[96,3,4776],t:7,e:"br"}," ",{p:[97,3,4785],t:7,e:"span",a:{"class":"highlight"},f:["Metabolization Rate:"]}," ",{p:[98,3,4841],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.metaRate",p:[98,25,4863]},"µ/minute"]}," ",{p:[99,3,4911],t:7,e:"br"}," ",{p:[100,3,4920],t:7,e:"span",a:{"class":"highlight"},f:["Overdose Threshold:"]}," ",{p:[101,3,4975],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.overD",p:[101,25,4997]}]}," ",{p:[102,3,5034],t:7,e:"br"}," ",{p:[103,3,5043],t:7,e:"span",a:{"class":"highlight"},f:["Addiction Threshold:"]}," ",{p:[104,3,5099],t:7,e:"span",a:{"class":"content"},f:[{t:2,r:"data.analyzeVars.addicD",p:[104,25,5121]}]}," ",{p:[105,3,5159],t:7,e:"br"}," ",{p:[106,3,5168],t:7,e:"br"}," ",{p:[107,3,5177],t:7,e:"ui-button",a:{action:"goScreen",params:'{"screen": "home"}'},f:["Back"]}]}]}],x:{r:["data.screen"],s:'_0=="home"'}}]},e.exports=a.extend(r.exports)},{205:205}],241:[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-button",a:{action:"toggle"},f:[{t:2,x:{r:["data.recollection"],s:'_0?"Recital":"Recollection"'},p:[2,30,43]}]}," ",{p:[3,3,107],t:7,e:"ui-button",a:{action:"component"},f:["Target Component: ",{t:3,r:"data.target_comp",p:[3,51,155]}]}]}," ",{t:4,f:[{p:[6,3,235],t:7,e:"ui-display",f:[{t:3,r:"data.rec_text",p:[7,3,251]}," ",{t:4,f:[{p:[9,4,317],t:7,e:"br"},{p:[9,8,321],t:7,e:"ui-button",a:{action:"rec_category",params:['{"category": "',{t:2,r:"name",p:[9,63,376]},'"}']},f:[{t:3,r:"name",p:[9,75,388]}," - ",{t:3,r:"desc",p:[9,88,401]}]}],n:52,r:"data.recollection_categories",p:[8,3,274]}," ",{t:3,r:"data.rec_section",p:[11,3,440]}," ",{t:3,r:"data.rec_binds",p:[12,3,466]}]}],n:50,r:"data.recollection",p:[5,1,206]},{t:4,n:51,f:[{p:[15,2,517],t:7,e:"ui-display",a:{title:"Components (with Global Cache)",button:0},f:[{p:[16,4,580],t:7,e:"ui-section",f:[{t:3,r:"data.components",p:[17,6,599]}]}]}," ",{p:[20,2,657],t:7,e:"ui-display",f:[{p:[21,3,673],t:7,e:"ui-section",f:[{p:[22,4,690],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Driver"?"selected":null'},p:[22,22,708]}],action:"select",params:'{"category": "Driver"}'},f:["Driver"]}," ",{p:[23,4,831],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Script"?"selected":null'},p:[23,22,849]}],action:"select",params:'{"category": "Script"}'},f:["Scripts"]}," ",{p:[24,4,973],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Application"?"selected":null'},p:[24,22,991]}],action:"select",params:'{"category": "Application"}'},f:["Applications"]}," ",{p:[25,4,1130],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.selected"],s:'_0=="Judgement"?"selected":null'},p:[25,22,1148]}],action:"select",params:'{"category": "Judgement"}'},f:["Judgement"]}," ",{p:[26,4,1279],t:7,e:"br"},{t:3,r:"data.tier_info",p:[26,8,1283]}]},{p:[27,16,1320],t:7,e:"hr"}," ",{p:[28,3,1328],t:7,e:"ui-section",f:[{t:4,f:[{p:[30,4,1373],t:7,e:"div",f:[{p:[30,9,1378],t:7,e:"ui-button",a:{tooltip:[{t:3,r:"tip",p:[30,29,1398]}],"tooltip-side":"right",action:"recite",params:['{"category": "',{t:2,r:"type",p:[30,99,1468]},'"}']},f:["Recite",{t:3,r:"required",p:[30,117,1486]}]}," ",{t:4,f:[{t:4,f:[{p:[33,6,1562],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[33,53,1609]},'"}']},f:["Unbind ",{t:3,r:"bound",p:[33,72,1628]}]}],n:50,r:"bound",p:[32,5,1542]},{t:4,n:51,f:[{p:[35,6,1672],t:7,e:"ui-button",a:{action:"bind",params:['{"category": "',{t:2,r:"type",p:[35,53,1719]},'"}']},f:["Quickbind"]}],r:"bound"}],n:50,r:"quickbind",p:[31,6,1519]}," ",{t:3,r:"name",p:[38,6,1786]}," ",{t:3,r:"descname",p:[38,17,1797]}," ",{t:3,r:"invokers",p:[38,32,1812]}]}],n:52,r:"data.scripture",p:[29,3,1344]}]}]}],r:"data.recollection"}]},e.exports=a.extend(r.exports)},{205:205}],242:[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:"Codex Gigas"},f:[{p:[2,2,35],t:7,e:"ui-section",f:[{t:2,r:"data.name",p:[3,3,51]}]}," ",{p:[5,5,86],t:7,e:"ui-section",a:{label:"Prefix"},f:[{p:[6,3,117],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[6,22,136]}],action:"Dark "},f:["Dark"]}," ",{p:[7,3,221],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[7,22,240]}],action:"Hellish "},f:["Hellish"]}," ",{p:[8,3,331],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[8,22,350]}],action:"Fallen "},f:["Fallen"]}," ",{p:[9,3,439],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[9,22,458]}],action:"Fiery "},f:["Fiery"]}," ",{p:[10,3,545],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[10,22,564]}],action:"Sinful "},f:["Sinful"]}," ",{p:[11,3,653],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[11,22,672]}],action:"Blood "},f:["Blood"]}," ",{p:[12,3,759],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0==1?null:"disabled"'},p:[12,22,778]}],action:"Fluffy "},f:["Fluffy"]}]}," ",{p:[14,5,888],t:7,e:"ui-section",a:{label:"Title"},f:[{p:[15,3,918],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[15,22,937]}],action:"Lord "},f:["Lord"]}," ",{p:[16,3,1022],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[16,22,1041]}],action:"Prelate "},f:["Prelate"]}," ",{p:[17,3,1132],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[17,22,1151]}],action:"Count "},f:["Count"]}," ",{p:[18,3,1238],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[18,22,1257]}],action:"Viscount "},f:["Viscount"]}," ",{p:[19,3,1350],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[19,22,1369]}],action:"Vizier "},f:["Vizier"]}," ",{p:[20,3,1458],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[20,22,1477]}],action:"Elder "},f:["Elder"]}," ",{p:[21,3,1564],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=2?null:"disabled"'},p:[21,22,1583]}],action:"Adept "},f:["Adept"]}]}," ",{p:[23,5,1691],t:7,e:"ui-section",a:{label:"Name"},f:[{p:[24,3,1720],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[24,22,1739]}],action:"hal"},f:["hal"]}," ",{p:[25,3,1821],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[25,22,1840]}],action:"ve" - },f:["ve"]}," ",{p:[26,3,1920],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[26,22,1939]}],action:"odr"},f:["odr"]}," ",{p:[27,3,2021],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[27,22,2040]}],action:"neit"},f:["neit"]}," ",{p:[28,3,2124],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0<=4?null:"disabled"'},p:[28,22,2143]}],action:"ci"},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,5,3909],t:7,e:"ui-section",a:{label:"submit"},f:[{p:[48,3,3941],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.currentSection"],s:'_0>=4?null:"disabled"'},p:[48,21,3959]}],action:"search"},f:["search"]}]}]}]},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:{}};r.exports.template={v:3,t:[{p:{button:[{p:[3,3,70],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.emagged"],s:'_0?"un":null'},p:[3,20,87]},"lock"],state:[{t:2,x:{r:["data.can_toggle_safety"],s:'_0?null:"disabled"'},p:[3,63,130]}],action:"safety"},f:["Safeties: ",{p:[4,14,209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.emagged"],s:'_0?"bad":"good"'},p:[4,27,222]}]},f:[{t:2,x:{r:["data.emagged"],s:'_0?"OFF":"ON"'},p:[4,62,257]}]}]}]},t:7,e:"ui-display",a:{title:"Default Programs",button:0},f:[" ",{t:4,f:[{p:[8,2,363],t:7,e:"ui-button",a:{action:"load_program",params:['{"type": ',{t:2,r:"type",p:[8,52,413]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[8,70,431]}]},f:[{t:2,r:"name",p:[9,5,483]}," "]},{p:[10,14,506],t:7,e:"br"}],n:52,r:"data.default_programs",p:[7,2,329]}]}," ",{t:4,f:[{p:[14,2,562],t:7,e:"ui-display",a:{title:"Dangerous Programs"},f:[{t:4,f:[{p:[16,4,638],t:7,e:"ui-button",a:{icon:"warning",action:"load_program",params:['{"type": ',{t:2,r:"type",p:[16,69,703]},"}"],style:[{t:2,x:{r:["data.program","type"],s:'_0==_1?"selected":null'},p:[16,87,721]}]},f:[{t:2,r:"name",p:[17,5,773]}," "]},{p:[18,16,798],t:7,e:"br"}],n:52,r:"data.emag_programs",p:[15,3,605]}]}],n:50,r:"data.emagged",p:[13,1,539]}]},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:{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}],258:[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}],259:[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"]}," ",{p:[13,5,572],t:7,e:"ui-button",a:{icon:"warning",state:"null",action:"bsa_unlock"},f:["Bluespace Artillery Unlock"]}],r:"data.auth_required"}]}]}],r:"data.waiting"}]},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:"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}],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:"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}],262:[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}],263:[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}],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-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}],265:[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}],266:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],267:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[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", -+},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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],268:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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]}]}," ",{p:[14,2,454],t:7,e:"br"},{p:[14,6,458],t:7,e:"br"}," ",{t:4,f:[{p:[16,3,491],t:7,e:"ui-button",a:{action:"PC_toggle_light",style:[{t:2,x:{r:["data.light_on"],s:'_0?"selected":null'},p:[16,46,534]}]},f:["Toggle Flashlight"]},{p:[16,114,602],t:7,e:"br"}," ",{p:[17,3,610],t:7,e:"ui-button",a:{action:"PC_light_color"},f:["Change Flashlight Color ",{p:[17,62,669],t:7,e:"span",a:{style:["border:1px solid #161616; background-color: ",{t:2,r:"data.comp_light_color",p:[17,119,726]},";"]},f:["   "]}]}],n:50,r:"data.has_light",p:[15,2,465]}]}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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:[{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],275:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],276:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],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"}," ",{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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],278:[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(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],279:[function(t,e,n){var a=t(205),r={exports:{}};!function(t){"use strict";t.exports={data:{integState:function(t){var e=100;return t==e?"good":t>e/2?"average":"bad"},bigState:function(t,e,n){return charge>n?"bad":t>e?"average":"good"}}}}(r),r.exports.template={v:3,t:[" "," ",{p:[23,1,421],t:7,e:"ntosheader"}," ",{t:4,f:[{p:[27,2,462],t:7,e:"ui-button",a:{action:"PRG_clear"},f:["Back to Menu"]},{p:[27,56,516],t:7,e:"br"}," ",{p:[28,3,524],t:7,e:"ui-display",a:{title:"Supermatter Status:"},f:[{p:[29,3,568],t:7,e:"ui-section",a:{label:"Core Integrity"},f:[{p:[30,5,609],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"adata.SM_integrity",p:[30,38,642]}],state:[{t:2,x:{r:["integState","adata.SM_integrity"],s:"_0(_1)"},p:[30,69,673]}]},f:[{t:2,r:"data.SM_integrity",p:[30,105,709]},"%"]}]}," ",{p:[32,3,761],t:7,e:"ui-section",a:{label:"Relative EER"},f:[{p:[33,5,800],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_power"],s:"_0(_1,150,300)"},p:[33,18,813]}]},f:[{t:2,r:"data.SM_power",p:[33,55,850]}," MeV/cm3"]}]}," ",{p:[35,3,903],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[36,5,941],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambienttemp"],s:"_0(_1,4000,5000)"},p:[36,18,954]}]},f:[{t:2,r:"data.SM_ambienttemp",p:[36,63,999]}," K"]}]}," ",{p:[38,3,1052],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[39,5,1087],t:7,e:"span",a:{"class":[{t:2,x:{r:["bigState","data.SM_ambientpressure"],s:"_0(_1,5000,10000)"},p:[39,18,1100]}]},f:[{t:2,r:"data.SM_ambientpressure",p:[39,68,1150]}," kPa"]}]}]}," ",{p:[42,3,1227],t:7,e:"hr"},{p:[42,7,1231],t:7,e:"br"}," ",{p:[43,3,1239],t:7,e:"ui-display",a:{title:"Gas Composition:"},f:[{t:4,f:[{p:[45,5,1307],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[45,24,1326]}]},f:[{t:2,r:"amount",p:[46,6,1343]}," %"]}],n:52,r:"data.gases",p:[44,4,1281]}]}],n:50,r:"data.active",p:[26,1,440]},{t:4,n:51,f:[{p:[51,2,1418],t:7,e:"ui-button",a:{action:"PRG_refresh"},f:["Refresh"]},{p:[51,53,1469],t:7,e:"br"}," ",{p:[52,2,1476],t:7,e:"ui-display",a:{title:"Detected Supermatters"},f:[{t:4,f:[{p:[54,3,1552],t:7,e:"ui-section",a:{label:"Area"},f:[{t:2,r:"area_name",p:[55,5,1583]}," - (#",{t:2,r:"uid",p:[55,23,1601]},")"]}," ",{p:[57,3,1630],t:7,e:"ui-section",a:{label:"Integrity"},f:[{t:2,r:"integrity",p:[58,5,1666]}," %"]}," ",{p:[60,3,1702],t:7,e:"ui-section",a:{label:"Options"},f:[{p:[61,5,1736],t:7,e:"ui-button",a:{action:"PRG_set",params:['{"target" : "',{t:2,r:"uid",p:[61,54,1785]},'"}']},f:["View Details"]}]}],n:52,r:"data.supermatters",p:[53,2,1521]}]}],r:"data.active"}]},r.exports.components=r.exports.components||{};var i={ntosheader:t(280)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,280:280}],280:[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}],281:[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}],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-display",f:[{p:[2,2,15],t:7,e:"ui-section",f:["This machine only accepts ore. Gibtonite and Slag are not accepted."]}," ",{p:[5,2,117],t:7,e:"ui-section",f:["Current unclaimed points: ",{t:2,r:"data.unclaimedPoints",p:[6,29,159]}," ",{t:4,f:[{p:[8,4,220],t:7,e:"ui-button",a:{action:"Claim"},f:["Claim Points"]}],n:50,r:"data.unclaimedPoints",p:[7,3,187]}]}," ",{p:[13,2,311],t:7,e:"ui-section",f:[{t:4,f:[{p:[15,4,350],t:7,e:"ui-button",a:{action:"Eject"},f:["Eject ID"]}," You have ",{t:2,r:"data.claimedPoints",p:[18,13,421]}," mining points collected."],n:50,r:"data.hasID",p:[14,3,327]},{t:4,n:51,f:[{p:[20,4,485],t:7,e:"ui-button",a:{action:"Insert"},f:["Insert ID"]}],r:"data.hasID"}]}]}," ",{p:[26,1,588],t:7,e:"ui-display",f:[{t:4,f:[{p:[28,3,627],t:7,e:"ui-section",f:[{p:[29,4,644],t:7,e:"ui-button",a:{action:"diskEject",icon:"eject"},f:["Eject Disk"]}]}," ",{t:4,f:[{p:[34,4,772],t:7,e:"ui-section",a:{"class":"candystripe"},f:[{p:[35,5,808],t:7,e:"ui-button",a:{action:"diskUpload",state:[{t:2,x:{r:["canupload"],s:'(_0)?null:"disabled"'},p:[35,42,845]}],icon:"upload",align:"right",params:['{ "design" : "',{t:2,r:"index",p:[35,129,932]},'" }']},f:["Upload"]}," File ",{t:2,r:"index",p:[38,10,988]},": ",{t:2,r:"name",p:[38,21,999]}]}],n:52,r:"data.diskDesigns",p:[33,3,741]}],n:50,r:"data.hasDisk",p:[27,2,603]},{t:4,n:51,f:[{p:[42,3,1053],t:7,e:"ui-section",f:[{p:[43,4,1070],t:7,e:"ui-button",a:{action:"diskInsert",icon:"floppy-o"},f:["Insert Disk"]}]}],r:"data.hasDisk"}]}," ",{p:[49,1,1195],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[50,2,1227],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[51,4,1261],t:7,e:"section",a:{"class":"cell"},f:["Mineral"]}," ",{p:[54,4,1316],t:7,e:"section",a:{"class":"cell"},f:["Sheets"]}," ",{p:[57,4,1370],t:7,e:"section",a:{"class":"cell"},f:[]}," ",{p:[59,4,1412],t:7,e:"section",a:{"class":"cell"},f:[{p:[60,5,1440],t:7,e:"ui-button",a:{"class":"center mineral",grid:0,action:"Release",params:'{"id" : "all"}'},f:["Release All"]}]}," ",{p:[64,4,1576],t:7,e:"section",a:{"class":"cell"},f:["Ore Value"]}]}," ",{t:4,f:[{p:[69,3,1673],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[70,4,1707],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[71,5,1735]}]}," ",{p:[73,4,1763],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[74,5,1805]}]}," ",{p:[76,4,1835],t:7,e:"section",a:{"class":"cell"},f:[{p:[77,5,1863],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[77,18,1876]}],placeholder:"###","class":"number"}}]}," ",{p:[79,4,1941],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[80,5,1983],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[80,59,2037]}],params:['{ "id" : ',{t:2,r:"id",p:[80,114,2092]},', "sheets" : ',{t:2,r:"sheets",p:[80,133,2111]}," }"]},f:["Release"]}]}," ",{p:[84,4,2178],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"value",p:[85,5,2220]}]}]}],n:52,r:"data.materials",p:[68,2,1645]}," ",{t:4,f:[{p:[90,3,2298],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[91,4,2332],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[92,5,2360]}]}," ",{p:[94,4,2388],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[95,5,2430]}]}," ",{p:[97,4,2460],t:7,e:"section",a:{"class":"cell"},f:[{p:[98,5,2488],t:7,e:"input",a:{value:[{t:2,r:"sheets",p:[98,18,2501]}],placeholder:"###","class":"number"}}]}," ",{p:[100,4,2566],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[101,5,2608],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"Smelt",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[101,57,2660]}],params:['{ "id" : ',{t:2,r:"id",p:[101,113,2716]},', "sheets" : ',{t:2,r:"sheets",p:[101,132,2735]}," }"]},f:["Smelt"]}]}," ",{p:[105,4,2799],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{p:[106,5,2841],t:7,e:"ui-button",a:{"class":"center",grid:0,action:"SmeltAll",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[106,60,2896]}],params:['{ "id" : ',{t:2,r:"id",p:[106,116,2952]}," }"]},f:["Smelt All"]}]}]}],n:52,r:"data.alloys",p:[89,2,2273]}]}]},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:{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}],284:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(312);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",a:{style:"width:100%"},f:[{p:[56,5,1606],t:7,e:"tr",f:[{p:[57,6,1617],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1659],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1718]}]}]}," ",{p:[62,6,1774],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1816],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1874]}]}]}," ",{p:[67,6,1930],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,2014],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1971]},{t:4,n:51,f:[{p:[73,7,2138],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2268],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2310],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2327]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2474],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2515],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2557],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2619]}]}]}," ",{p:[91,6,2678],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2720],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2782]}]}]}],n:50,r:"data.subcategory",p:[85,5,2484]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2992],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,3009]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2902]}],n:50,r:"config.fancy",p:[99,4,2876]}]}," ",{t:4,f:[{p:[106,5,3144],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3193],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3212]}]},f:[{p:[109,7,3230],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,3250]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3358]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3162]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3567],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3586]}]},f:[{p:[117,8,3605],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,3625]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3534]}],n:51,r:"data.display_craftable_only",p:[114,5,3495]}]}],n:50,r:"data.display_compact",p:[105,4,3110]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3947],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3966]}]},f:[{t:4,f:[{p:[128,8,4009],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4052]}]}],n:50,r:"req_text",p:[127,7,3984]}," ",{t:4,f:[{p:[133,8,4139],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4179]}]}],n:50,r:"catalyst_text",p:[132,7,4109]}," ",{t:4,f:[{p:[138,8,4267],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4303]}]}],n:50,r:"tool_text",p:[137,7,4241]}," ",{p:[142,7,4361],t:7,e:"ui-section",f:[{p:[143,8,4382],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4440]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3916]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4621],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4640]}]},f:[{t:4,f:[{p:[153,9,4685],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4729]}]}],n:50,r:"req_text",p:[152,8,4659]}," ",{t:4,f:[{p:[158,9,4820],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4861]}]}],n:50,r:"catalyst_text",p:[157,8,4789]}," ",{t:4,f:[{p:[163,9,4953],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4990]}]}],n:50,r:"tool_text",p:[162,8,4926]}]}],n:52,r:"data.cant_craft",p:[150,6,4588]}],n:51,r:"data.display_craftable_only",p:[149,5,4549]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{205:205,312:312}],285:[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}],286:[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}],287:[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}],288:[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}],289:[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}],290:[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(291),templates:t(293),status:t(292)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{205:205,291:291,292:292,293:293}],291:[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}],292:[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}],293:[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}],294:[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}],295:[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}],296:[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}],297:[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}],298:[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}],299:[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}],300:[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}],301:[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}],302:[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}],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",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}],304:[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}],305:[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}],306:[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}],307:[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(308),i=e.interopRequireDefault(r),o=t(309),s=t(191),u=t(192),p=e.interopRequireDefault(u);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(313)),window.initialize=function(e){window.tgui||(window.tgui=new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(310),text:t(314),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,308:308,309:309,310:310,313:313,314:314,"babel/external-helpers":"babel/external-helpers"}],308:[function(t,e,n){var a=t(205),r={exports:{}};!function(e){"use strict";var n=t(309),a=t(311);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),holodeck:t(256),implantchair:t(257),intellicard:t(258),keycard_auth:t(259),labor_claim_console:t(260),language_menu:t(261),launchpad_remote:t(262),mech_bay_power_console:t(263),mulebot:t(264),ntnet_relay:t(265),ntos_ai_restorer:t(266),ntos_card:t(267),ntos_configuration:t(268),ntos_file_manager:t(269),ntos_main:t(270),ntos_net_chat:t(271),ntos_net_dos:t(272),ntos_net_downloader:t(273),ntos_net_monitor:t(274),ntos_net_transfer:t(275),ntos_power_monitor:t(276),ntos_revelation:t(277),ntos_station_alert:t(278),ntos_supermatter_monitor:t(279),ntosheader:t(280),nuclear_bomb:t(281),ore_redemption_machine:t(282),pandemic:t(283),personal_crafting:t(284),portable_pump:t(285),portable_scrubber:t(286),power_monitor:t(287),radio:t(288),sat_control:t(289),shuttle_manipulator:t(290),"shuttle_manipulator/modification":t(291),"shuttle_manipulator/status":t(292),"shuttle_manipulator/templates":t(293),sleeper:t(294),slime_swap_body:t(295),smes:t(296),solar_control:t(297),space_heater:t(298),station_alert:t(299),suit_storage_unit:t(300),tank_dispenser:t(301),tanks:t(302),thermomachine:t(303),uplink:t(304),vr_sleeper:t(305),wires:t(306)};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,304:304,305:305,306:306,309:309,311:311}],309:[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},{}],310:[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},{}],311:[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(309)},{309:309}],312:[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},{}],313:[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},{}],314:[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);e2?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 R=l(T.call(new t));c(R,S,!0),!a&&s(A,h)&&o(R,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,R=r.getDesc,j=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 R(t,e)}catch(n){}return c(t,e)?s(!C.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=j=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:j});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),D=L.concat("length","prototype"),N=L.length,F=function(){var t,e=p("iframe"),n=N,a=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("" - HTML += "" + continue + if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) + HTML += "[rank]" + continue + if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) + if(user.client.prefs.pref_species.id == "human") + HTML += "[rank]" + else + HTML += "[rank]" + continue + if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs + HTML += "[rank]" + else + HTML += "[rank]" + + HTML += "" + continue + + HTML += "[prefLevelLabel]" + HTML += "" + + for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even + HTML += "" + + HTML += "
" // Table within a table for alignment, also allows you to easily add more colomns. - HTML += "" - var/index = -1 - - //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. - var/datum/job/lastJob - - for(var/datum/job/job in SSjob.occupations) - - index += 1 - if((index >= limit) || (job.title in splitJobs)) - width += widthPerColumn - if((index < limit) && (lastJob != null)) - //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with - //the last job's selection color. Creating a rather nice effect. - for(var/i = 0, i < (limit - index), i += 1) - HTML += "" - HTML += "
  
" - index = 0 - - HTML += "" - continue + var/chat_toggles = TOGGLES_DEFAULT_CHAT + var/ghost_form = "ghost" + var/ghost_orbit = GHOST_ORBIT_CIRCLE + var/ghost_accs = GHOST_ACCS_DEFAULT_OPTION + var/ghost_others = GHOST_OTHERS_DEFAULT_OPTION + var/ghost_hud = 1 + var/inquisitive_ghost = 1 + var/allow_midround_antag = 1 + var/preferred_map = null + + var/uses_glasses_colour = 0 + + //character preferences + var/real_name //our character's name + var/be_random_name = 0 //whether we'll have a random name every round + var/be_random_body = 0 //whether we'll have a random body every round + var/gender = MALE //gender of character (well duh) + var/age = 30 //age of character + var/underwear = "Nude" //underwear type + var/undershirt = "Nude" //undershirt type + var/socks = "Nude" //socks type + var/backbag = DBACKPACK //backpack type + var/hair_style = "Bald" //Hair type + var/hair_color = "000" //Hair color + var/facial_hair_style = "Shaved" //Face hair type + var/facial_hair_color = "000" //Facial hair color + var/skin_tone = "caucasian1" //Skin color + var/eye_color = "000" //Eye color + var/datum/species/pref_species = new /datum/species/human() //Mutant race + var/list/features = list("mcolor" = "FFF", + "mcolor2" = "FFF", + "mcolor3" = "FFF", + "tail_lizard" = "Smooth", + "tail_human" = "None", + "snout" = "Round", + "horns" = "None", + "ears" = "None", + "wings" = "None", + "frills" = "None", + "spines" = "None", + "body_markings" = "None", + "mam_body_markings" = "None", + "mam_ears" = "None", + "mam_tail" = "None", + "mam_tail_animated" = "None", + "xenodorsal" = "None", + "xenohead" = "None", + "xenotail" = "None", + "legs" = "Normal Legs", + "taur" = "None", + "exhibitionist" = FALSE, + "genitals_use_skintone" = FALSE, + "has_cock" = FALSE, + "cock_shape" = "Human", + "cock_length" = 6, + "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF, + "cock_color" = "fff", + "has_sheath" = FALSE, + "sheath_color" = "fff", + "has_balls" = FALSE, + "balls_internal" = FALSE, + "balls_color" = "fff", + "balls_amount" = 2, + "balls_sack_size" = BALLS_SACK_SIZE_DEF, + "balls_size" = BALLS_SIZE_DEF, + "balls_cum_rate" = CUM_RATE, + "balls_cum_mult" = CUM_RATE_MULT, + "balls_efficiency" = CUM_EFFICIENCY, + "balls_fluid" = "semen", + "has_ovi" = FALSE, + "ovi_shape" = "knotted", + "ovi_length" = 6, + "ovi_color" = "fff", + "has_eggsack" = FALSE, + "eggsack_internal" = TRUE, + "eggsack_color" = "fff", + "eggsack_size" = BALLS_SACK_SIZE_DEF, + "eggsack_egg_color" = "fff", + "eggsack_egg_size" = EGG_GIRTH_DEF, + "has_breasts" = FALSE, + "breasts_color" = "fff", + "breasts_size" = "C", + "breasts_shape" = "Pair", + "breasts_fluid" = "milk", + "has_vag" = FALSE, + "vag_shape" = "Human", + "vag_color" = "fff", + "vag_clits" = 1, + "vag_clit_diam" = 0.25, + "vag_clit_len" = 0.25, + "has_womb" = FALSE, + "womb_cum_rate" = CUM_RATE, + "womb_cum_mult" = CUM_RATE_MULT, + "womb_efficiency" = CUM_EFFICIENCY, + "womb_fluid" = "femcum", + "flavor_text" = "" + )//MAKE SURE TO UPDATE THE LIST IN MOBS.DM IF YOU'RE GOING TO ADD TO THIS LIST, OTHERWISE THINGS MIGHT GET FUCKEY + + var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") + var/prefered_security_department = SEC_DEPT_RANDOM + + //Mob preview + var/icon/preview_icon = null + + //Jobs, uses bitflags + var/job_civilian_high = 0 + var/job_civilian_med = 0 + var/job_civilian_low = 0 + + var/job_medsci_high = 0 + var/job_medsci_med = 0 + var/job_medsci_low = 0 + + var/job_engsec_high = 0 + var/job_engsec_med = 0 + var/job_engsec_low = 0 + + // Want randomjob if preferences already filled - Donkie + var/joblessrole = BERANDOMJOB //defaults to 1 for fewer assistants + + // 0 = character settings, 1 = game preferences, 2 = character appearance + var/current_tab = 0 + + // OOC Metadata: + var/metadata = "" + + var/unlock_content = 0 + + var/list/ignoring = list() + + var/clientfps = 0 + + var/parallax + + var/uplink_spawn_loc = UPLINK_PDA + + var/list/exp + var/list/menuoptions + + //citadel code + var/arousable = TRUE //Allows players to disable arousal from the character creation menu + +/datum/preferences/New(client/C) + parent = C + custom_names["ai"] = pick(GLOB.ai_names) + custom_names["cyborg"] = pick(GLOB.ai_names) + custom_names["clown"] = pick(GLOB.clown_names) + custom_names["mime"] = pick(GLOB.mime_names) + if(istype(C)) + if(!IsGuestKey(C.key)) + load_path(C.ckey) + unlock_content = C.IsByondMember() + if(unlock_content) + max_save_slots = 16 + var/loaded_preferences_successfully = load_preferences() + if(loaded_preferences_successfully) + if(load_character()) + return + //we couldn't load character data so just randomize the character appearance + name + random_character() //let's create a random character then - rather than a fat, bald and naked man. + real_name = pref_species.random_name(gender,1) + if(!loaded_preferences_successfully) + save_preferences() + save_character() //let's save this new random character so it doesn't keep generating new ones. + menuoptions = list() + return + +/datum/preferences/proc/ShowChoices(mob/user) + if(!user || !user.client) + return + if(current_tab == 2) + update_preview_icon(nude=TRUE) + else + update_preview_icon(nude=FALSE) + user << browse_rsc(preview_icon, "previewicon.png") + var/dat = "
" + + dat += "Character Settings" + dat += "Character Appearance" + dat += "Game Preferences" + + if(!path) + dat += "
Please create an account to save your preferences
" + + dat += "
" + + dat += "
" + + switch(current_tab) + if (0) // Character Settings# + if(path) + var/savefile/S = new /savefile(path) + if(S) + dat += "
" + var/name + for(var/i=1, i<=max_save_slots, i++) + S.cd = "/character[i]" + S["real_name"] >> name + if(!name) + name = "Character[i]" + //if(i!=1) dat += " | " + dat += "[name] " + dat += "
" + + dat += "

Occupation Choices

" + dat += "Set Occupation Preferences
" + dat += "

Identity

" + dat += "
" - var/rank = job.title - lastJob = job - if(jobban_isbanned(user, rank)) - HTML += "[rank] BANNED
" + + dat += "
" + if(jobban_isbanned(user, "appearance")) + dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game.
" + dat += "Random Name " + dat += "Always Random Name: [be_random_name ? "Yes" : "No"]
" + + dat += "Name: " + dat += "[real_name]
" + + dat += "Gender: [gender == MALE ? "Male" : "Female"]
" + dat += "Age: [age]
" + dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
" + dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
" + dat += "Special Names:
" + dat += "Clown: [custom_names["clown"]] " + dat += "Mime:[custom_names["mime"]]
" + dat += "AI: [custom_names["ai"]] " + dat += "Cyborg: [custom_names["cyborg"]]
" + dat += "Chaplain religion: [custom_names["religion"]] " + dat += "Chaplain deity: [custom_names["deity"]]
" + + dat += "Custom job preferences:
" + dat += "Prefered security department: [prefered_security_department]
" + + dat += "
" + + dat += "
" +// dat += "Size: [character_size]
" + dat += "
" + + if (1) // Game Preferences + dat += "
" + dat += "

General Settings

" + dat += "UI Style: [UI_style]
" + dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
" + dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
" + dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
" + dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
" + dat += "Window Flashing: [(windowflashing) ? "Yes" : "No"]
" + dat += "Play admin midis: [(toggles & SOUND_MIDI) ? "Yes" : "No"]
" + dat += "Play lobby music: [(toggles & SOUND_LOBBY) ? "Yes" : "No"]
" + dat += "Ghost ears: [(chat_toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
" + dat += "Ghost sight: [(chat_toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
" + dat += "Ghost whispers: [(chat_toggles & CHAT_GHOSTWHISPER) ? "All Speech" : "Nearest Creatures"]
" + dat += "Ghost radio: [(chat_toggles & CHAT_GHOSTRADIO) ? "Yes" : "No"]
" + dat += "Ghost pda: [(chat_toggles & CHAT_GHOSTPDA) ? "All Messages" : "Nearest Creatures"]
" + dat += "Pull requests: [(chat_toggles & CHAT_PULLR) ? "Yes" : "No"]
" + dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Yes" : "No"]
" + if(config.allow_Metadata) + dat += "OOC Notes: Edit
" + + if(user.client) + if(user.client.holder) + dat += "Adminhelp Sound: [(toggles & SOUND_ADMINHELP)?"On":"Off"]
" + dat += "Announce Login: [(toggles & ANNOUNCE_LOGIN)?"On":"Off"]
" + + if(unlock_content || check_rights_for(user.client, R_ADMIN)) + dat += "OOC:     Change
" + + if(unlock_content) + dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
" + dat += "Ghost Form: [ghost_form]
" + dat += "Ghost Orbit: [ghost_orbit]
" + + var/button_name = "If you see this something went wrong." + switch(ghost_accs) + if(GHOST_ACCS_FULL) + button_name = GHOST_ACCS_FULL_NAME + if(GHOST_ACCS_DIR) + button_name = GHOST_ACCS_DIR_NAME + if(GHOST_ACCS_NONE) + button_name = GHOST_ACCS_NONE_NAME + + dat += "Ghost Accessories: [button_name]
" + + switch(ghost_others) + if(GHOST_OTHERS_THEIR_SETTING) + button_name = GHOST_OTHERS_THEIR_SETTING_NAME + if(GHOST_OTHERS_DEFAULT_SPRITE) + button_name = GHOST_OTHERS_DEFAULT_SPRITE_NAME + if(GHOST_OTHERS_SIMPLE) + button_name = GHOST_OTHERS_SIMPLE_NAME + + dat += "Ghosts of Others: [button_name]
" + + if (config.maprotation) + var/p_map = preferred_map + if (!p_map) + p_map = "Default" + if (config.defaultmap) + p_map += " ([config.defaultmap.map_name])" + else + if (p_map in config.maplist) + var/datum/map_config/VM = config.maplist[p_map] + if (!VM) + p_map += " (No longer exists)" + else + p_map = VM.map_name + else + p_map += " (No longer exists)" + if(config.allow_map_voting) + dat += "Preferred Map: [p_map]
" + + dat += "FPS: [clientfps]
" + + dat += "Parallax (Fancy Space): " + switch (parallax) + if (PARALLAX_LOW) + dat += "Low" + if (PARALLAX_MED) + dat += "Medium" + if (PARALLAX_INSANE) + dat += "Insane" + if (PARALLAX_DISABLE) + dat += "Disabled" + else + dat += "High" + dat += "
" + + dat += "
" + + dat += "

Special Role Settings

" + + if(jobban_isbanned(user, "Syndicate")) + dat += "You are banned from antagonist roles." + src.be_special = list() + + + for (var/i in GLOB.special_roles) + if(jobban_isbanned(user, i)) + dat += "Be [capitalize(i)]: BANNED
" + else + var/days_remaining = null + if(config.use_age_restriction_for_jobs && ispath(GLOB.special_roles[i])) //If it's a game mode antag, check if the player meets the minimum age + var/mode_path = GLOB.special_roles[i] + var/datum/game_mode/temp_mode = new mode_path + days_remaining = temp_mode.get_remaining_days(user.client) + + if(days_remaining) + dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS]
" + else + dat += "Be [capitalize(i)]: [(i in be_special) ? "Yes" : "No"]
" + + dat += "
" + + //Character Appearance + if(2) + dat += "" + */ + + + dat += "
" + dat += "

" + dat += "Set Flavor Text
" + if(lentext(features["flavor_text"]) <= 40) + if(!lentext(features["flavor_text"])) + dat += "\[...\]" + else + dat += "[features["flavor_text"]]" + else + dat += "[TextPreview(features["flavor_text"])]...
" + if(config.mutant_races)//really don't need this check, but fuck un-tabbing all those lines + dat += "

Body

" + dat += "Gender: [gender == MALE ? "Male" : "Female"]
" + dat += "Species:[pref_species.id]
" + dat += "Random Body
" + dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
" + if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits)) + dat += "Primary Color:     Change
" + dat += "Secondary Color:     Change
" + dat += "Tertiary Color:     Change
" + if(pref_species.use_skintones) + dat += "Skin Tone: [skin_tone]
" + dat += "Genitals Use Skintone:[features["genitals_use_skintone"] == TRUE ? "Enabled" : "Disabled"]
" + + if(HAIR in pref_species.species_traits) + dat += "Hair Style: [hair_style]
" + dat += "Hair Color:     Change
" + dat += "Facial Hair Style: [facial_hair_style]
" + dat += "Facial Hair Color:     Change
" + if(EYECOLOR in pref_species.species_traits) + dat += "Eye Color:     Change
" + if("tail_lizard" in pref_species.mutant_bodyparts) + dat += "Tail: [features["tail_lizard"]]
" + else if("mam_tail" in pref_species.mutant_bodyparts) + dat += "Tail: [features["mam_tail"]]
" + else if("tail_human" in pref_species.mutant_bodyparts) + dat += "Tail: [features["tail_human"]]
" + if("snout" in pref_species.mutant_bodyparts) + dat += "Snout: [features["snout"]]
" + if("horns" in pref_species.mutant_bodyparts) + dat += "Snout: [features["horns"]]
" + if("frills" in pref_species.mutant_bodyparts) + dat += "Frills: [features["frills"]]
" + if("spines" in pref_species.mutant_bodyparts) + dat += "Spines: [features["spines"]]
" + if("body_markings" in pref_species.mutant_bodyparts) + dat += "Body Markings: [features["body_markings"]]
" + else if("mam_body_markings" in pref_species.mutant_bodyparts) + dat += "Body Markings: [features["mam_body_markings"]]
" + if("mam_ears" in pref_species.mutant_bodyparts) + dat += "Ears: [features["mam_ears"]]
" + else if("ears" in pref_species.mutant_bodyparts) + dat += "Ears: [features["ears"]]
" + if("legs" in pref_species.mutant_bodyparts) + dat += "Legs: [features["legs"]]
" + if("taur" in pref_species.mutant_bodyparts) + dat += "Taur: [features["taur"]]
" + if("wings" in pref_species.mutant_bodyparts && GLOB.r_wings_list.len >1) + dat += "Wings: [features["wings"]]
" + if("xenohead" in pref_species.mutant_bodyparts) + dat += "Caste: [features["xenohead"]]
" + if("xenotail" in pref_species.mutant_bodyparts) + dat += "Tail: [features["xenotail"]]
" + if("xenodorsal" in pref_species.mutant_bodyparts) + dat += "Dorsal Tubes: [features["xenodorsal"]]
" + + dat += "
" + + + dat += "

Clothing & Equipment

" +//underwear will be refactored later so it fits in with other wearable equipment and isn't just an overlay +// dat += "Underwear:[underwear]
" +// dat += "Undershirt:[undershirt]
" +// dat += "Socks:[socks]
" + dat += "Backpack:[backbag]
" + dat += "Uplink Location:[uplink_spawn_loc]
" + + dat += "

Genitals

" + if(NOGENITALS in pref_species.species_traits) + dat += "Your species ([pref_species.name]) does not support genitals!
" + else + dat += "Has Penis:[features["has_cock"] == TRUE ? "Yes" : "No"]
" + if(features["has_cock"] == TRUE) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Penis Color:   (Skin tone overriding)
" + else + dat += "Penis Color:    Change
" +// dat += "
" + dat += "Penis Shape: [features["cock_shape"]]
" + dat += "Penis Length: [features["cock_length"]] inch(es)
" + dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]
" + if(features["has_balls"] == TRUE) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Testicles Color:   (Skin tone overriding)
" + else + dat += "Testicles Color:    Change
" + dat += "Has Vagina:[features["has_vag"] == TRUE ? "Yes" : "No"]
" + if(features["has_vag"]) + dat += "Vagina Type: [features["vag_shape"]]
" + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Vagina Color:   (Skin tone overriding)
" + else + dat += "Vagina Color:    Change
" + dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]
" + dat += "Has Breasts:[features["has_breasts"] == TRUE ? "Yes" : "No"]
" + if(features["has_breasts"]) + if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) + dat += "Color:   (Skin tone overriding)
" + else + dat += "Color:    Change
" + dat += "Cup Size:[features["breasts_size"]]
" + dat += "Breast Shape:[features["breasts_shape"]]
" + /* + dat += "

Ovipositor

" + dat += "Has Ovipositor:[features["has_ovi"] == TRUE ? "Yes" : "No"]" + if(features["has_ovi"]) + dat += "Ovi Color:    Change" + dat += "

Eggsack

" + dat += "Has Eggsack:[features["has_eggsack"] == TRUE ? "Yes" : "No"]
" + if(features["has_eggsack"] == TRUE) + dat += "Color:    Change" + dat += "Egg Color:    Change" + dat += "Egg Size:[features["eggsack_egg_size"]]\" Diameter" + + dat += "
" + dat += "
" + + if(!IsGuestKey(user.key)) + dat += "Undo " + dat += "Save Setup " + + dat += "Reset Setup" + dat += "
" + + var/datum/browser/popup = new(user, "preferences", "
Character Setup
", 640, 770) + popup.set_content(dat) + popup.open(0) + +/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) + if(!SSjob) + return + + //limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice. + //splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. + //widthPerColumn - Screen's width for every column. + //height - Screen's height. + + var/width = widthPerColumn + + var/HTML = "
" + if(SSjob.occupations.len <= 0) + HTML += "The job ticker is not yet finished creating jobs, please try again later" + HTML += "
Done

" // Easier to press up here. + + else + HTML += "Choose occupation chances
" + HTML += "
Left-click to raise an occupation preference, right-click to lower it.
" + HTML += "
Done

" // Easier to press up here. + HTML += "" + HTML += "
" // Table within a table for alignment, also allows you to easily add more colomns. + HTML += "" + var/index = -1 + + //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. + var/datum/job/lastJob + + for(var/datum/job/job in SSjob.occupations) + + index += 1 + if((index >= limit) || (job.title in splitJobs)) + width += widthPerColumn + if((index < limit) && (lastJob != null)) + //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with + //the last job's selection color. Creating a rather nice effect. + for(var/i = 0, i < (limit - index), i += 1) + HTML += "" + HTML += "
  
" + index = 0 + + HTML += "" + continue var/required_playtime_remaining = job.required_playtime_remaining(user.client) if(required_playtime_remaining) HTML += "[rank]" continue - if(!job.player_old_enough(user.client)) - var/available_in_days = job.available_in_days(user.client) - HTML += "[rank]" - continue - if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) - HTML += "[rank]" - continue - if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) - if(user.client.prefs.pref_species.id == "human") - HTML += "[rank]" - else - HTML += "[rank]" - continue - if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs - HTML += "[rank]" - else - HTML += "[rank]" - - HTML += "" - continue - - HTML += "[prefLevelLabel]" - HTML += "" - - for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even - HTML += "" - - HTML += "
" + var/rank = job.title + lastJob = job + if(jobban_isbanned(user, rank)) + HTML += "[rank] BANNED
\[ [get_exp_format(required_playtime_remaining)] as [job.get_exp_req_type()] \]
\[IN [(available_in_days)] DAYS\]
\[MUTANT\]
\[NON-HUMAN\]
" - - var/prefLevelLabel = "ERROR" - var/prefLevelColor = "pink" - var/prefUpperLevel = -1 // level to assign on left click - var/prefLowerLevel = -1 // level to assign on right click - - if(GetJobDepartment(job, 1) & job.flag) - prefLevelLabel = "High" - prefLevelColor = "slateblue" - prefUpperLevel = 4 - prefLowerLevel = 2 - else if(GetJobDepartment(job, 2) & job.flag) - prefLevelLabel = "Medium" - prefLevelColor = "green" - prefUpperLevel = 1 - prefLowerLevel = 3 - else if(GetJobDepartment(job, 3) & job.flag) - prefLevelLabel = "Low" - prefLevelColor = "orange" - prefUpperLevel = 2 - prefLowerLevel = 4 - else - prefLevelLabel = "NEVER" - prefLevelColor = "red" - prefUpperLevel = 3 - prefLowerLevel = 1 - - - HTML += "" - - if(rank == "Assistant")//Assistant is special - if(job_civilian_low & ASSISTANT) - HTML += "Yes" - else - HTML += "No" - HTML += "
  
" - HTML += "
" - - var/message = "Be an Assistant if preferences unavailable" - if(joblessrole == BERANDOMJOB) - message = "Get random job if preferences unavailable" - else if(joblessrole == RETURNTOLOBBY) - message = "Return to lobby if preferences unavailable" - HTML += "

[message]
" - HTML += "
Reset Preferences
" - - user << browse(null, "window=preferences") - var/datum/browser/popup = new(user, "mob_occupation", "
Occupation Preferences
", width, height) - popup.set_window_options("can_close=0") - popup.set_content(HTML) - popup.open(0) - return - -/datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) - if (!job) - return 0 - - if (level == 1) // to high - // remove any other job(s) set to high - job_civilian_med |= job_civilian_high - job_engsec_med |= job_engsec_high - job_medsci_med |= job_medsci_high - job_civilian_high = 0 - job_engsec_high = 0 - job_medsci_high = 0 - - if (job.department_flag == CIVILIAN) - job_civilian_low &= ~job.flag - job_civilian_med &= ~job.flag - job_civilian_high &= ~job.flag - - switch(level) - if (1) - job_civilian_high |= job.flag - if (2) - job_civilian_med |= job.flag - if (3) - job_civilian_low |= job.flag - - return 1 - else if (job.department_flag == ENGSEC) - job_engsec_low &= ~job.flag - job_engsec_med &= ~job.flag - job_engsec_high &= ~job.flag - - switch(level) - if (1) - job_engsec_high |= job.flag - if (2) - job_engsec_med |= job.flag - if (3) - job_engsec_low |= job.flag - - return 1 - else if (job.department_flag == MEDSCI) - job_medsci_low &= ~job.flag - job_medsci_med &= ~job.flag - job_medsci_high &= ~job.flag - - switch(level) - if (1) - job_medsci_high |= job.flag - if (2) - job_medsci_med |= job.flag - if (3) - job_medsci_low |= job.flag - - return 1 - - return 0 - -/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) - if(!SSjob || SSjob.occupations.len <= 0) - return - var/datum/job/job = SSjob.GetJob(role) - - if(!job) - user << browse(null, "window=mob_occupation") - ShowChoices(user) - return - - if (!isnum(desiredLvl)) - to_chat(user, "UpdateJobPreference - desired level was not a number. Please notify coders!") - ShowChoices(user) - return - - if(role == "Assistant") - if(job_civilian_low & job.flag) - job_civilian_low &= ~job.flag - else - job_civilian_low |= job.flag - SetChoices(user) - return 1 - - SetJobPreferenceLevel(job, desiredLvl) - SetChoices(user) - - return 1 - - -/datum/preferences/proc/ResetJobs() - - job_civilian_high = 0 - job_civilian_med = 0 - job_civilian_low = 0 - - job_medsci_high = 0 - job_medsci_med = 0 - job_medsci_low = 0 - - job_engsec_high = 0 - job_engsec_med = 0 - job_engsec_low = 0 - - -/datum/preferences/proc/GetJobDepartment(datum/job/job, level) - if(!job || !level) - return 0 - switch(job.department_flag) - if(CIVILIAN) - switch(level) - if(1) - return job_civilian_high - if(2) - return job_civilian_med - if(3) - return job_civilian_low - if(MEDSCI) - switch(level) - if(1) - return job_medsci_high - if(2) - return job_medsci_med - if(3) - return job_medsci_low - if(ENGSEC) - switch(level) - if(1) - return job_engsec_high - if(2) - return job_engsec_med - if(3) - return job_engsec_low - return 0 - -/datum/preferences/proc/process_link(mob/user, list/href_list) - if(href_list["jobbancheck"]) - var/job = sanitizeSQL(href_list["jobbancheck"]) - var/sql_ckey = sanitizeSQL(user.ckey) - var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") - if(!query_get_jobban.warn_execute()) - return - if(query_get_jobban.NextRow()) - var/reason = query_get_jobban.item[1] - var/bantime = query_get_jobban.item[2] - var/duration = query_get_jobban.item[3] - var/expiration_time = query_get_jobban.item[4] - var/a_ckey = query_get_jobban.item[5] - var/text - text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
[reason]
This ban was applied by [a_ckey] on [bantime]" - if(text2num(duration) > 0) - text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" - text += ".
" - to_chat(user, text) - return - - if(href_list["preference"] == "job") - switch(href_list["task"]) - if("close") - user << browse(null, "window=mob_occupation") - ShowChoices(user) - if("reset") - ResetJobs() - SetChoices(user) - if("random") - switch(joblessrole) - if(RETURNTOLOBBY) - if(jobban_isbanned(user, "Assistant")) - joblessrole = BERANDOMJOB - else - joblessrole = BEASSISTANT - if(BEASSISTANT) - joblessrole = BERANDOMJOB - if(BERANDOMJOB) - joblessrole = RETURNTOLOBBY - SetChoices(user) - if("setJobLevel") - UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) - else - SetChoices(user) - return 1 - - switch(href_list["task"]) - if("random") - switch(href_list["preference"]) - if("name") - real_name = pref_species.random_name(gender,1) - if("age") - age = rand(AGE_MIN, AGE_MAX) - if("hair") - hair_color = random_short_color() - if("hair_style") - hair_style = random_hair_style(gender) - if("facial") - facial_hair_color = random_short_color() - if("facial_hair_style") - facial_hair_style = random_facial_hair_style(gender) - if("underwear") - underwear = random_underwear(gender) - if("undershirt") - undershirt = random_undershirt(gender) - if("socks") - socks = random_socks() - if("eyes") - eye_color = random_eye_color() - if("s_tone") - skin_tone = random_skin_tone() - if("bag") - backbag = pick(GLOB.backbaglist) - if("all") - random_character() - - if("input") - switch(href_list["preference"]) - if("ghostform") - if(unlock_content) - var/new_form = input(user, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in GLOB.ghost_forms - if(new_form) - ghost_form = new_form - if("ghostorbit") - if(unlock_content) - var/new_orbit = input(user, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND", null) as null|anything in GLOB.ghost_orbits - if(new_orbit) - ghost_orbit = new_orbit - - if("ghostaccs") - var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,GHOST_ACCS_FULL_NAME, GHOST_ACCS_DIR_NAME, GHOST_ACCS_NONE_NAME) - switch(new_ghost_accs) - if(GHOST_ACCS_FULL_NAME) - ghost_accs = GHOST_ACCS_FULL - if(GHOST_ACCS_DIR_NAME) - ghost_accs = GHOST_ACCS_DIR - if(GHOST_ACCS_NONE_NAME) - ghost_accs = GHOST_ACCS_NONE - - if("ghostothers") - var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,GHOST_OTHERS_THEIR_SETTING_NAME, GHOST_OTHERS_DEFAULT_SPRITE_NAME, GHOST_OTHERS_SIMPLE_NAME) - switch(new_ghost_others) - if(GHOST_OTHERS_THEIR_SETTING_NAME) - ghost_others = GHOST_OTHERS_THEIR_SETTING - if(GHOST_OTHERS_DEFAULT_SPRITE_NAME) - ghost_others = GHOST_OTHERS_DEFAULT_SPRITE - if(GHOST_OTHERS_SIMPLE_NAME) - ghost_others = GHOST_OTHERS_SIMPLE - - if("name") - var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) - if(new_name) - real_name = new_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("age") - var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null - if(new_age) - age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) - - if("flavor_text") - var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"])) as message - if(msg != null) - msg = copytext(msg, 1, MAX_MESSAGE_LEN) - msg = html_encode(msg) - features["flavor_text"] = msg - - if("metadata") - var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null - if(new_metadata) - metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) - - if("hair") - var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color - if(new_hair) - hair_color = sanitize_hexcolor(new_hair) - - - if("hair_style") - var/new_hair_style - if(gender == MALE) - new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_male_list - else - new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_female_list - if(new_hair_style) - hair_style = new_hair_style - - if("next_hair_style") - if (gender == MALE) - hair_style = next_list_item(hair_style, GLOB.hair_styles_male_list) - else - hair_style = next_list_item(hair_style, GLOB.hair_styles_female_list) - - if("previous_hair_style") - if (gender == MALE) - hair_style = previous_list_item(hair_style, GLOB.hair_styles_male_list) - else - hair_style = previous_list_item(hair_style, GLOB.hair_styles_female_list) - - if("facial") - var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as null|color - if(new_facial) - facial_hair_color = sanitize_hexcolor(new_facial) - - if("facial_hair_style") - var/new_facial_hair_style - if(gender == MALE) - new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list - else - new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list - if(new_facial_hair_style) - facial_hair_style = new_facial_hair_style - - if("next_facehair_style") - if (gender == MALE) - facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) - else - facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) - - if("previous_facehair_style") - if (gender == MALE) - facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) - else - facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) - - if("underwear") - var/new_underwear - if(gender == MALE) - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m - else - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f - if(new_underwear) - underwear = new_underwear - - if("undershirt") - var/new_undershirt - if(gender == MALE) - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m - else - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f - if(new_undershirt) - undershirt = new_undershirt - - if("socks") - var/new_socks - new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list - if(new_socks) - socks = new_socks - - if("eyes") - var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null - if(new_eyes) - eye_color = sanitize_hexcolor(new_eyes) - - if("species") - - var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_species - - if(result) - var/newtype = GLOB.roundstart_species[result] - pref_species = new newtype() - //Now that we changed our species, we must verify that the mutant colour is still allowed. - var/temp_hsv = RGBtoHSV(features["mcolor"]) - if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor"] = pref_species.default_color - if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor2"] = pref_species.default_color - if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) - features["mcolor3"] = pref_species.default_color - - if("mutant_color") - var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("mutant_color2") - var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor2"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("mutant_color3") - var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor3"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor3"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - - if("tail_lizard") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard - if(new_tail) - features["tail_lizard"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - - if("tail_human") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human - if(new_tail) - features["tail_human"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - if("mam_tail") - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.mam_tails_list - if(new_tail) - features["mam_tail"] = new_tail - if(new_tail != "None") - features["taur"] = "None" - - if("taur") - var/new_taur - new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in GLOB.taur_list - if(new_taur) - features["taur"] = new_taur - if(new_taur != "None") - features["mam_tail"] = "None" - features["xenotail"] = "None" - -/* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. - if("mam_snout") - var/new_snout - new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.mam_snouts_list - if(new_snout) - features["snout"] = new_snout -*/ - - if("snout") - var/new_snout - new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list - if(new_snout) - features["snout"] = new_snout - - if("horns") - var/new_horns - new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list - if(new_horns) - features["horns"] = new_horns - - if("mam_ears") - var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.mam_ears_list - if(new_ears) - features["mam_ears"] = new_ears - - if("ears") - var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list - if(new_ears) - features["ears"] = new_ears - - if("wings") - var/new_wings - new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list - if(new_wings) - features["wings"] = new_wings - - if("frills") - var/new_frills - new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list - if(new_frills) - features["frills"] = new_frills - - if("spines") - var/new_spines - new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in GLOB.spines_list - if(new_spines) - features["spines"] = new_spines - - if("body_markings") - var/new_body_markings - new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list - if(new_body_markings) - features["body_markings"] = new_body_markings - - if("mam_body_markings") - var/new_mam_body_markings - new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.mam_body_markings_list - if(new_mam_body_markings) - features["mam_body_markings"] = new_mam_body_markings - - //Xeno Bodyparts - if("xenohead")//Head or caste type - var/new_head - new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list - if(new_head) - features["xenohead"] = new_head - - if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future. - var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list - if(new_tail) - features["xenotail"] = new_tail - - if("xenodorsal") - var/new_dors - new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list - if(new_dors) - features["xenodorsal"] = new_dors - - if("legs") - var/new_legs - new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list - if(new_legs) - features["legs"] = new_legs - - if("s_tone") - var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones - if(new_s_tone) - skin_tone = new_s_tone - - if("ooccolor") - var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null - if(new_ooccolor) - ooccolor = sanitize_ooccolor(new_ooccolor) - - if("bag") - var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist - if(new_backbag) - backbag = new_backbag - - if("uplink_loc") - var/new_loc = input(user, "Choose your character's traitor uplink spawn location:", "Character Preference") as null|anything in GLOB.uplink_spawn_loc_list - if(new_loc) - uplink_spawn_loc = new_loc - - if("clown_name") - var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null ) - if(new_clown_name) - custom_names["clown"] = new_clown_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("mime_name") - var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null ) - if(new_mime_name) - custom_names["mime"] = new_mime_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("ai_name") - var/new_ai_name = reject_bad_name( input(user, "Choose your character's AI name:", "Character Preference") as text|null, 1 ) - if(new_ai_name) - custom_names["ai"] = new_ai_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") - - if("cyborg_name") - var/new_cyborg_name = reject_bad_name( input(user, "Choose your character's cyborg name:", "Character Preference") as text|null, 1 ) - if(new_cyborg_name) - custom_names["cyborg"] = new_cyborg_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") - - if("religion_name") - var/new_religion_name = reject_bad_name( input(user, "Choose your character's religion:", "Character Preference") as text|null ) - if(new_religion_name) - custom_names["religion"] = new_religion_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("deity_name") - var/new_deity_name = reject_bad_name( input(user, "Choose your character's deity:", "Character Preference") as text|null ) - if(new_deity_name) - custom_names["deity"] = new_deity_name - else - to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") - - if("sec_dept") - var/department = input(user, "Choose your prefered security department:", "Security Departments") as null|anything in GLOB.security_depts_prefs - if(department) - prefered_security_department = department - - if ("preferred_map") - var/maplist = list() - var/default = "Default" - if (config.defaultmap) - default += " ([config.defaultmap.map_name])" - for (var/M in config.maplist) - var/datum/map_config/VM = config.maplist[M] - var/friendlyname = "[VM.map_name] " - if (VM.voteweight <= 0) - friendlyname += " (disabled)" - maplist[friendlyname] = VM.map_name - maplist[default] = null - var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist - if (pickedmap) - preferred_map = maplist[pickedmap] - - if ("clientfps") - var/version_message - if (user.client && user.client.byond_version < 511) - version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" - if (world.byond_version < 511) - version_message += "\nThis server does not currently support client side fps. You can set now for when it does." - var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num - if (!isnull(desiredfps)) - clientfps = desiredfps - if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) - user.client.vars["fps"] = clientfps - if("ui") - var/pickedui = input(user, "Choose your UI style.", "Character Preference") as null|anything in list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork") - if(pickedui) - UI_style = pickedui - - //citadel code - if("cock_color") - var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null - if(new_cockcolor) - var/temp_hsv = RGBtoHSV(new_cockcolor) - if(new_cockcolor == "#000000") - features["cock_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["cock_color"] = sanitize_hexcolor(new_cockcolor) - else - user << "Invalid color. Your color is not bright enough." - - if("cock_length") - var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null - if(new_length) - features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) - - if("cock_shape") - var/new_shape - new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list - if(new_shape) - features["cock_shape"] = new_shape - - if("balls_color") - var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null - if(new_ballscolor) - var/temp_hsv = RGBtoHSV(new_ballscolor) - if(new_ballscolor == "#000000") - features["balls_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["balls_color"] = sanitize_hexcolor(new_ballscolor) - else - user << "Invalid color. Your color is not bright enough." - - if("egg_size") - var/new_size - var/list/egg_sizes = list(1,2,3) - new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes - if(new_size) - features["eggsack_egg_size"] = new_size - - if("egg_color") - var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null - if(new_egg_color) - var/temp_hsv = RGBtoHSV(new_egg_color) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color) - else - user << "Invalid color. Your color is not bright enough." - if("breasts_size") - var/new_size - new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list - if(new_size) - features["breasts_size"] = new_size - - if("breasts_shape") - var/new_shape - new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list - if(new_shape) - features["breasts_shape"] = new_shape - - if("breasts_color") - var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null - if(new_breasts_color) - var/temp_hsv = RGBtoHSV(new_breasts_color) - if(new_breasts_color == "#000000") - features["breasts_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["breasts_color"] = sanitize_hexcolor(new_breasts_color) - else - user << "Invalid color. Your color is not bright enough." - if("vag_shape") - var/new_shape - new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list - if(new_shape) - features["vag_shape"] = new_shape - if("vag_color") - var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null - if(new_vagcolor) - var/temp_hsv = RGBtoHSV(new_vagcolor) - if(new_vagcolor == "#000000") - features["vag_color"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) - features["vag_color"] = sanitize_hexcolor(new_vagcolor) - else - user << "Invalid color. Your color is not bright enough." - - else - switch(href_list["preference"]) - - //citadel code - if("genital_colour") - switch(features["genitals_use_skintone"]) - if(TRUE) - features["genitals_use_skintone"] = FALSE - if(FALSE) - features["genitals_use_skintone"] = TRUE - else - features["genitals_use_skintone"] = FALSE - if("arousable") - switch(arousable) - if(TRUE) - arousable = FALSE - if(FALSE) - arousable = TRUE - else//failsafe - arousable = FALSE - if("has_cock") - switch(features["has_cock"]) - if(TRUE) - features["has_cock"] = FALSE - if(FALSE) - features["has_cock"] = TRUE - features["has_ovi"] = FALSE - features["has_eggsack"] = FALSE - else - features["has_cock"] = FALSE - features["has_ovi"] = FALSE - if("has_balls") - switch(features["has_balls"]) - if(TRUE) - features["has_balls"] = FALSE - if(FALSE) - features["has_balls"] = TRUE - features["has_eggsack"] = FALSE - else - features["has_balls"] = FALSE - features["has_eggsack"] = FALSE - - if("has_ovi") - switch(features["has_ovi"]) - if(TRUE) - features["has_ovi"] = FALSE - if(FALSE) - features["has_ovi"] = TRUE - features["has_cock"] = FALSE - features["has_balls"] = FALSE - else - features["has_ovi"] = FALSE - features["has_cock"] = FALSE - - if("has_eggsack") - switch(features["has_eggsack"]) - if(TRUE) - features["has_eggsack"] = FALSE - if(FALSE) - features["has_eggsack"] = TRUE - features["has_balls"] = FALSE - else - features["has_eggsack"] = FALSE - features["has_balls"] = FALSE - - if("balls_internal") - switch(features["balls_internal"]) - if(TRUE) - features["balls_internal"] = FALSE - if(FALSE) - features["balls_internal"] = TRUE - features["eggsack_internal"] = FALSE - else - features["balls_internal"] = FALSE - features["eggsack_internal"] = FALSE - - if("eggsack_internal") - switch(features["eggsack_internal"]) - if(TRUE) - features["eggsack_internal"] = FALSE - if(FALSE) - features["eggsack_internal"] = TRUE - features["balls_internal"] = FALSE - else - features["eggsack_internal"] = FALSE - features["balls_internal"] = FALSE - - if("has_breasts") - switch(features["has_breasts"]) - if(TRUE) - features["has_breasts"] = FALSE - if(FALSE) - features["has_breasts"] = TRUE - else - features["has_breasts"] = FALSE - if("has_vag") - switch(features["has_vag"]) - if(TRUE) - features["has_vag"] = FALSE - if(FALSE) - features["has_vag"] = TRUE - else - features["has_vag"] = FALSE - if("has_womb") - switch(features["has_womb"]) - if(TRUE) - features["has_womb"] = FALSE - if(FALSE) - features["has_womb"] = TRUE - else - features["has_womb"] = FALSE - if("exhibitionist") - switch(features["exhibitionist"]) - if(TRUE) - features["exhibitionist"] = FALSE - if(FALSE) - features["exhibitionist"] = TRUE - else - features["exhibitionist"] = FALSE - - if("publicity") - if(unlock_content) - toggles ^= MEMBER_PUBLIC - if("gender") - if(gender == MALE) - gender = FEMALE - else - gender = MALE - underwear = "Nude" - undershirt = "Nude" - socks = "Nude" - facial_hair_style = "Shaved" - hair_style = "Bald" - - if("hotkeys") - hotkeys = !hotkeys - if("action_buttons") - buttons_locked = !buttons_locked - if("tgui_fancy") - tgui_fancy = !tgui_fancy - if("tgui_lock") - tgui_lock = !tgui_lock - if("winflash") - windowflashing = !windowflashing - if("hear_adminhelps") - toggles ^= SOUND_ADMINHELP - if("announce_login") - toggles ^= ANNOUNCE_LOGIN - - if("be_special") - var/be_special_type = href_list["be_special_type"] - if(be_special_type in be_special) - be_special -= be_special_type - else - be_special += be_special_type - - if("name") - be_random_name = !be_random_name - - if("all") - be_random_body = !be_random_body - - if("hear_midis") - toggles ^= SOUND_MIDI - - if("lobby_music") - toggles ^= SOUND_LOBBY - if((toggles & SOUND_LOBBY) && user.client) - user.client.playtitlemusic() - else - user.stop_sound_channel(CHANNEL_LOBBYMUSIC) - - if("ghost_ears") - chat_toggles ^= CHAT_GHOSTEARS - - if("ghost_sight") - chat_toggles ^= CHAT_GHOSTSIGHT - - if("ghost_whispers") - chat_toggles ^= CHAT_GHOSTWHISPER - - if("ghost_radio") - chat_toggles ^= CHAT_GHOSTRADIO - - if("ghost_pda") - chat_toggles ^= CHAT_GHOSTPDA - - if("pull_requests") - chat_toggles ^= CHAT_PULLR - - if("allow_midround_antag") - toggles ^= MIDROUND_ANTAG - - if("parallaxup") - parallax = Wrap(parallax + 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) - if (parent && parent.mob && parent.mob.hud_used) - parent.mob.hud_used.update_parallax_pref(parent.mob) - - if("parallaxdown") - parallax = Wrap(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) - if (parent && parent.mob && parent.mob.hud_used) - parent.mob.hud_used.update_parallax_pref(parent.mob) - - if("save") - save_preferences() - save_character() - - if("load") - load_preferences() - load_character() - attempt_vr(parent.prefs_vr,"load_vore","") - - if("changeslot") - attempt_vr(parent.prefs_vr,"load_vore","") - if(!load_character(text2num(href_list["num"]))) - random_character() - real_name = random_unique_name(gender) - save_character() - - if("tab") - if (href_list["tab"]) - current_tab = text2num(href_list["tab"]) - - ShowChoices(user) - return 1 - -/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) - if(be_random_name) - real_name = pref_species.random_name(gender) - - if(be_random_body) - random_character(gender) - - if(config.humans_need_surnames) - var/firstspace = findtext(real_name, " ") - var/name_length = length(real_name) - if(!firstspace) //we need a surname - real_name += " [pick(GLOB.last_names)]" - else if(firstspace == name_length) - real_name += "[pick(GLOB.last_names)]" - - character.real_name = real_name - character.name = character.real_name - - character.gender = gender - character.age = age - - character.eye_color = eye_color - var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes) - if(organ_eyes) - if(!initial(organ_eyes.eye_color)) - organ_eyes.eye_color = eye_color - organ_eyes.old_eye_color = eye_color - character.hair_color = hair_color - character.facial_hair_color = facial_hair_color - - character.skin_tone = skin_tone - character.hair_style = hair_style - character.facial_hair_style = facial_hair_style - character.underwear = underwear - character.undershirt = undershirt - character.socks = socks - - character.backbag = backbag - - character.dna.features = features.Copy() //Flavor text is now a DNA feature - character.dna.real_name = character.real_name - var/datum/species/chosen_species - if(pref_species != /datum/species/human && config.mutant_races) - chosen_species = pref_species.type - else - chosen_species = /datum/species/human - character.set_species(chosen_species, icon_update=0) - - //citadel code - character.give_genitals() - character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially - character.canbearoused = arousable - - if(icon_updates) - character.update_body() - character.update_hair() - character.update_body_parts() - character.update_genitals() + if(!job.player_old_enough(user.client)) + var/available_in_days = job.available_in_days(user.client) + HTML += "[rank]
\[IN [(available_in_days)] DAYS\]
\[MUTANT\]
\[NON-HUMAN\]
" + + var/prefLevelLabel = "ERROR" + var/prefLevelColor = "pink" + var/prefUpperLevel = -1 // level to assign on left click + var/prefLowerLevel = -1 // level to assign on right click + + if(GetJobDepartment(job, 1) & job.flag) + prefLevelLabel = "High" + prefLevelColor = "slateblue" + prefUpperLevel = 4 + prefLowerLevel = 2 + else if(GetJobDepartment(job, 2) & job.flag) + prefLevelLabel = "Medium" + prefLevelColor = "green" + prefUpperLevel = 1 + prefLowerLevel = 3 + else if(GetJobDepartment(job, 3) & job.flag) + prefLevelLabel = "Low" + prefLevelColor = "orange" + prefUpperLevel = 2 + prefLowerLevel = 4 + else + prefLevelLabel = "NEVER" + prefLevelColor = "red" + prefUpperLevel = 3 + prefLowerLevel = 1 + + + HTML += "" + + if(rank == "Assistant")//Assistant is special + if(job_civilian_low & ASSISTANT) + HTML += "Yes" + else + HTML += "No" + HTML += "
  
" + HTML += "" + + var/message = "Be an Assistant if preferences unavailable" + if(joblessrole == BERANDOMJOB) + message = "Get random job if preferences unavailable" + else if(joblessrole == RETURNTOLOBBY) + message = "Return to lobby if preferences unavailable" + HTML += "
" + HTML += "
Reset Preferences
" + + user << browse(null, "window=preferences") + var/datum/browser/popup = new(user, "mob_occupation", "
Occupation Preferences
", width, height) + popup.set_window_options("can_close=0") + popup.set_content(HTML) + popup.open(0) + return + +/datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) + if (!job) + return 0 + + if (level == 1) // to high + // remove any other job(s) set to high + job_civilian_med |= job_civilian_high + job_engsec_med |= job_engsec_high + job_medsci_med |= job_medsci_high + job_civilian_high = 0 + job_engsec_high = 0 + job_medsci_high = 0 + + if (job.department_flag == CIVILIAN) + job_civilian_low &= ~job.flag + job_civilian_med &= ~job.flag + job_civilian_high &= ~job.flag + + switch(level) + if (1) + job_civilian_high |= job.flag + if (2) + job_civilian_med |= job.flag + if (3) + job_civilian_low |= job.flag + + return 1 + else if (job.department_flag == ENGSEC) + job_engsec_low &= ~job.flag + job_engsec_med &= ~job.flag + job_engsec_high &= ~job.flag + + switch(level) + if (1) + job_engsec_high |= job.flag + if (2) + job_engsec_med |= job.flag + if (3) + job_engsec_low |= job.flag + + return 1 + else if (job.department_flag == MEDSCI) + job_medsci_low &= ~job.flag + job_medsci_med &= ~job.flag + job_medsci_high &= ~job.flag + + switch(level) + if (1) + job_medsci_high |= job.flag + if (2) + job_medsci_med |= job.flag + if (3) + job_medsci_low |= job.flag + + return 1 + + return 0 + +/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) + if(!SSjob || SSjob.occupations.len <= 0) + return + var/datum/job/job = SSjob.GetJob(role) + + if(!job) + user << browse(null, "window=mob_occupation") + ShowChoices(user) + return + + if (!isnum(desiredLvl)) + to_chat(user, "UpdateJobPreference - desired level was not a number. Please notify coders!") + ShowChoices(user) + return + + if(role == "Assistant") + if(job_civilian_low & job.flag) + job_civilian_low &= ~job.flag + else + job_civilian_low |= job.flag + SetChoices(user) + return 1 + + SetJobPreferenceLevel(job, desiredLvl) + SetChoices(user) + + return 1 + + +/datum/preferences/proc/ResetJobs() + + job_civilian_high = 0 + job_civilian_med = 0 + job_civilian_low = 0 + + job_medsci_high = 0 + job_medsci_med = 0 + job_medsci_low = 0 + + job_engsec_high = 0 + job_engsec_med = 0 + job_engsec_low = 0 + + +/datum/preferences/proc/GetJobDepartment(datum/job/job, level) + if(!job || !level) + return 0 + switch(job.department_flag) + if(CIVILIAN) + switch(level) + if(1) + return job_civilian_high + if(2) + return job_civilian_med + if(3) + return job_civilian_low + if(MEDSCI) + switch(level) + if(1) + return job_medsci_high + if(2) + return job_medsci_med + if(3) + return job_medsci_low + if(ENGSEC) + switch(level) + if(1) + return job_engsec_high + if(2) + return job_engsec_med + if(3) + return job_engsec_low + return 0 + +/datum/preferences/proc/process_link(mob/user, list/href_list) + if(href_list["jobbancheck"]) + var/job = sanitizeSQL(href_list["jobbancheck"]) + var/sql_ckey = sanitizeSQL(user.ckey) + var/datum/DBQuery/query_get_jobban = SSdbcore.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned) AND job = '[job]'") + if(!query_get_jobban.warn_execute()) + return + if(query_get_jobban.NextRow()) + var/reason = query_get_jobban.item[1] + var/bantime = query_get_jobban.item[2] + var/duration = query_get_jobban.item[3] + var/expiration_time = query_get_jobban.item[4] + var/a_ckey = query_get_jobban.item[5] + var/text + text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
[reason]
This ban was applied by [a_ckey] on [bantime]" + if(text2num(duration) > 0) + text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" + text += ".
" + to_chat(user, text) + return + + if(href_list["preference"] == "job") + switch(href_list["task"]) + if("close") + user << browse(null, "window=mob_occupation") + ShowChoices(user) + if("reset") + ResetJobs() + SetChoices(user) + if("random") + switch(joblessrole) + if(RETURNTOLOBBY) + if(jobban_isbanned(user, "Assistant")) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(BEASSISTANT) + joblessrole = BERANDOMJOB + if(BERANDOMJOB) + joblessrole = RETURNTOLOBBY + SetChoices(user) + if("setJobLevel") + UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) + else + SetChoices(user) + return 1 + + switch(href_list["task"]) + if("random") + switch(href_list["preference"]) + if("name") + real_name = pref_species.random_name(gender,1) + if("age") + age = rand(AGE_MIN, AGE_MAX) + if("hair") + hair_color = random_short_color() + if("hair_style") + hair_style = random_hair_style(gender) + if("facial") + facial_hair_color = random_short_color() + if("facial_hair_style") + facial_hair_style = random_facial_hair_style(gender) + if("underwear") + underwear = random_underwear(gender) + if("undershirt") + undershirt = random_undershirt(gender) + if("socks") + socks = random_socks() + if("eyes") + eye_color = random_eye_color() + if("s_tone") + skin_tone = random_skin_tone() + if("bag") + backbag = pick(GLOB.backbaglist) + if("all") + random_character() + + if("input") + switch(href_list["preference"]) + if("ghostform") + if(unlock_content) + var/new_form = input(user, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in GLOB.ghost_forms + if(new_form) + ghost_form = new_form + if("ghostorbit") + if(unlock_content) + var/new_orbit = input(user, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND", null) as null|anything in GLOB.ghost_orbits + if(new_orbit) + ghost_orbit = new_orbit + + if("ghostaccs") + var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,GHOST_ACCS_FULL_NAME, GHOST_ACCS_DIR_NAME, GHOST_ACCS_NONE_NAME) + switch(new_ghost_accs) + if(GHOST_ACCS_FULL_NAME) + ghost_accs = GHOST_ACCS_FULL + if(GHOST_ACCS_DIR_NAME) + ghost_accs = GHOST_ACCS_DIR + if(GHOST_ACCS_NONE_NAME) + ghost_accs = GHOST_ACCS_NONE + + if("ghostothers") + var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,GHOST_OTHERS_THEIR_SETTING_NAME, GHOST_OTHERS_DEFAULT_SPRITE_NAME, GHOST_OTHERS_SIMPLE_NAME) + switch(new_ghost_others) + if(GHOST_OTHERS_THEIR_SETTING_NAME) + ghost_others = GHOST_OTHERS_THEIR_SETTING + if(GHOST_OTHERS_DEFAULT_SPRITE_NAME) + ghost_others = GHOST_OTHERS_DEFAULT_SPRITE + if(GHOST_OTHERS_SIMPLE_NAME) + ghost_others = GHOST_OTHERS_SIMPLE + + if("name") + var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) + if(new_name) + real_name = new_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("age") + var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null + if(new_age) + age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) + + if("flavor_text") + var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"])) as message + if(msg != null) + msg = copytext(msg, 1, MAX_MESSAGE_LEN) + msg = html_encode(msg) + features["flavor_text"] = msg + + if("metadata") + var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null + if(new_metadata) + metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) + + if("hair") + var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color + if(new_hair) + hair_color = sanitize_hexcolor(new_hair) + + + if("hair_style") + var/new_hair_style + if(gender == MALE) + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_male_list + else + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_female_list + if(new_hair_style) + hair_style = new_hair_style + + if("next_hair_style") + if (gender == MALE) + hair_style = next_list_item(hair_style, GLOB.hair_styles_male_list) + else + hair_style = next_list_item(hair_style, GLOB.hair_styles_female_list) + + if("previous_hair_style") + if (gender == MALE) + hair_style = previous_list_item(hair_style, GLOB.hair_styles_male_list) + else + hair_style = previous_list_item(hair_style, GLOB.hair_styles_female_list) + + if("facial") + var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as null|color + if(new_facial) + facial_hair_color = sanitize_hexcolor(new_facial) + + if("facial_hair_style") + var/new_facial_hair_style + if(gender == MALE) + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list + else + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list + if(new_facial_hair_style) + facial_hair_style = new_facial_hair_style + + if("next_facehair_style") + if (gender == MALE) + facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) + else + facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) + + if("previous_facehair_style") + if (gender == MALE) + facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list) + else + facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list) + + if("underwear") + var/new_underwear + if(gender == MALE) + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m + else + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f + if(new_underwear) + underwear = new_underwear + + if("undershirt") + var/new_undershirt + if(gender == MALE) + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m + else + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f + if(new_undershirt) + undershirt = new_undershirt + + if("socks") + var/new_socks + new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list + if(new_socks) + socks = new_socks + + if("eyes") + var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null + if(new_eyes) + eye_color = sanitize_hexcolor(new_eyes) + + if("species") + + var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_species + + if(result) + var/newtype = GLOB.roundstart_species[result] + pref_species = new newtype() + //Now that we changed our species, we must verify that the mutant colour is still allowed. + var/temp_hsv = RGBtoHSV(features["mcolor"]) + if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor"] = pref_species.default_color + if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor2"] = pref_species.default_color + if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) + features["mcolor3"] = pref_species.default_color + + if("mutant_color") + var/new_mutantcolor = input(user, "Choose your character's primary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("mutant_color2") + var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor2"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("mutant_color3") + var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor3"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor3"] = sanitize_hexcolor(new_mutantcolor) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + + if("tail_lizard") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard + if(new_tail) + features["tail_lizard"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + + if("tail_human") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human + if(new_tail) + features["tail_human"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + if("mam_tail") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.mam_tails_list + if(new_tail) + features["mam_tail"] = new_tail + if(new_tail != "None") + features["taur"] = "None" + + if("taur") + var/new_taur + new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in GLOB.taur_list + if(new_taur) + features["taur"] = new_taur + if(new_taur != "None") + features["mam_tail"] = "None" + features["xenotail"] = "None" + +/* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. + if("mam_snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.mam_snouts_list + if(new_snout) + features["snout"] = new_snout +*/ + + if("snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list + if(new_snout) + features["snout"] = new_snout + + if("horns") + var/new_horns + new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list + if(new_horns) + features["horns"] = new_horns + + if("mam_ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.mam_ears_list + if(new_ears) + features["mam_ears"] = new_ears + + if("ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list + if(new_ears) + features["ears"] = new_ears + + if("wings") + var/new_wings + new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list + if(new_wings) + features["wings"] = new_wings + + if("frills") + var/new_frills + new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list + if(new_frills) + features["frills"] = new_frills + + if("spines") + var/new_spines + new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in GLOB.spines_list + if(new_spines) + features["spines"] = new_spines + + if("body_markings") + var/new_body_markings + new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list + if(new_body_markings) + features["body_markings"] = new_body_markings + + if("mam_body_markings") + var/new_mam_body_markings + new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.mam_body_markings_list + if(new_mam_body_markings) + features["mam_body_markings"] = new_mam_body_markings + + //Xeno Bodyparts + if("xenohead")//Head or caste type + var/new_head + new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list + if(new_head) + features["xenohead"] = new_head + + if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future. + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list + if(new_tail) + features["xenotail"] = new_tail + + if("xenodorsal") + var/new_dors + new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list + if(new_dors) + features["xenodorsal"] = new_dors + + if("legs") + var/new_legs + new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list + if(new_legs) + features["legs"] = new_legs + + if("s_tone") + var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones + if(new_s_tone) + skin_tone = new_s_tone + + if("ooccolor") + var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null + if(new_ooccolor) + ooccolor = sanitize_ooccolor(new_ooccolor) + + if("bag") + var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist + if(new_backbag) + backbag = new_backbag + + if("uplink_loc") + var/new_loc = input(user, "Choose your character's traitor uplink spawn location:", "Character Preference") as null|anything in GLOB.uplink_spawn_loc_list + if(new_loc) + uplink_spawn_loc = new_loc + + if("clown_name") + var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null ) + if(new_clown_name) + custom_names["clown"] = new_clown_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("mime_name") + var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null ) + if(new_mime_name) + custom_names["mime"] = new_mime_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("ai_name") + var/new_ai_name = reject_bad_name( input(user, "Choose your character's AI name:", "Character Preference") as text|null, 1 ) + if(new_ai_name) + custom_names["ai"] = new_ai_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") + + if("cyborg_name") + var/new_cyborg_name = reject_bad_name( input(user, "Choose your character's cyborg name:", "Character Preference") as text|null, 1 ) + if(new_cyborg_name) + custom_names["cyborg"] = new_cyborg_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and .") + + if("religion_name") + var/new_religion_name = reject_bad_name( input(user, "Choose your character's religion:", "Character Preference") as text|null ) + if(new_religion_name) + custom_names["religion"] = new_religion_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("deity_name") + var/new_deity_name = reject_bad_name( input(user, "Choose your character's deity:", "Character Preference") as text|null ) + if(new_deity_name) + custom_names["deity"] = new_deity_name + else + to_chat(user, "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .") + + if("sec_dept") + var/department = input(user, "Choose your prefered security department:", "Security Departments") as null|anything in GLOB.security_depts_prefs + if(department) + prefered_security_department = department + + if ("preferred_map") + var/maplist = list() + var/default = "Default" + if (config.defaultmap) + default += " ([config.defaultmap.map_name])" + for (var/M in config.maplist) + var/datum/map_config/VM = config.maplist[M] + var/friendlyname = "[VM.map_name] " + if (VM.voteweight <= 0) + friendlyname += " (disabled)" + maplist[friendlyname] = VM.map_name + maplist[default] = null + var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist + if (pickedmap) + preferred_map = maplist[pickedmap] + + if ("clientfps") + var/version_message + if (user.client && user.client.byond_version < 511) + version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" + if (world.byond_version < 511) + version_message += "\nThis server does not currently support client side fps. You can set now for when it does." + var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num + if (!isnull(desiredfps)) + clientfps = desiredfps + if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) + user.client.vars["fps"] = clientfps + if("ui") + var/pickedui = input(user, "Choose your UI style.", "Character Preference") as null|anything in list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative", "Clockwork") + if(pickedui) + UI_style = pickedui + + //citadel code + if("cock_color") + var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null + if(new_cockcolor) + var/temp_hsv = RGBtoHSV(new_cockcolor) + if(new_cockcolor == "#000000") + features["cock_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["cock_color"] = sanitize_hexcolor(new_cockcolor) + else + user << "Invalid color. Your color is not bright enough." + + if("cock_length") + var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null + if(new_length) + features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN) + + if("cock_shape") + var/new_shape + new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list + if(new_shape) + features["cock_shape"] = new_shape + + if("balls_color") + var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null + if(new_ballscolor) + var/temp_hsv = RGBtoHSV(new_ballscolor) + if(new_ballscolor == "#000000") + features["balls_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["balls_color"] = sanitize_hexcolor(new_ballscolor) + else + user << "Invalid color. Your color is not bright enough." + + if("egg_size") + var/new_size + var/list/egg_sizes = list(1,2,3) + new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes + if(new_size) + features["eggsack_egg_size"] = new_size + + if("egg_color") + var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null + if(new_egg_color) + var/temp_hsv = RGBtoHSV(new_egg_color) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color) + else + user << "Invalid color. Your color is not bright enough." + if("breasts_size") + var/new_size + new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list + if(new_size) + features["breasts_size"] = new_size + + if("breasts_shape") + var/new_shape + new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list + if(new_shape) + features["breasts_shape"] = new_shape + + if("breasts_color") + var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null + if(new_breasts_color) + var/temp_hsv = RGBtoHSV(new_breasts_color) + if(new_breasts_color == "#000000") + features["breasts_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["breasts_color"] = sanitize_hexcolor(new_breasts_color) + else + user << "Invalid color. Your color is not bright enough." + if("vag_shape") + var/new_shape + new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list + if(new_shape) + features["vag_shape"] = new_shape + if("vag_color") + var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null + if(new_vagcolor) + var/temp_hsv = RGBtoHSV(new_vagcolor) + if(new_vagcolor == "#000000") + features["vag_color"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) + features["vag_color"] = sanitize_hexcolor(new_vagcolor) + else + user << "Invalid color. Your color is not bright enough." + + else + switch(href_list["preference"]) + + //citadel code + if("genital_colour") + switch(features["genitals_use_skintone"]) + if(TRUE) + features["genitals_use_skintone"] = FALSE + if(FALSE) + features["genitals_use_skintone"] = TRUE + else + features["genitals_use_skintone"] = FALSE + if("arousable") + switch(arousable) + if(TRUE) + arousable = FALSE + if(FALSE) + arousable = TRUE + else//failsafe + arousable = FALSE + if("has_cock") + switch(features["has_cock"]) + if(TRUE) + features["has_cock"] = FALSE + if(FALSE) + features["has_cock"] = TRUE + features["has_ovi"] = FALSE + features["has_eggsack"] = FALSE + else + features["has_cock"] = FALSE + features["has_ovi"] = FALSE + if("has_balls") + switch(features["has_balls"]) + if(TRUE) + features["has_balls"] = FALSE + if(FALSE) + features["has_balls"] = TRUE + features["has_eggsack"] = FALSE + else + features["has_balls"] = FALSE + features["has_eggsack"] = FALSE + + if("has_ovi") + switch(features["has_ovi"]) + if(TRUE) + features["has_ovi"] = FALSE + if(FALSE) + features["has_ovi"] = TRUE + features["has_cock"] = FALSE + features["has_balls"] = FALSE + else + features["has_ovi"] = FALSE + features["has_cock"] = FALSE + + if("has_eggsack") + switch(features["has_eggsack"]) + if(TRUE) + features["has_eggsack"] = FALSE + if(FALSE) + features["has_eggsack"] = TRUE + features["has_balls"] = FALSE + else + features["has_eggsack"] = FALSE + features["has_balls"] = FALSE + + if("balls_internal") + switch(features["balls_internal"]) + if(TRUE) + features["balls_internal"] = FALSE + if(FALSE) + features["balls_internal"] = TRUE + features["eggsack_internal"] = FALSE + else + features["balls_internal"] = FALSE + features["eggsack_internal"] = FALSE + + if("eggsack_internal") + switch(features["eggsack_internal"]) + if(TRUE) + features["eggsack_internal"] = FALSE + if(FALSE) + features["eggsack_internal"] = TRUE + features["balls_internal"] = FALSE + else + features["eggsack_internal"] = FALSE + features["balls_internal"] = FALSE + + if("has_breasts") + switch(features["has_breasts"]) + if(TRUE) + features["has_breasts"] = FALSE + if(FALSE) + features["has_breasts"] = TRUE + else + features["has_breasts"] = FALSE + if("has_vag") + switch(features["has_vag"]) + if(TRUE) + features["has_vag"] = FALSE + if(FALSE) + features["has_vag"] = TRUE + else + features["has_vag"] = FALSE + if("has_womb") + switch(features["has_womb"]) + if(TRUE) + features["has_womb"] = FALSE + if(FALSE) + features["has_womb"] = TRUE + else + features["has_womb"] = FALSE + if("exhibitionist") + switch(features["exhibitionist"]) + if(TRUE) + features["exhibitionist"] = FALSE + if(FALSE) + features["exhibitionist"] = TRUE + else + features["exhibitionist"] = FALSE + + if("publicity") + if(unlock_content) + toggles ^= MEMBER_PUBLIC + if("gender") + if(gender == MALE) + gender = FEMALE + else + gender = MALE + underwear = "Nude" + undershirt = "Nude" + socks = "Nude" + facial_hair_style = "Shaved" + hair_style = "Bald" + + if("hotkeys") + hotkeys = !hotkeys + if("action_buttons") + buttons_locked = !buttons_locked + if("tgui_fancy") + tgui_fancy = !tgui_fancy + if("tgui_lock") + tgui_lock = !tgui_lock + if("winflash") + windowflashing = !windowflashing + if("hear_adminhelps") + toggles ^= SOUND_ADMINHELP + if("announce_login") + toggles ^= ANNOUNCE_LOGIN + + if("be_special") + var/be_special_type = href_list["be_special_type"] + if(be_special_type in be_special) + be_special -= be_special_type + else + be_special += be_special_type + + if("name") + be_random_name = !be_random_name + + if("all") + be_random_body = !be_random_body + + if("hear_midis") + toggles ^= SOUND_MIDI + + if("lobby_music") + toggles ^= SOUND_LOBBY + if((toggles & SOUND_LOBBY) && user.client) + user.client.playtitlemusic() + else + user.stop_sound_channel(CHANNEL_LOBBYMUSIC) + + if("ghost_ears") + chat_toggles ^= CHAT_GHOSTEARS + + if("ghost_sight") + chat_toggles ^= CHAT_GHOSTSIGHT + + if("ghost_whispers") + chat_toggles ^= CHAT_GHOSTWHISPER + + if("ghost_radio") + chat_toggles ^= CHAT_GHOSTRADIO + + if("ghost_pda") + chat_toggles ^= CHAT_GHOSTPDA + + if("pull_requests") + chat_toggles ^= CHAT_PULLR + + if("allow_midround_antag") + toggles ^= MIDROUND_ANTAG + + if("parallaxup") + parallax = Wrap(parallax + 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref(parent.mob) + + if("parallaxdown") + parallax = Wrap(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1) + if (parent && parent.mob && parent.mob.hud_used) + parent.mob.hud_used.update_parallax_pref(parent.mob) + + if("save") + save_preferences() + save_character() + + if("load") + load_preferences() + load_character() + attempt_vr(parent.prefs_vr,"load_vore","") + + if("changeslot") + attempt_vr(parent.prefs_vr,"load_vore","") + if(!load_character(text2num(href_list["num"]))) + random_character() + real_name = random_unique_name(gender) + save_character() + + if("tab") + if (href_list["tab"]) + current_tab = text2num(href_list["tab"]) + + ShowChoices(user) + return 1 + +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) + if(be_random_name) + real_name = pref_species.random_name(gender) + + if(be_random_body) + random_character(gender) + + if(config.humans_need_surnames) + var/firstspace = findtext(real_name, " ") + var/name_length = length(real_name) + if(!firstspace) //we need a surname + real_name += " [pick(GLOB.last_names)]" + else if(firstspace == name_length) + real_name += "[pick(GLOB.last_names)]" + + character.real_name = real_name + character.name = character.real_name + + character.gender = gender + character.age = age + + character.eye_color = eye_color + var/obj/item/organ/eyes/organ_eyes = character.getorgan(/obj/item/organ/eyes) + if(organ_eyes) + if(!initial(organ_eyes.eye_color)) + organ_eyes.eye_color = eye_color + organ_eyes.old_eye_color = eye_color + character.hair_color = hair_color + character.facial_hair_color = facial_hair_color + + character.skin_tone = skin_tone + character.hair_style = hair_style + character.facial_hair_style = facial_hair_style + character.underwear = underwear + character.undershirt = undershirt + character.socks = socks + + character.backbag = backbag + + character.dna.features = features.Copy() //Flavor text is now a DNA feature + character.dna.real_name = character.real_name + var/datum/species/chosen_species + if(pref_species != /datum/species/human && config.mutant_races) + chosen_species = pref_species.type + else + chosen_species = /datum/species/human + character.set_species(chosen_species, icon_update=0) + + //citadel code + character.give_genitals() + character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially + character.canbearoused = arousable + + if(icon_updates) + character.update_body() + character.update_hair() + character.update_body_parts() + character.update_genitals() From fed956efec1b096388b387dfa28a4663541de34e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 06:56:35 -0500 Subject: [PATCH 118/181] Update job_exp.dm --- code/modules/jobs/job_exp.dm | 147 +++++++++++++++++++++++++++-------- 1 file changed, 116 insertions(+), 31 deletions(-) diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm index e65de15279..fc61fcf40b 100644 --- a/code/modules/jobs/job_exp.dm +++ b/code/modules/jobs/job_exp.dm @@ -132,24 +132,61 @@ GLOBAL_PROTECT(exp_to_update) if(L.is_afk()) continue addtimer(CALLBACK(L,/client/proc/update_exp_list,mins,ann),10) - CHECK_TICK -/proc/update_exp_db() +/datum/controller/subsystem/blackbox/proc/update_exp_db() SSdbcore.MassInsert(format_table_name("role_time"),GLOB.exp_to_update,TRUE) LAZYCLEARLIST(GLOB.exp_to_update) -//Manual incrementing/updating -/* -/client/proc/update_exp_client(minutes, announce_changes = FALSE) - if(!src ||!ckey || !config.use_exp_tracking) - return +//resets a client's exp to what was in the db. +/client/proc/set_exp_from_db() + if(!config.use_exp_tracking) + return -1 + if(!SSdbcore.Connect()) + return -1 + var/datum/DBQuery/exp_read = SSdbcore.NewQuery("SELECT job, minutes FROM [format_table_name("role_time")] WHERE ckey = '[sanitizeSQL(ckey)]'") + if(!exp_read.Execute()) + return -1 + var/list/play_records = list() + while(exp_read.NextRow()) + play_records[exp_read.item[1]] = text2num(exp_read.item[2]) + + for(var/rtype in SSjob.name_occupations) + if(!play_records[rtype]) + play_records[rtype] = 0 + for(var/rtype in GLOB.exp_specialmap) + if(!play_records[rtype]) + play_records[rtype] = 0 + + prefs.exp = play_records + + +//updates player db flags +/client/proc/update_flag_db(newflag, state = FALSE) + + if(!SSdbcore.Connect()) + return -1 + + if(!set_db_player_flags()) + return -1 + + if((prefs.db_flags & newflag) && !state) + prefs.db_flags &= ~newflag + else + prefs.db_flags |= newflag + + var/datum/DBQuery/flag_update = SSdbcore.NewQuery("UPDATE [format_table_name("player")] SET flags = '[prefs.db_flags]' WHERE ckey='[sanitizeSQL(ckey)]'") + + if(!flag_update.Execute()) + return -1 + + +/client/proc/update_exp_list(minutes, announce_changes = FALSE) + if(!config.use_exp_tracking) + return -1 if(!SSdbcore.Connect()) return -1 var/datum/DBQuery/exp_read = SSdbcore.NewQuery("SELECT job, minutes FROM [format_table_name("role_time")] WHERE ckey = '[sanitizeSQL(ckey)]'") if(!exp_read.Execute()) - var/err = exp_read.ErrorMsg() - log_sql("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") - message_admins("SQL ERROR during exp_update_client read. Error : \[[err]\]\n") return -1 var/list/play_records = list() while(exp_read.NextRow()) @@ -162,33 +199,81 @@ GLOBAL_PROTECT(exp_to_update) if(!play_records[rtype]) play_records[rtype] = 0 var/list/old_records = play_records.Copy() - if(mob.stat != DEAD && mob.mind.assigned_role) - play_records[EXP_TYPE_LIVING] += minutes - if(announce_changes) - to_chat(mob,"You got: [minutes] Living EXP!") - for(var/job in SSjob.name_occupations) - if(mob.mind.assigned_role == job) - play_records[job] += minutes - if(announce_changes) - to_chat(mob,"You got: [minutes] [job] EXP!") - if(mob.mind.special_role && !mob.mind.var_edited) - play_records[EXP_TYPE_SPECIAL] += minutes + if(isliving(mob)) + if(mob.stat != DEAD) + var/rolefound = FALSE + play_records[EXP_TYPE_LIVING] += minutes if(announce_changes) - to_chat(mob,"You got: [minutes] [mob.mind.special_role] EXP!") + to_chat(src,"You got: [minutes] Living EXP!") + if(mob.mind.assigned_role) + for(var/job in SSjob.name_occupations) + if(mob.mind.assigned_role == job) + rolefound = TRUE + play_records[job] += minutes + if(announce_changes) + to_chat(src,"You got: [minutes] [job] EXP!") + if(!rolefound) + for(var/role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL]) + if(mob.mind.assigned_role == role) + rolefound = TRUE + play_records[role] += minutes + if(announce_changes) + to_chat(mob,"You got: [minutes] [role] EXP!") + if(mob.mind.special_role && !mob.mind.var_edited) + var/trackedrole = mob.mind.special_role + var/gangrole = lookforgangrole(mob.mind.special_role) + if(gangrole) + trackedrole = gangrole + play_records[trackedrole] += minutes + if(announce_changes) + to_chat(src,"You got: [minutes] [trackedrole] EXP!") + if(!rolefound) + play_records["Unknown"] += minutes + else + play_records[EXP_TYPE_GHOST] += minutes + if(announce_changes) + to_chat(src,"You got: [minutes] Ghost EXP!") else if(isobserver(mob)) play_records[EXP_TYPE_GHOST] += minutes if(announce_changes) - to_chat(mob,"You got: [minutes] Ghost EXP!") + to_chat(src,"You got: [minutes] Ghost EXP!") else if(minutes) //Let "refresh" checks go through return prefs.exp = play_records for(var/jtype in play_records) - var jobname = jtype - var time = play_records[jtype] - var/datum/DBQuery/update_query = SSdbcore.NewQuery("INSERT INTO [format_table_name("role_time")] (`ckey`, `job`, `minutes`) VALUES ('[sanitizeSQL(ckey)]', '[jobname]', '[time]') ON DUPLICATE KEY UPDATE time = '[time]'") - if(!update_query.Execute()) - var/err = update_queryd.ErrorMsg() - log_game("SQL ERROR during exp_update_client update. Error : \[[err]\]\n") - message_admins("SQL ERROR during exp_update_client update. Error : \[[err]\]\n") - return \ No newline at end of file + if(play_records[jtype] != old_records[jtype]) + LAZYINITLIST(GLOB.exp_to_update) + GLOB.exp_to_update.Add(list(list( + "job" = "'[sanitizeSQL(jtype)]'", + "ckey" = "'[sanitizeSQL(ckey)]'", + "minutes" = play_records[jtype]))) + addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/update_exp_db),20,TIMER_OVERRIDE|TIMER_UNIQUE) + + +//ALWAYS call this at beginning to any proc touching player flags, or your database admin will probably be mad +/client/proc/set_db_player_flags() + if(!SSdbcore.Connect()) + return FALSE + + var/datum/DBQuery/flags_read = SSdbcore.NewQuery("SELECT flags FROM [format_table_name("player")] WHERE ckey='[ckey]'") + + if(!flags_read.Execute()) + return FALSE + + if(flags_read.NextRow()) + prefs.db_flags = text2num(flags_read.item[1]) + else if(isnull(prefs.db_flags)) + prefs.db_flags = 0 //This PROBABLY won't happen, but better safe than sorry. + return TRUE + +//Since each gang is tracked as a different antag type, records need to be generalized or you get up to 57 different possible records +/proc/lookforgangrole(rolecheck) + if(findtext(rolecheck,"Gangster")) + return "Gangster" + else if(findtext(rolecheck,"Gang Boss")) + return "Gang Boss" + else if(findtext(rolecheck,"Gang Lieutenant")) + return "Gang Lieutenant" + else + return FALSE From 8f7368bc5763d74257783e90a7967814a584183e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 06:58:30 -0500 Subject: [PATCH 119/181] Update config.txt --- config/config.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/config/config.txt b/config/config.txt index 7497404a89..f9ffc880b3 100644 --- a/config/config.txt +++ b/config/config.txt @@ -32,6 +32,19 @@ BAN_LEGACY_SYSTEM ## Uncomment this to have the job system use the player's account creation date, rather than the when they first joined the server for job timers. #USE_ACCOUNT_AGE_FOR_JOBS +## Unhash this to track player playtime in the database. Requires database to be enabled. +#USE_EXP_TRACKING +## Unhash this to enable playtime requirements for head jobs. +#USE_EXP_RESTRICTIONS_HEADS +## Unhash this to override head jobs' playtime requirements with this number of hours. +#USE_EXP_RESTRICTIONS_HEADS_HOURS 15 +## Unhash this to change head jobs' playtime requirements so that they're based on department playtime, rather than crew playtime. +#USE_EXP_RESTRICTIONS_HEADS_DEPARTMENT +## Unhash this to enable playtime requirements for certain non-head jobs, like Engineer and Scientist. +#USE_EXP_RESTRICTIONS_OTHER +## Allows admins to bypass job playtime requirements. +#USE_EXP_RESTRICTIONS_ADMIN_BYPASS + ## log OOC channel LOG_OOC @@ -331,4 +344,4 @@ MINUTE_TOPIC_LIMIT 100 #ERROR_MSG_DELAY 50 ## Send a message to IRC when starting a new game -#IRC_ANNOUNCE_NEW_GAME \ No newline at end of file +#IRC_ANNOUNCE_NEW_GAME From 2161084ba1449a05f47108ef820bd986bc80c840 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 06:59:47 -0500 Subject: [PATCH 120/181] Update database_changelog.txt --- SQL/database_changelog.txt | 144 ++++++++++++++++++++++++++++++------- 1 file changed, 120 insertions(+), 24 deletions(-) diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index 5d3c3ccec2..ce5c2c654d 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -1,17 +1,114 @@ + +20th July 2017, by Shadowlight213 +Added role_time table to track time spent playing departments. +Also, added flags column to the player table. + +CREATE TABLE `role_time` ( `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT NULL , `minutes` INT UNSIGNED NOT NULL, PRIMARY KEY (`ckey`, `job`) ) ENGINE = InnoDB; + +ALTER TABLE `player` ADD `flags` INT NOT NULL default '0' AFTER `accountjoindate`; + +UPDATE `schema_revision` SET minor = 1; + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + +Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255. + +The latest database version is 3.0; The query to update the schema revision table is: + +INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); +or +INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (3, 0); + +---------------------------------------------------- +28 June 2017, by oranges +Added schema_revision to store the current db revision, why start at 3.0? + +because: +15:09 <+MrStonedOne> 1.0 was erro, 2.0 was when i removed erro_, 3.0 was when jordie made all the strings that hold numbers numbers + +CREATE TABLE `schema_revision` ( +`major` TINYINT(3) UNSIGNED NOT NULL , +`minor` TINYINT(3) UNSIGNED NOT NULL , +`date` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, +PRIMARY KEY ( `major`,`minor` ) +) ENGINE = INNODB; + +INSERT INTO `schema_revision` (`major`, `minor`) VALUES (3, 0); + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + +26 June 2017, by Jordie0608 + +Modified table 'poll_option', adding the column 'default_percentage_calc'. + +ALTER TABLE `poll_option` ADD COLUMN `default_percentage_calc` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' AFTER `descmax` + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + +22 June 2017, by Jordie0608 + +Modified table 'poll_option', removing the column 'percentagecalc'. + +ALTER TABLE `poll_option` DROP COLUMN `percentagecalc` + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + +8 June 2017, by Jordie0608 + +Modified table 'death', adding column 'round_id', removing column 'gender' and replacing column 'coord' with the columns 'x_coord', 'y_coord' and 'z_coord'. + +START TRANSACTION; +ALTER TABLE `death` DROP COLUMN `gender`, ADD COLUMN `x_coord` SMALLINT(5) UNSIGNED NOT NULL AFTER `coord`, ADD COLUMN `y_coord` SMALLINT(5) UNSIGNED NOT NULL AFTER `x_coord`, ADD COLUMN `z_coord` SMALLINT(5) UNSIGNED NOT NULL AFTER `y_coord`, ADD COLUMN `round_id` INT(11) NOT NULL AFTER `server_port`; +SET SQL_SAFE_UPDATES = 0; +UPDATE `death` SET `x_coord` = SUBSTRING_INDEX(`coord`, ',', 1), `y_coord` = SUBSTRING_INDEX(SUBSTRING_INDEX(`coord`, ',', 2), ',', -1), `z_coord` = SUBSTRING_INDEX(`coord`, ',', -1); +SET SQL_SAFE_UPDATES = 1; +ALTER TABLE `death` DROP COLUMN `coord`; +COMMIT; + +Remember to add a prefix to the table name if you use them. + +--------------------------------------------------- + +30 May 2017, by MrStonedOne + +Z levels changed, this query allows you to convert old ss13 death records: + +UPDATE death SET coord = CONCAT(SUBSTRING_INDEX(coord, ',', 2), ', ', CASE TRIM(SUBSTRING_INDEX(coord, ',', -1)) WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE TRIMSUBSTRING_INDEX(coord, ',', -1) END) + +--------------------------------------------------- + +26 May 2017, by Jordie0608 + +Modified table 'ban', adding the column 'round_id'. + +ALTER TABLE `ban` ADD COLUMN `round_id` INT(11) NOT NULL AFTER `server_port` + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + 20 May 2017, by Jordie0608 Created table `round` to replace tracking of the datapoints 'round_start', 'round_end', 'server_ip', 'game_mode', 'round_end_results', 'end_error', 'end_proper', 'emergency_shuttle', 'map_name' and 'station_renames' in the `feedback` table. 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` +CREATE TABLE `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` ADD INDEX `tmp` (`round_id` ASC, `var_name` ASC); +INSERT INTO `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`; +FROM `feedback`AS ri +LEFT JOIN `feedback` AS st ON ri.round_id = st.round_id AND st.var_name = "round_start" LEFT JOIN `feedback` AS et ON ri.round_id = et.round_id AND et.var_name = "round_end" LEFT JOIN `feedback` AS si ON ri.round_id = si.round_id AND si.var_name = "server_ip" LEFT JOIN `feedback` AS ch ON ri.round_id = ch.round_id AND ch.var_name = "revision" LEFT JOIN `feedback` AS gm ON ri.round_id = gm.round_id AND gm.var_name = "game_mode" LEFT JOIN `feedback` AS mr ON ri.round_id = mr.round_id AND mr.var_name = "round_end_result" LEFT JOIN `feedback` AS es ON ri.round_id = es.round_id AND es.var_name = "end_state" LEFT JOIN `feedback` AS ep ON ri.round_id = ep.round_id AND ep.var_name = "end_proper" LEFT JOIN `feedback` AS ss ON ri.round_id = ss.round_id AND ss.var_name = "emergency_shuttle" LEFT JOIN `feedback` AS mn ON ri.round_id = mn.round_id AND mn.var_name = "map_name" LEFT JOIN `feedback` AS sn ON ri.round_id = sn.round_id AND sn.var_name = "station_renames"; +ALTER TABLE `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. @@ -24,19 +121,18 @@ Remember to add a prefix to the table names if you use them Modified table 'player', adding the column 'accountjoindate', removing the column 'id' and making the column 'ckey' the primary key. -ALTER TABLE `feedback`.`player` DROP COLUMN `id`, ADD COLUMN `accountjoindate` DATE NULL AFTER `lastadminrank`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`), DROP INDEX `ckey`; +ALTER TABLE `player` DROP COLUMN `id`, ADD COLUMN `accountjoindate` DATE NULL AFTER `lastadminrank`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`), DROP INDEX `ckey`; Remember to add a prefix to the table name if you use them. ---------------------------------------------------- - 10 March 2017, by Jordie0608 Modified table 'death', adding the columns 'toxloss', 'cloneloss', and 'staminaloss' and table 'legacy_population', adding the columns 'server_ip' and 'server_port'. -ALTER TABLE `feedback`.`death` ADD COLUMN `toxloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `oxyloss`, ADD COLUMN `cloneloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `toxloss`, ADD COLUMN `staminaloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `cloneloss`; +ALTER TABLE `death` ADD COLUMN `toxloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `oxyloss`, ADD COLUMN `cloneloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `toxloss`, ADD COLUMN `staminaloss` SMALLINT(5) UNSIGNED NOT NULL AFTER `cloneloss`; -ALTER TABLE `feedback`.`legacy_population` ADD COLUMN `server_ip` INT(10) UNSIGNED NOT NULL AFTER `time`, ADD COLUMN `server_port` SMALLINT(5) UNSIGNED NOT NULL AFTER `server_ip`; +ALTER TABLE `legacy_population` ADD COLUMN `server_ip` INT(10) UNSIGNED NOT NULL AFTER `time`, ADD COLUMN `server_port` SMALLINT(5) UNSIGNED NOT NULL AFTER `server_ip`; Remember to add a prefix to the table name if you use them. @@ -68,18 +164,18 @@ Created table 'messages' to supersede the 'notes', 'memos', and 'watchlist' tabl To create this new table run the following command: -CREATE TABLE `feedback`.`messages` (`id` INT(11) NOT NULL AUTO_INCREMENT , `type` VARCHAR(32) NOT NULL , `targetckey` VARCHAR(32) NOT NULL , `adminckey` VARCHAR(32) NOT NULL , `text` TEXT NOT NULL , `timestamp` DATETIME NOT NULL , `server` VARCHAR(32) NULL , `secret` TINYINT(1) NULL DEFAULT 1 , `lasteditor` VARCHAR(32) NULL , `edits` TEXT NULL , PRIMARY KEY (`id`) ) +CREATE TABLE `messages` (`id` INT(11) NOT NULL AUTO_INCREMENT , `type` VARCHAR(32) NOT NULL , `targetckey` VARCHAR(32) NOT NULL , `adminckey` VARCHAR(32) NOT NULL , `text` TEXT NOT NULL , `timestamp` DATETIME NOT NULL , `server` VARCHAR(32) NULL , `secret` TINYINT(1) NULL DEFAULT 1 , `lasteditor` VARCHAR(32) NULL , `edits` TEXT NULL , PRIMARY KEY (`id`) ) To copy the contents of the 'notes', 'memos', and 'watchlist' tables to this new table run the following commands: -INSERT INTO `feedback`.`messages` -(`id`,`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`server`,`secret`,`lasteditor`,`edits`) SELECT `id`, "note", `ckey`, `adminckey`, `notetext`, `timestamp`, `server`, `secret`, `last_editor`, `edits` FROM `feedback`.`notes` +INSERT INTO `messages` +(`id`,`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`server`,`secret`,`lasteditor`,`edits`) SELECT `id`, "note", `ckey`, `adminckey`, `notetext`, `timestamp`, `server`, `secret`, `last_editor`, `edits` FROM `notes` -INSERT INTO `feedback`.`messages` -(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "memo", `ckey`, `ckey`, `memotext`, `timestamp`, `last_editor`, `edits` FROM `feedback`.`memo` +INSERT INTO `messages` +(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "memo", `ckey`, `ckey`, `memotext`, `timestamp`, `last_editor`, `edits` FROM `memo` -INSERT INTO `feedback`.`messages` -(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "watchlist entry", `ckey`, `adminckey`, `reason`, `timestamp`, `last_editor`, `edits` FROM `feedback`.`watch` +INSERT INTO `messages` +(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "watchlist entry", `ckey`, `adminckey`, `reason`, `timestamp`, `last_editor`, `edits` FROM `watch` It's not necessary to delete the 'notes', 'memos', and 'watchlist' tables but they will no longer be used. @@ -91,7 +187,7 @@ Remember to add a prefix to the table names if you use them Modified table 'notes', adding column 'secret'. -ALTER TABLE `feedback`.`notes` ADD COLUMN `secret` TINYINT(1) NOT NULL DEFAULT '1' AFTER `server` +ALTER TABLE `notes` ADD COLUMN `secret` TINYINT(1) NOT NULL DEFAULT '1' AFTER `server` Remember to add a prefix to the table name if you use them @@ -101,7 +197,7 @@ Remember to add a prefix to the table name if you use them Changed appearance bans to be jobbans. -UPDATE 'feedback'.`ban` SET `job` = "appearance", `bantype` = "JOB_PERMABAN" WHERE `bantype` = "APPEARANCE_PERMABAN" +UPDATE `ban` SET `job` = "appearance", `bantype` = "JOB_PERMABAN" WHERE `bantype` = "APPEARANCE_PERMABAN" Remember to add a prefix to the table name if you use them @@ -111,7 +207,7 @@ Remember to add a prefix to the table name if you use them Modified table 'poll_question', adding column 'dontshow' which was recently added to the server schema. -ALTER TABLE `feedback`.`poll_question` ADD COLUMN `dontshow` TINYINT(1) NOT NULL DEFAULT '0' AFTER `for_trialmin` +ALTER TABLE `poll_question` ADD COLUMN `dontshow` TINYINT(1) NOT NULL DEFAULT '0' AFTER `for_trialmin` Remember to add a prefix to the table name if you use them @@ -121,7 +217,7 @@ Remember to add a prefix to the table name if you use them Added ipintel table, only required if ip intel is enabled in the config -CREATE TABLE `ipintel` ( +CREATE TABLE `ipintel` ( `ip` INT UNSIGNED NOT NULL , `date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , `intel` REAL NOT NULL DEFAULT '0', @@ -134,7 +230,7 @@ PRIMARY KEY ( `ip` ) Modified table 'poll_question', adding columns 'createdby_ckey', 'createdby_ip' and 'for_trialmin' to bring it inline with the schema used by the tg servers. -ALTER TABLE `feedback`.`poll_question` ADD COLUMN `createdby_ckey` VARCHAR(45) NULL DEFAULT NULL AFTER `multiplechoiceoptions`, ADD COLUMN `createdby_ip` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ckey`, ADD COLUMN `for_trialmin` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ip` +ALTER TABLE `poll_question` ADD COLUMN `createdby_ckey` VARCHAR(45) NULL DEFAULT NULL AFTER `multiplechoiceoptions`, ADD COLUMN `createdby_ip` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ckey`, ADD COLUMN `for_trialmin` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ip` Remember to add a prefix to the table name if you use them @@ -144,7 +240,7 @@ Remember to add a prefix to the table name if you use them Modified table 'watch', removing 'id' column, making 'ckey' primary and adding the columns 'timestamp', 'adminckey', 'last_editor' and 'edits'. -ALTER TABLE `feedback`.`watch` DROP COLUMN `id`, ADD COLUMN `timestamp` datetime NOT NULL AFTER `reason`, ADD COLUMN `adminckey` varchar(32) NOT NULL AFTER `timestamp`, ADD COLUMN `last_editor` varchar(32) NULL AFTER `adminckey`, ADD COLUMN `edits` text NULL AFTER `last_editor`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) +ALTER TABLE `watch` DROP COLUMN `id`, ADD COLUMN `timestamp` datetime NOT NULL AFTER `reason`, ADD COLUMN `adminckey` varchar(32) NOT NULL AFTER `timestamp`, ADD COLUMN `last_editor` varchar(32) NULL AFTER `adminckey`, ADD COLUMN `edits` text NULL AFTER `last_editor`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) Remember to add a prefix to the table name if you use them. @@ -166,7 +262,7 @@ Remember to add prefix to the table name if you use them. Modified table 'memo', removing 'id' column and making 'ckey' primary. -ALTER TABLE `feedback`.`memo` DROP COLUMN `id`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) +ALTER TABLE `memo` DROP COLUMN `id`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) Remember to add prefix to the table name if you use them. From ea0f489f95eb4cc73837ddd66ca696fc69bc3bd1 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:01:01 -0500 Subject: [PATCH 121/181] Update tgstation_schema_prefixed.sql --- SQL/tgstation_schema_prefixed.sql | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index 094485df59..b810a82ca3 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -1,6 +1,3 @@ -CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET latin1 */; -USE `feedback`; - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; @@ -74,6 +71,7 @@ CREATE TABLE `SS13_ban` ( `bantime` datetime NOT NULL, `server_ip` int(10) unsigned NOT NULL, `server_port` smallint(5) unsigned NOT NULL, + `round_id` int(11) NOT NULL, `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN') NOT NULL, `reason` varchar(2048) NOT NULL, `job` varchar(32) DEFAULT NULL, @@ -129,10 +127,13 @@ DROP TABLE IF EXISTS `SS13_death`; CREATE TABLE `SS13_death` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pod` varchar(50) NOT NULL, - `coord` varchar(32) NOT NULL, + `x_coord` smallint(5) unsigned NOT NULL, + `y_coord` smallint(5) unsigned NOT NULL, + `z_coord` smallint(5) unsigned NOT NULL, `mapname` varchar(32) NOT NULL, `server_ip` int(10) unsigned NOT NULL, `server_port` smallint(5) unsigned NOT NULL, + `round_id` int(11) NOT NULL, `tod` datetime NOT NULL COMMENT 'Time of death', `job` varchar(32) NOT NULL, `special` varchar(32) DEFAULT NULL, @@ -140,7 +141,6 @@ CREATE TABLE `SS13_death` ( `byondkey` varchar(32) NOT NULL, `laname` varchar(96) DEFAULT NULL, `lakey` varchar(32) DEFAULT NULL, - `gender` enum('neuter','male','female','plural') NOT NULL, `bruteloss` smallint(5) unsigned NOT NULL, `brainloss` smallint(5) unsigned NOT NULL, `fireloss` smallint(5) unsigned NOT NULL, @@ -301,12 +301,12 @@ CREATE TABLE `SS13_poll_option` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pollid` int(11) NOT NULL, `text` varchar(255) NOT NULL, - `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', `minval` int(3) DEFAULT NULL, `maxval` int(3) DEFAULT NULL, `descmin` varchar(32) DEFAULT NULL, `descmid` varchar(32) DEFAULT NULL, `descmax` varchar(32) DEFAULT NULL, + `default_percentage_calc` tinyint(1) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `idx_pop_pollid` (`pollid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; @@ -403,6 +403,17 @@ CREATE TABLE `SS13_round` ( /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; +-- +-- Table structure for table `SS13_schema_revision` +-- +DROP TABLE IF EXISTS `SS13_schema_revision`; +CREATE TABLE `SS13_schema_revision` ( + `major` TINYINT(3) unsigned NOT NULL, + `minor` TINYINT(3) unsigned NOT NULL, + `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`major`,`minor`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; From 31e3f6135a4711c6b7aa699217a5b835bc611cd7 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:01:05 -0500 Subject: [PATCH 122/181] Update tgstation_schema.sql --- SQL/tgstation_schema.sql | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index 4c19d0bd20..9795b90672 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -1,6 +1,3 @@ -CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET latin1 */; -USE `feedback`; - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; @@ -74,6 +71,7 @@ CREATE TABLE `ban` ( `bantime` datetime NOT NULL, `server_ip` int(10) unsigned NOT NULL, `server_port` smallint(5) unsigned NOT NULL, + `round_id` int(11) NOT NULL, `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN') NOT NULL, `reason` varchar(2048) NOT NULL, `job` varchar(32) DEFAULT NULL, @@ -119,7 +117,6 @@ CREATE TABLE `connection_log` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; - -- -- Table structure for table `death` -- @@ -136,7 +133,7 @@ CREATE TABLE `death` ( `mapname` varchar(32) NOT NULL, `server_ip` int(10) unsigned NOT NULL, `server_port` smallint(5) unsigned NOT NULL, - `round_id` int(11) NOT NULL + `round_id` int(11) NOT NULL, `tod` datetime NOT NULL COMMENT 'Time of death', `job` varchar(32) NOT NULL, `special` varchar(32) DEFAULT NULL, @@ -155,7 +152,6 @@ CREATE TABLE `death` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; - -- -- Table structure for table `feedback` -- @@ -305,12 +301,12 @@ CREATE TABLE `poll_option` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pollid` int(11) NOT NULL, `text` varchar(255) NOT NULL, - `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', `minval` int(3) DEFAULT NULL, `maxval` int(3) DEFAULT NULL, `descmin` varchar(32) DEFAULT NULL, `descmid` varchar(32) DEFAULT NULL, `descmax` varchar(32) DEFAULT NULL, + `default_percentage_calc` tinyint(1) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `idx_pop_pollid` (`pollid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; @@ -407,6 +403,17 @@ CREATE TABLE `round` ( /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; +-- +-- Table structure for table `schema_revision` +-- +DROP TABLE IF EXISTS `schema_revision`; +CREATE TABLE `schema_revision` ( + `major` TINYINT(3) unsigned NOT NULL, + `minor` TINYINT(3) unsigned NOT NULL, + `date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`major`, `minor`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; From 2bfc7872faef501985bfb3b62b7a2f66312e657c Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:06:37 -0500 Subject: [PATCH 123/181] cleanup --- code/game/objects/items/storage/boxes.dm.rej | 9 --------- code/modules/admin/verbs/randomverbs.dm.rej | 10 ---------- config/custom_roundstart_items.txt | 1 + tgstation.dme.rej | 13 ------------- 4 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 code/game/objects/items/storage/boxes.dm.rej delete mode 100644 code/modules/admin/verbs/randomverbs.dm.rej delete mode 100644 tgstation.dme.rej diff --git a/code/game/objects/items/storage/boxes.dm.rej b/code/game/objects/items/storage/boxes.dm.rej deleted file mode 100644 index c7e13676db..0000000000 --- a/code/game/objects/items/storage/boxes.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm (rejected hunks) -@@ -732,7 +732,6 @@ - /obj/item/storage/box/ingredients //This box is for the randomely chosen version the chef spawns with, it shouldn't actually exist. - name = "ingredients box" - illustration = "donk_kit" -- icon_state = null - - /obj/item/storage/box/ingredients/Initialize() - ..() diff --git a/code/modules/admin/verbs/randomverbs.dm.rej b/code/modules/admin/verbs/randomverbs.dm.rej deleted file mode 100644 index 24b4116032..0000000000 --- a/code/modules/admin/verbs/randomverbs.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm (rejected hunks) -@@ -1214,7 +1214,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits - - /client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are. - set category = "Admin" -- set name = "Check Player Playtime" -+ set name = "Player Playtime" - if(!check_rights(R_ADMIN)) - return - diff --git a/config/custom_roundstart_items.txt b/config/custom_roundstart_items.txt index dd3ed5f2c3..1b2952615f 100644 --- a/config/custom_roundstart_items.txt +++ b/config/custom_roundstart_items.txt @@ -7,3 +7,4 @@ //test1|Memename Lastname|testjob1|/obj/item/device/aicard=3;/obj/item/device/flightpack=1;/obj/item/gun/energy=3 //kevinz000|Skylar Lineman|ALL|/obj/item/bikehorn/airhorn=1 //kevinz000|ALL|Clown|/obj/item/bikehorn=1 +JayEhh|ALL|ALL|/obj/item/bikehorn=1 diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index a5ff4dc3cb..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,13 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -1746,6 +1745,11 @@ - #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" - #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" - #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" -+#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" -+#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" -+#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" -+#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" -+#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" - #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" - #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" - #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" From 8731fb7e1c89cf1031001509024ec058fbb48a1f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:07:39 -0500 Subject: [PATCH 124/181] Delete database_changelog.txt.rej --- SQL/database_changelog.txt.rej | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 SQL/database_changelog.txt.rej diff --git a/SQL/database_changelog.txt.rej b/SQL/database_changelog.txt.rej deleted file mode 100644 index f65c192173..0000000000 --- a/SQL/database_changelog.txt.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/SQL/database_changelog.txt b/SQL/database_changelog.txt (rejected hunks) -@@ -5,7 +5,7 @@ Also, added flags column to the player table. - - CREATE TABLE `role_time` ( `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT NULL , `minutes` INT UNSIGNED NOT NULL, PRIMARY KEY (`ckey`, `job`) ) ENGINE = InnoDB; - --ALTER TABLE `player` ADD `flags` INT NOT NULL AFTER `accountjoindate`; -+ALTER TABLE `player` ADD `flags` INT NOT NULL default '0' AFTER `accountjoindate`; - - UPDATE `schema_revision` SET minor = 1; - From f4b08d32a716e2cb55fba4c9527c782d08ec1a97 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:26:16 -0500 Subject: [PATCH 125/181] Update admin.dm --- code/modules/admin/admin.dm | 51 +++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index e6a1b3d383..358465ffc0 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -444,7 +444,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() @@ -597,7 +597,7 @@ log_admin("[key_name(usr)] delayed the round start.") else to_chat(world, "The game will start in [newtime] seconds.") - SEND_SOUND(world, sound('sound/ai/attention.ogg')) + world << 'sound/ai/attention.ogg' log_admin("[key_name(usr)] set the pre-game delay to [newtime] seconds.") SSblackbox.add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -737,33 +737,34 @@ var/dat = "Manage Free Slots" var/count = 0 - if(!SSticker.HasRoundStarted()) + if(SSticker && !SSticker.mode) alert(usr, "You cannot manage jobs before the round starts!") return - for(var/datum/job/job in SSjob.occupations) - count++ - var/J_title = html_encode(job.title) - var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) - var/J_totPos = html_encode(job.total_positions) - if(job.total_positions < 0) - dat += "[J_title]: [J_opPos] (unlimited)" - else - dat += "[J_title]: [J_opPos]/[J_totPos]" - - if(job.title == "AI" || job.title == "Cyborg") - dat += " (Cannot Late Join)
" - continue - if(job.total_positions >= 0) - dat += " Add | " - if(job.total_positions > job.current_positions) - dat += "Remove | " + if(SSjob) + for(var/datum/job/job in SSjob.occupations) + count++ + var/J_title = html_encode(job.title) + var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) + var/J_totPos = html_encode(job.total_positions) + if(job.total_positions < 0) + dat += "[J_title]: [J_opPos] (unlimited)" else - dat += "Remove | " - dat += "Unlimit" - else - dat += " Limit" - dat += "
" + dat += "[J_title]: [J_opPos]/[J_totPos]" + + if(job.title == "AI" || job.title == "Cyborg") + dat += " (Cannot Late Join)
" + continue + if(job.total_positions >= 0) + dat += " Add | " + if(job.total_positions > job.current_positions) + dat += "Remove | " + else + dat += "Remove | " + dat += "Unlimit" + else + dat += " Limit" + dat += "
" dat += "" var/winheight = 100 + (count * 20) From a94ffca643dc841c043a60c2e5615fd522e0621b Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:28:33 -0500 Subject: [PATCH 126/181] Update admin.dm --- code/modules/admin/admin.dm | 47 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 358465ffc0..b88451b724 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -597,7 +597,7 @@ log_admin("[key_name(usr)] delayed the round start.") else to_chat(world, "The game will start in [newtime] seconds.") - world << 'sound/ai/attention.ogg' + SEND_SOUND(world, sound('sound/ai/attention.ogg')) log_admin("[key_name(usr)] set the pre-game delay to [newtime] seconds.") SSblackbox.add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -737,34 +737,33 @@ var/dat = "Manage Free Slots" var/count = 0 - if(SSticker && !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert(usr, "You cannot manage jobs before the round starts!") return - if(SSjob) - for(var/datum/job/job in SSjob.occupations) - count++ - var/J_title = html_encode(job.title) - var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) - var/J_totPos = html_encode(job.total_positions) - if(job.total_positions < 0) - dat += "[J_title]: [J_opPos] (unlimited)" - else - dat += "[J_title]: [J_opPos]/[J_totPos]" + for(var/datum/job/job in SSjob.occupations) + count++ + var/J_title = html_encode(job.title) + var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) + var/J_totPos = html_encode(job.total_positions) + if(job.total_positions < 0) + dat += "[J_title]: [J_opPos] (unlimited)" + else + dat += "[J_title]: [J_opPos]/[J_totPos]" - if(job.title == "AI" || job.title == "Cyborg") - dat += " (Cannot Late Join)
" - continue - if(job.total_positions >= 0) - dat += " Add | " - if(job.total_positions > job.current_positions) - dat += "Remove | " - else - dat += "Remove | " - dat += "Unlimit" + if(job.title == "AI" || job.title == "Cyborg") + dat += " (Cannot Late Join)
" + continue + if(job.total_positions >= 0) + dat += " Add | " + if(job.total_positions > job.current_positions) + dat += "Remove | " else - dat += " Limit" - dat += "
" + dat += "Remove | " + dat += "Unlimit" + else + dat += " Limit" + dat += "
" dat += "" var/winheight = 100 + (count * 20) From 7711b73ca790a2fb3f4fc9ac81379af585533cc6 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 2 Sep 2017 07:31:52 -0500 Subject: [PATCH 127/181] Update randomverbs.dm --- code/modules/admin/verbs/randomverbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index ca386ce110..dc7fda7a31 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -799,7 +799,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits var/list/headwear = typesof(/obj/item/clothing/head) var/list/glasses = typesof(/obj/item/clothing/glasses) var/list/masks = typesof(/obj/item/clothing/mask) - var/list/ids = typesof(/obj/item/weapon/card/id) + var/list/ids = typesof(/obj/item/card/id) var/uniform_select = "

[message]