diff --git a/baystation12.dme b/baystation12.dme index 0724e2048b3..b419cd59be9 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -124,6 +124,7 @@ #define FILE_DIR "code/modules/mob/living/silicon/robot" #define FILE_DIR "code/modules/mob/new_player" #define FILE_DIR "code/modules/mob/organ" +#define FILE_DIR "code/modules/mob/simple_animal" #define FILE_DIR "code/modules/power" #define FILE_DIR "code/modules/power/antimatter" #define FILE_DIR "code/modules/power/singularity" @@ -302,7 +303,6 @@ #include "code\defines\turf.dm" #include "code\defines\world.dm" #include "code\defines\area\Space Station 13 areas.dm" -#include "code\defines\mob\mob.dm" #include "code\defines\mob\dead\observer.dm" #include "code\defines\mob\living\living.dm" #include "code\defines\mob\living\carbon\alien.dm" @@ -432,6 +432,7 @@ #include "code\game\gamemodes\blob\theblob.dm" #include "code\game\gamemodes\changeling\changeling.dm" #include "code\game\gamemodes\changeling\changeling_powers.dm" +#include "code\game\gamemodes\changeling\modularchangling.dm" #include "code\game\gamemodes\changeling\traitor_chan.dm" #include "code\game\gamemodes\cult\cult.dm" #include "code\game\gamemodes\cult\cult_items.dm" @@ -605,6 +606,7 @@ #include "code\game\objects\displaycase.dm" #include "code\game\objects\door_assembly.dm" #include "code\game\objects\effect_system.dm" +#include "code\game\objects\electricchair.dm" #include "code\game\objects\empulse.dm" #include "code\game\objects\explosion.dm" #include "code\game\objects\gibs.dm" @@ -853,6 +855,7 @@ #include "code\modules\mob\login.dm" #include "code\modules\mob\logout.dm" #include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" #include "code\modules\mob\mob_grab.dm" #include "code\modules\mob\mob_helpers.dm" #include "code\modules\mob\mob_movement.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm index dde36fcd480..3819cda6dd7 100644 --- a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm +++ b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm @@ -81,24 +81,24 @@ if (src.wear_id) var/id - var/photo = 0 +// var/photo = 0 if(istype(src:wear_id, /obj/item/device/pda)) var/obj/item/device/pda/pda = src:wear_id id = pda.owner else - id = src.wear_id.registered_name - if (src.wear_id.PHOTO) - photo = 1 - if (id != src.real_name && in_range(src, usr) && prob(10)) - if (photo) - usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!" - else - usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!" + id = src.wear_id.registered +// if (src.wear_id.PHOTO) +// photo = 1 + if (id != src.real_name && in_range(src, usr)) +// if (photo) +// usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!" +// else + usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!" else - if (photo) - usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo." - else - usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]." +// if (photo) +// usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo." +// else + usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]." if (src.is_jittery) diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm index 3ac7e6364e1..2fc89ab2252 100644 --- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm +++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm @@ -344,8 +344,8 @@ if (wear_id) if (istype(wear_id, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/id = wear_id - if (id.registered_name) - name = id.registered_name + if (id.registered) + name = id.registered else name = "Unknown" else if (istype(wear_id, /obj/item/device/pda)) @@ -360,8 +360,8 @@ if (wear_id) if (istype(wear_id, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/id = wear_id - if (id.registered_name != real_name) - name = "[real_name] (as [id.registered_name])" + if (id.registered != real_name) + name = "[real_name] (as [id.registered])" else if (istype(wear_id, /obj/item/device/pda)) diff --git a/code/datums/configuration.dm b/code/datums/configuration.dm index 9e05d3f8541..a929f8342a2 100644 --- a/code/datums/configuration.dm +++ b/code/datums/configuration.dm @@ -12,6 +12,11 @@ var/log_game = 0 // log game events var/log_vote = 0 // log voting var/log_whisper = 0 // log client whisper + var/log_emote = 0 // log emotes + var/log_attack = 0 // log attack messages + var/log_adminchat = 0 // log admin chat messages + var/log_adminwarn = 0 // log warnings admins get about bomb construction and such + var/log_pda = 0 // log pda messages var/sql_enabled = 1 // for sql switching var/allow_vote_restart = 0 // allow votes to restart var/allow_vote_mode = 0 // allow votes to change mode @@ -22,14 +27,18 @@ var/vote_period = 60 // length of voting period (seconds, 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/enable_authentication = 0 // goon authentication var/del_new_on_log = 1 // del's new players if they log before they spawn in var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard var/traitor_scaling = 0 //if amount of traitors scales based on amount of players + var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other + var/Tensioner_Active = 0 // If the tensioner is running. 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/allow_random_events = 0 // enables random events mid-round when set to 1 var/allow_ai = 1 // allow ai job var/hostedby = null var/respawn = 1 @@ -49,6 +58,9 @@ var/alert_desc_red_downto = "The self-destruct mechanism has been deactivated. However, 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 = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + var/forbid_singulo_possession = 0 + var/useircbot = 0 + //game_options.txt configs var/health_threshold_crit = 0 @@ -138,6 +150,21 @@ if ("log_whisper") config.log_whisper = 1 + if ("log_attack") + config.log_attack = 1 + + if ("log_emote") + config.log_emote = 1 + + if ("log_adminchat") + config.log_adminchat = 1 + + if ("log_adminwarn") + config.log_adminwarn = 1 + + if ("log_pda") + config.log_pda = 1 + if ("allow_vote_restart") config.allow_vote_restart = 1 @@ -168,6 +195,9 @@ if ("allow_ai") config.allow_ai = 1 + if ("authentication") + config.enable_authentication = 1 + if ("norespawn") config.respawn = 0 @@ -204,6 +234,12 @@ if ("traitor_scaling") config.traitor_scaling = 1 + if("protect_roles_from_antagonist") + config.protect_roles_from_antagonist = 1 + + if("tensioner_active") + config.Tensioner_Active = 1 + if ("probability") var/prob_pos = findtext(value, " ") var/prob_name = null @@ -219,7 +255,10 @@ else diary << "Incorrect probability configuration definition: [prob_name] [prob_value]." - if ("kick_inactive") + if("allow_random_events") + config.allow_random_events = 1 + + if("kick_inactive") config.kick_inactive = 1 if("load_jobs_from_txt") @@ -243,6 +282,12 @@ if("alert_delta") config.alert_desc_delta = value + if("forbid_singulo_possession") + forbid_singulo_possession = 1 + + if("useircbot") + useircbot = 1 + if("require_heads_alive") config.require_heads_alive = value diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm index 1132d212f46..a467460bd50 100755 --- a/code/defines/area/Space Station 13 areas.dm +++ b/code/defines/area/Space Station 13 areas.dm @@ -34,6 +34,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/requires_power = 1 var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() + var/power_equip = 1 var/power_light = 1 var/power_environ = 1 @@ -42,6 +43,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/used_light = 0 var/used_environ = 0 + var/has_gravity = 1 var/no_air = null var/area/master // master area used for power calcluations @@ -82,7 +84,7 @@ proc/process_ghost_teleport_locs() ghostteleportlocs += AR.name ghostteleportlocs[AR.name] = AR var/turf/picked = pick(get_area_turfs(AR.type)) - if (picked.z == 1 || picked.z == 3 || picked.z == 5) + if (picked.z == 1 || picked.z == 5 || picked.z == 3) ghostteleportlocs += AR.name ghostteleportlocs[AR.name] = AR @@ -147,6 +149,61 @@ proc/process_ghost_teleport_locs() /area/shuttle/escape/centcom icon_state = "shuttle" +/area/shuttle/escape/transit // the area to pass through for 3 minute transit + icon_state = "shuttle" + +/area/shuttle/escape_pod1 + name = "Escape Pod One" + music = "music/escape.ogg" + +/area/shuttle/escape_pod1/station + icon_state = "shuttle2" + +/area/shuttle/escape_pod1/centcom + icon_state = "shuttle" + +/area/shuttle/escape_pod1/transit + icon_state = "shuttle" + +/area/shuttle/escape_pod2 + name = "Escape Pod Two" + music = "music/escape.ogg" + +/area/shuttle/escape_pod2/station + icon_state = "shuttle2" + +/area/shuttle/escape_pod2/centcom + icon_state = "shuttle" + +/area/shuttle/escape_pod2/transit + icon_state = "shuttle" + +/area/shuttle/escape_pod3 + name = "Escape Pod Three" + music = "music/escape.ogg" + +/area/shuttle/escape_pod3/station + icon_state = "shuttle2" + +/area/shuttle/escape_pod3/centcom + icon_state = "shuttle" + +/area/shuttle/escape_pod3/transit + icon_state = "shuttle" + +/area/shuttle/escape_pod5 //Pod 4 was lost to meteors + name = "Escape Pod Five" + music = "music/escape.ogg" + +/area/shuttle/escape_pod5/station + icon_state = "shuttle2" + +/area/shuttle/escape_pod5/centcom + icon_state = "shuttle" + +/area/shuttle/escape_pod5/transit + icon_state = "shuttle" + /area/shuttle/mining name = "Mining Shuttle" music = "music/escape.ogg" @@ -253,6 +310,7 @@ proc/process_ghost_teleport_locs() requires_power = 0 luminosity = 1 sd_lighting = 0 + has_gravity = 1 // === end remove @@ -561,6 +619,10 @@ proc/process_ghost_teleport_locs() name = "Escape Shuttle Hallway" icon_state = "escape" +/area/hallway/secondary/construction + name = "Construction Area" + icon_state = "construction" + /area/hallway/secondary/entry name = "Arrival Shuttle Hallway" icon_state = "entry" @@ -589,24 +651,20 @@ proc/process_ghost_teleport_locs() name = "Courtroom" icon_state = "courtroom" -/area/crew_quarters/heads/hop +/area/crew_quarters/heads name = "Head of Personnel's Quarters" icon_state = "head_quarters" -/area/crew_quarters/heads/hor - name = "Research Director's Quarters" - icon_state = "head_quarters" - -/area/crew_quarters/heads/ce - name = "Chief Engineer's Quarters" - icon_state = "head_quarters" - -/area/crew_quarters/heads/hos - name = "Head of Security's Quarters" +/area/crew_quarters/hor + name = "Research Director's Office" icon_state = "head_quarters" /area/crew_quarters/heads/cmo - name = "Chief Medical Officer's Quarters" + name = "Chief Medical Officer's Office" + icon_state = "head_quarters" + +/area/crew_quarters/chief + name = "Chief Engineer's Office" icon_state = "head_quarters" /area/mint @@ -683,16 +741,67 @@ proc/process_ghost_teleport_locs() name = "Law Office" icon_state = "law" + + + + + + +/area/holodeck + name = "Holodeck" + icon_state = "Holodeck" + luminosity = 1 + sd_lighting = 0 + +/area/holodeck/alphadeck + name = "Holodeck Alpha" + + +/area/holodeck/source_plating + name = "Holodeck - Off" + icon_state = "Holodeck" + +/area/holodeck/source_emptycourt + name = "Holodeck - Empty Court" + +/area/holodeck/source_boxingcourt + name = "Holodeck - Boxing Court" + +/area/holodeck/source_thunderdomecourt + name = "Holodeck - Thunderdome Court" + +/area/holodeck/source_beach + name = "Holodeck - Beach" + icon_state = "Holodeck" // Lazy. + +/area/holodeck/source_burntest + name = "Holodeck - Atmospheric Burn Test" + +/area/holodeck/source_wildlife + name = "Holodeck - Wildlife Simulation" + + + + + + + + + + + //Engineering /area/engine - engineering - engine_smes name = "Engineering SMES" icon_state = "engine_smes" requires_power = 0//This area only covers the batteries and they deal with their own power + engineering + name = "Engineering" + icon_state = "engine" + particle_accelerator name = "Particle Accelerator" icon_state = "engine_pa" @@ -1014,6 +1123,10 @@ proc/process_ghost_teleport_locs() name = "Toxins Lab" icon_state = "toxlab" +/area/toxins/storage + name = "Toxin Storage" + icon_state = "toxstorage" + /area/toxins/test_area name = "Toxins Lab Test Area" icon_state = "toxtest" @@ -1044,6 +1157,10 @@ proc/process_ghost_teleport_locs() name = "Autolathe Storage" icon_state = "storage" +/area/storage/art + name = "Art Supply Storage" + icon_state = "storage" + /area/storage/auxillary name = "Auxillary Storage" icon_state = "auxstorage" @@ -1302,6 +1419,7 @@ proc/process_ghost_teleport_locs() icon_state = "storage" + // Telecommunications Satellite /area/tcommsat/entrance @@ -1343,6 +1461,10 @@ proc/process_ghost_teleport_locs() var/list/centcom_areas = list ( /area/centcom, /area/shuttle/escape/centcom, + /area/shuttle/escape_pod1/centcom, + /area/shuttle/escape_pod2/centcom, + /area/shuttle/escape_pod3/centcom, + /area/shuttle/escape_pod5/centcom, /area/shuttle/transport1/centcom, /area/shuttle/transport2/centcom, /area/shuttle/administration/centcom, @@ -1353,6 +1475,10 @@ var/list/centcom_areas = list ( var/list/the_station_areas = list ( /area/shuttle/arrival, /area/shuttle/escape/station, + /area/shuttle/escape_pod1/station, + /area/shuttle/escape_pod2/station, + /area/shuttle/escape_pod3/station, + /area/shuttle/escape_pod5/station, /area/shuttle/mining/station, /area/shuttle/transport1/station, // /area/shuttle/transport2/station, @@ -1364,6 +1490,7 @@ var/list/the_station_areas = list ( /area/hallway, /area/bridge, /area/crew_quarters, + /area/holodeck, /area/mint, /area/library, /area/chapel, @@ -1389,6 +1516,8 @@ var/list/the_station_areas = list ( ) + + /area/beach name = "Keelin's private beach" icon_state = "null" diff --git a/code/defines/global.dm b/code/defines/global.dm index 4006eb1af51..263d5f4e95d 100644 --- a/code/defines/global.dm +++ b/code/defines/global.dm @@ -174,6 +174,10 @@ var list/BorgWireColorToIndex list/ScrambledFrequencies = list( ) //These are used for electrical storms, and anything else that jams radios. list/UnscrambledFrequencies = list( ) + list/AAlarmWireColorToFlag = RandomAAlarmWires() // Air Alarm hacking wires. + list/AAlarmIndexToFlag + list/AAlarmIndexToWireColor + list/AAlarmWireColorToIndex const/SPEED_OF_LIGHT = 3e8 //not exact but hey! const/SPEED_OF_LIGHT_SQ = 9e+16 @@ -221,4 +225,4 @@ var forumsqllogin = "root" forumsqlpass = "" forum_activated_group = "2" - forum_authenticated_group = "10"*/ + forum_authenticated_group = "10"*/ diff --git a/code/defines/obj.dm b/code/defines/obj.dm index bf858aad55f..484f205f3b5 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -10,6 +10,7 @@ var/datum/marked_datum animate_movement = 2 var/throwforce = 1 + proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) //Return: (NONSTANDARD) // null if object handles breathing logic for lifeform @@ -284,6 +285,15 @@ opacity = 0 density = 0 +/obj/effect/sign/deathsposal + desc = "A warning sign which reads 'DISPOSAL LEADS TO SPACE'" + name = "DISPOSAL LEADS TO SPACE" + icon = 'decals.dmi' + icon_state = "deathsposal" + anchored = 1.0 + opacity = 0 + density = 0 + /obj/effect/sign/pods desc = "A warning sign which reads 'ESCAPE PODS'" name = "ESCAPE PODS" @@ -294,8 +304,8 @@ density = 0 /obj/effect/sign/fire - desc = "A warning sign which reads 'EXTREME TEMPERATURES'" - name = "EXTREME TEMPERATURES" + desc = "A warning sign which reads 'DANGER: FIRE'" + name = "DANGER: FIRE" icon = 'decals.dmi' icon_state = "fire" anchored = 1.0 @@ -412,7 +422,6 @@ var/twohanded = 0 // Two handed and wielded off by default, nyoro~n -Agouri var/force_unwielded = 0 var/force_wielded = 0 - var/protective_temperature = 0 // Placing this here to avoid runtime errors, due to tiny items being allowed on ears and being queried for this variable flags = FPRINT | TABLEPASS pass_flags = PASSTABLE pressure_resistance = 50 @@ -600,6 +609,10 @@ var/obj/structure/crematorium/connected = null anchored = 1.0 + + + + /obj/structure/cable level = 1 anchored =1 @@ -610,8 +623,9 @@ icon_state = "0-1" var/d1 = 0 var/d2 = 1 - layer = 2.5 + layer = 2.44 //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4 var/color="red" + var/obj/structure/powerswitch/power_switch /obj/structure/cable/yellow color="yellow" @@ -744,6 +758,7 @@ desc = "Apply butt." icon = 'objects.dmi' icon_state = "stool" + anchored = 1.0 flags = FPRINT pressure_resistance = 3*ONE_ATMOSPHERE @@ -751,8 +766,7 @@ name = "bed" desc = "This is used to lie in, sleep in or strap on." icon_state = "bed" - anchored = 1.0 - var/list/buckled_mobs = list( ) + var/mob/living/buckled_mob /obj/structure/stool/bed/alien name = "Resting contraption" @@ -760,44 +774,30 @@ icon_state = "abed" -/obj/structure/stool/chair +/obj/structure/stool/bed/chair //YES, chairs are a type of bed, which are a type of stool. This works, believe me. -Pete name = "chair" desc = "You sit in this. Either by will or force." icon_state = "chair" - var/status = 0.0 - anchored = 1.0 - var/list/buckled_mobs = list( ) -/obj/structure/stool/chair/comfy +/obj/structure/stool/bed/chair/comfy name = "comfy chair" desc = "It looks comfy." -/obj/structure/stool/chair/comfy/brown +/obj/structure/stool/bed/chair/comfy/brown icon_state = "comfychair_brown" -/obj/structure/stool/chair/comfy/beige +/obj/structure/stool/bed/chair/comfy/beige icon_state = "comfychair_beige" -/obj/structure/stool/chair/comfy/teal +/obj/structure/stool/bed/chair/comfy/teal icon_state = "comfychair_teal" -/obj/structure/stool/chair/comfy/black +/obj/structure/stool/bed/chair/comfy/black icon_state = "comfychair_black" -/obj/structure/stool/chair/comfy/lime +/obj/structure/stool/bed/chair/comfy/lime icon_state = "comfychair_lime" -/obj/structure/stool/chair/e_chair - name = "electrified chair" - desc = "Looks absolutely terrifying!" - icon_state = "e_chair0" - var/atom/movable/overlay/overl = null - var/on = 0.0 - var/obj/item/assembly/shock_kit/part1 = null - var/isshocking - var/datum/effect/effect/system/spark_spread/spark = new /datum/effect/effect/system/spark_spread - var/list/mob/living/affected = list() - /obj/structure/table name = "table" desc = "A square piece of metal standing on four metal legs. It can not move." @@ -1128,7 +1128,7 @@ reagents = R R.my_atom = src POWERFLAG = rand(1,10) - Uses = rand(2, 5) + Uses = rand(7, 25) //flags |= NOREACT spawn() @@ -1145,6 +1145,7 @@ + /obj/structure/noticeboard name = "Notice Board" icon = 'stationobjs.dmi' @@ -1197,19 +1198,6 @@ new /obj/item/weapon/glass( src ) */ -/obj/item/weapon/storage/cupbox - name = "Paper-cup Box" - icon_state = "box" - item_state = "syringe_kit" - New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) /obj/structure/falsewall name = "wall" @@ -1324,20 +1312,20 @@ throwforce = 14.0 flags = FPRINT | TABLEPASS | CONDUCT -/obj/item/stack/sheet/r_metal - name = "steel" - singular_name = "steel sheet" +/obj/item/stack/sheet/plasteel + name = "plasteel" + singular_name = "plasteel sheet" desc = "This sheet is an alloy of iron and plasma." - icon_state = "sheet-r_metal" + icon_state = "sheet-plasteel" item_state = "sheet-metal" m_amt = 7500 throwforce = 15.0 flags = FPRINT | TABLEPASS | CONDUCT origin_tech = "materials=2" -/obj/item/stack/tile/steel - name = "Metal floor tile" - singular_name = "Steel floor tile" +/obj/item/stack/tile/plasteel + name = "floor tiles" + singular_name = "floor tile" desc = "Those could work as a pretty decent throwing weapon" icon_state = "tile" w_class = 3.0 @@ -1350,8 +1338,8 @@ max_amount = 60 /obj/item/stack/tile/grass - name = "Grass tile" - singular_name = "Grass floor tile" + name = "grass tiles" + singular_name = "grass floor tile" desc = "A patch of grass like they often use on golf courses" icon_state = "tile_grass" w_class = 3.0 @@ -1364,8 +1352,8 @@ origin_tech = "biotech=1" /obj/item/stack/light_w - name = "Wired glass tile" - singular_name = "Wired glass tile" + name = "wired glass tiles" + singular_name = "wired glass floor tile" desc = "A glass tile, which is wired, somehow." icon_state = "glass_wire" w_class = 3.0 @@ -1400,8 +1388,8 @@ del(src) /obj/item/stack/tile/light - name = "Light floor tile" - singular_name = "Light floor tile" + name = "light tiles" + singular_name = "light floor tile" desc = "A floor tile, made out off glass. It produces light." icon_state = "tile_e" w_class = 3.0 @@ -1435,6 +1423,13 @@ user.u_equip(src) del(src) +/obj/item/stack/sheet/cardboard //BubbleWrap + name = "cardboard" + desc = "Large sheets of card, like boxes folded flat." + singular_name = "cardboard sheet" + icon_state = "sheet-card" + flags = FPRINT | TABLEPASS + origin_tech = "materials=1" /obj/item/weapon/beach_ball icon = 'beach.dmi' @@ -1452,3 +1447,30 @@ afterattack(atom/target as mob|obj|turf|area, mob/user as mob) user.drop_item() src.throw_at(target, throw_range, throw_speed) + +/obj/effect/stop + var/victim = null + icon_state = "empty" + name = "Geas" + desc = "You can't resist." + // name = "" + + + +/obj/debug/debugger + name = "Quantum Debugger" + desc = "A quantum debugger used by Centcomm Reality Engineers to help monitor transiant variables." + icon = 'stationobjs.dmi' + icon_state = "blackbox" + + var/list/list1 = list() + var/list/list2 = list() + var/list/list3 = list() + var/list/list4 = list() + var/list/list5 = list() + + var/var1 = null + var/var2 = null + var/var3 = null + var/var4 = null + var/var5 = null diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index 56fd9242b93..0fa01cee787 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -9,6 +9,7 @@ var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + var/protective_temperature = 0 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 diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index 0b704541a82..228d94133a0 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -48,7 +48,8 @@ can_hold = list("/obj/item/weapon/dice") /obj/item/weapon/storage/box - name = "Box" + name = "box" + desc = "It's just an ordinary box." icon_state = "box" item_state = "syringe_kit" @@ -59,34 +60,50 @@ desc = "Full of masks and emergency anesthetic tanks." /obj/item/weapon/storage/box/syndicate - icon_state = "box_of_doom" /obj/item/weapon/storage/box/ert name = "medical box" desc = "Full of goodness." icon_state = "implant" item_state = "syringe_kit" +/obj/item/weapon/storage/cupbox + name = "box of paper cups" + desc = "It has pictures of paper cups on the front." + icon_state = "box" + item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) /obj/item/weapon/storage/pillbottlebox - name = "pill bottles" - desc = "A box of pill bottles." + name = "box of pill bottles" + desc = "It has pictures of pill bottles on its front." icon_state = "box" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/blankbox - name = "blank shells" - desc = "A box containing...stuff..." + name = "box of blank shells" + desc = "It has a picture of a gun and several warning symbols on the front." icon_state = "box" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/backpack/clown - name = "clown's backpack" - desc = "The backpack made by Honk. Co." + name = "Giggles Von Honkerton" + desc = "It's a backpack made by Honk! Co." icon_state = "clownpack" /obj/item/weapon/storage/backpack/medic - name = "medic's backpack" - desc = "The backpack used to keep with the sterile environment." + name = "medical backpack" + desc = "It's a backpack especially designed for use in a sterile environment." icon_state = "medicalpack" /obj/item/weapon/storage/backpack/medic/full @@ -102,17 +119,20 @@ /obj/item/weapon/storage/backpack/security name = "security backpack" - desc = "A very robust backpack." + desc = "It's a very robust backpack." icon_state = "securitypack" /obj/item/weapon/storage/backpack/satchel - name = "Satchel" - desc = "A very robust satchel to wear on your back." + name = "satchel" + desc = "It's a very robust satchel to wear on your back." icon_state = "satchel" + New() + ..() + /obj/item/weapon/storage/backpack/bandolier - name = "Bandolier" - desc = "A very old bandolier to wear on your back." + name = "bandolier" + desc = "It's a very old bandolier to wear on your back." icon_state = "bandolier" /obj/item/weapon/storage/backpack/medicalsatchel @@ -122,7 +142,7 @@ /obj/item/weapon/storage/backpack/industrial name = "industrial backpack" - desc = "A tough backpack for the daily grind" + desc = "It's a tough backpack for the daily grind of station life." icon_state = "engiepack" /obj/item/weapon/storage/backpack/industrial/full @@ -174,7 +194,7 @@ /obj/item/weapon/storage/briefcase name = "briefcase" - desc = "Used by the lawyer in the court room." + desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional." icon_state = "briefcase" flags = FPRINT | TABLEPASS| CONDUCT force = 8.0 @@ -184,24 +204,90 @@ max_w_class = 3 max_combined_w_class = 16 +/obj/item/weapon/storage/wallet + name = "wallet" + desc = "It can hold a few small and personal things." + storage_slots = 4 + icon_state = "wallet" + can_hold = list( + "/obj/item/weapon/spacecash", + "/obj/item/weapon/card", + "/obj/item/clothing/mask/cigarette", + "/obj/item/device/flashlight/pen", + "/obj/item/seeds", + "/obj/item/stack/medical", + "/obj/item/toy/crayon", + "/obj/item/weapon/coin", + "/obj/item/weapon/dice", + "/obj/item/weapon/disk", + "/obj/item/weapon/implanter", + "/obj/item/weapon/lighter", + "/obj/item/weapon/match", + "/obj/item/weapon/paper", + "/obj/item/weapon/pen", + "/obj/item/weapon/photo", + "/obj/item/weapon/reagent_containers/dropper", + "/obj/item/weapon/screwdriver", + "/obj/item/weapon/stamp") + + attackby(obj/item/A as obj, mob/user as mob) + ..() + update_icon() + return + + update_icon() + for(var/obj/item/weapon/card/id/ID in contents) + if(ID.icon_state == "gold") + icon_state = "walletid_gold" + return + else if(ID.icon_state == "id") + icon_state = "walletid" + return + icon_state = "wallet" + + + + proc/get_id() + for(var/obj/item/weapon/card/id/ID in contents) + if(istype(ID)) + return ID + +/obj/item/weapon/storage/wallet/random/New() + ..() + var/item1_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500) + var/item2_type + if(prob(50)) + item2_type = pick( /obj/item/weapon/spacecash/c10,/obj/item/weapon/spacecash/c100,/obj/item/weapon/spacecash/c1000,/obj/item/weapon/spacecash/c20,/obj/item/weapon/spacecash/c200,/obj/item/weapon/spacecash/c50, /obj/item/weapon/spacecash/c500) + var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron ) + + spawn(2) + if(item1_type) + new item1_type(src) + if(item2_type) + new item2_type(src) + if(item3_type) + new item3_type(src) + + /obj/item/weapon/storage/disk_kit - name = "data disks" - desc = "For disks." + name = "box of data disks" + desc = "It has a picture of a data disk on it." icon_state = "id" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/disk_kit/disks /obj/item/weapon/storage/disk_kit/disks2 /obj/item/weapon/storage/fcard_kit - name = "Fingerprint Cards" - desc = "This contains cards which are used to take fingerprints." + name = "box of fingerprint cards" + desc = "It has a picture of a fingerprint on each of its faces." icon_state = "id" item_state = "syringe_kit" /obj/item/weapon/storage/firstaid - name = "First-Aid" + name = "first-aid kit" desc = "In case of injury." icon_state = "firstaid" throw_speed = 2 @@ -209,7 +295,7 @@ var/empty = 0 /obj/item/weapon/storage/firstaid/fire - name = "Fire First Aid" + name = "fire first-aid kit" desc = "Contains burn treatments." icon_state = "ointment" item_state = "firstaid-ointment" @@ -240,60 +326,78 @@ desc = "WARNING: Do not use without reading these preautions!\nThese devices are extremely dangerous and can cause blindness or deafness if used incorrectly.\nThe chemicals contained in these devices have been tuned for maximal effectiveness and due to\nextreme safety precuaiotn shave been incased in a tamper-proof pack. DO NOT ATTEMPT TO OPEN\nFLASH WARNING: Do not use continually. Excercise extreme care when detonating in closed spaces.\n\tMake attemtps not to detonate withing range of 2 meters of the intended target. It is imperative\n\tthat the targets visit a medical professional after usage. Damage to eyes increases extremely per\n\tuse and according to range. Glasses with flash resistant filters DO NOT always work on high powered\n\tflash devices such as this. EXERCISE CAUTION REGARDLESS OF CIRCUMSTANCES\nSOUND WARNING: Do not use continually. Visit a medical professional if hearing is lost.\n\tThere is a slight chance per use of complete deafness. Exercise caution and restraint.\nSTUN WARNING: If the intended or unintended target is too close to detonation the resulting sound\n\tand flash have been known to cause extreme sensory overload resulting in temporary\n\tincapacitation.\nDO NOT USE CONTINUALLY\nOperating Directions:\n\t1. Pull detonnation pin. ONCE THE PIN IS PULLED THE GRENADE CAN NOT BE DISARMED!\n\t2. Throw grenade. NEVER HOLD A LIVE FLASHBANG\n\t3. The grenade will detonste 10 seconds hafter being primed. EXCERCISE CAUTION\n\t-Never prime another grenade until after the first is detonated\nNote: Usage of this pyrotechnic device without authorization is an extreme offense and can\nresult in severe punishment upwards of 10 years in prison per use.\n\nDefault 3 second wait till from prime to detonation. This can be switched with a screwdriver\nto 10 seconds.\n\nCopyright of Nanotrasen Industries- Military Armnaments Division\nThis device was created by Nanotrasen Labs a member of the Expert Advisor Corporation" icon_state = "flashbang" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/emp_kit name = "emp grenades" desc = "A box with 5 emp grenades." icon_state = "flashbang" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/gl_kit name = "Prescription Glasses" - desc = "This box contains vision correcting glasses." + desc = "This box contains nerd glasses." icon_state = "glasses" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + +/obj/item/weapon/storage/seccart_kit + name = "Spare R.O.B.U.S.T. Cartridges" + desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." + icon = 'pda.dmi' + icon_state = "pdabox" + item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/handcuff_kit name = "Spare Handcuffs" desc = "A box full of handcuffs." icon_state = "handcuff" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/id_kit name = "Spare IDs" - desc = "Has so many blank IDs." + desc = "Has many empty IDs." icon_state = "id" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/lglo_kit name = "Latex Gloves" desc = "Contains white gloves." icon_state = "latex" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/injectbox name = "DNA-Injectors" - desc = "This box contains injectors, it seems." + desc = "This box contains injectors it seems." icon_state = "box" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/stma_kit name = "Sterile Masks" desc = "This box contains masks of +2 constitution." //I made it better. --SkyMarshal icon_state = "mask" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/trackimp_kit name = "Tracking Implant Kit" - desc = "Box full of tracking utensils." + desc = "Box full of tracking implants." icon_state = "implant" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/chemimp_kit name = "Chemical Implant Kit" desc = "Box of stuff used to implant chemicals." icon_state = "implant" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/deathalarm_kit name = "Death Alarm Kit" @@ -351,6 +455,7 @@ /obj/item/weapon/storage/toolbox/electrical name = "electrical toolbox" + desc = "A toolbox for holding tools about electronics." icon_state = "yellow" item_state = "toolbox_yellow" @@ -362,7 +467,7 @@ item_state = "syringe_kit" /obj/item/weapon/storage/toolbox/syndicate - name = "Suspicious looking toolbox" + name = "suspicious looking toolbox" desc = "You have no idea what this is." icon_state = "syndicate" item_state = "toolbox_syndi" @@ -403,25 +508,28 @@ icon_state ="koran" /obj/item/weapon/storage/mousetraps - name = "Pest-B-Gon Mousetraps" - desc = "WARNING: Keep out of reach of children." + name = "box of Pest-B-Gon Mousetraps" + desc = "WARNING: Keep out of reach of children." icon_state = "mousetraps" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/donkpocket_kit - name = "Donk-Pockets" - desc = "Remember to fully heat prior to serving. Product will cool if not eaten within seven minutes." + name = "box of donk-pockets" + desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donk_kit" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/condimentbottles - name = "Condiment Bottles" - desc = "A box of empty condiment bottles." + name = "box of condiment bottles" + desc = "It has a large ketchup smear on it." icon_state = "box" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/drinkingglasses - name = "Drinking Glasses" - desc = "A box of clean drinking glasses" + name = "box of drinking glasses" + desc = "It has a picture of drinking glasses on it." icon_state = "box" - item_state = "syringe_kit" \ No newline at end of file + item_state = "syringe_kit" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e85363a5cbc..5dd7473fe87 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -3,7 +3,7 @@ icon = 'weapons.dmi' /obj/item/weapon/offhand - name = "Offhand" + name = "offhand" var/linked_weapon_name = "" w_class = 5.0 icon_state = "offhand" @@ -13,7 +13,7 @@ /obj/item/weapon/shield/riot name = "riot shield" - desc = "A shield adept at blocking blunt objects." + desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." icon = 'weapons.dmi' icon_state = "riot" flags = FPRINT | TABLEPASS| CONDUCT| ONBACK @@ -29,15 +29,28 @@ IsShield() return 1 -/*/obj/item/weapon/sord - name = "SORD" + +/obj/item/weapon/nullrod + name = "null rod" + desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of Nar-Sie's followers." + icon_state = "nullrod" + item_state = "nullrod" + flags = FPRINT | ONBELT | TABLEPASS + force = 15 + throw_speed = 1 + throw_range = 4 + throwforce = 10 + w_class = 1 + +/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" flags = FPRINT | ONBELT | TABLEPASS force = 2 throwforce = 1 - w_class = 3 */ + w_class = 3 /obj/item/weapon/claymore name = "claymore" @@ -47,7 +60,7 @@ flags = FPRINT | ONBELT | TABLEPASS force = 40 throwforce = 10 - w_class = 3.0 + w_class = 3 IsShield() return 1 @@ -68,7 +81,7 @@ origin_tech = "materials=2" /obj/item/weapon/rsf - name = "Rapid-Service-Fabricator (RSF)" + name = "\improper Rapid-Service-Fabricator" desc = "A device used to rapidly deploy service items." icon = 'items.dmi' icon_state = "rcd" @@ -81,7 +94,7 @@ w_class = 3.0 /obj/item/weapon/rsp - name = "Rapid-Seed-Producer (RSP)" + name = "\improper Rapid-Seed-Producer" desc = "A device used to rapidly deploy seeds." icon = 'items.dmi' icon_state = "rcd" @@ -94,7 +107,7 @@ w_class = 3.0 /obj/item/weapon/rcd_ammo - name = "Compressed matter cartridge" + name = "compressed matter cartridge" desc = "Highly compressed matter for the RCD." icon = 'ammo.dmi' icon_state = "rcd" @@ -108,12 +121,13 @@ var/ammo = 10 /obj/item/weapon/rcd_ammo/large - name = "Super compressed matter cartridge" + name = "super compressed matter cartridge" ammo = 30 /obj/item/weapon/spacecash - name = "Space Cash" - desc = "You're rich, bitch!" + name = "space cash" + desc = "It's worth 1 credit." + gender = PLURAL icon = 'items.dmi' icon_state = "spacecash" opacity = 0 @@ -130,25 +144,31 @@ /obj/item/weapon/spacecash/c10 icon_state = "spacecash10" access = access_crate_cash + desc = "It's worth 10 credits." /obj/item/weapon/spacecash/c20 icon_state = "spacecash20" access = access_crate_cash + desc = "It's worth 20 credits." /obj/item/weapon/spacecash/c50 icon_state = "spacecash50" access = access_crate_cash + desc = "It's worth 50 credits." /obj/item/weapon/spacecash/c100 icon_state = "spacecash100" access = access_crate_cash + desc = "It's worth 100 credits." /obj/item/weapon/spacecash/c200 icon_state = "spacecash200" access = access_crate_cash + desc = "It's worth 200 credits." /obj/item/weapon/spacecash/c500 icon_state = "spacecash500" access = access_crate_cash + desc = "It's worth 500 credits." /obj/item/weapon/spacecash/c1000 icon_state = "spacecash1000" access = access_crate_cash - + desc = "It's worth 1000 credits." /obj/item/device/mass_spectrometer desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." @@ -174,8 +194,8 @@ origin_tech = "magnets=4;biotech=2" /obj/item/weapon/melee/baton - name = "Stun Baton" - desc = "The police baton of the future." + name = "stun baton" + desc = "A stun baton for hitting people with." icon_state = "stunbaton" item_state = "baton" flags = FPRINT | ONBELT | TABLEPASS @@ -187,8 +207,8 @@ var/status = 0 origin_tech = "combat=2" -/*/obj/item/weapon/melee/chainofcommand - name = "Chain of Command" +/obj/item/weapon/melee/chainofcommand + name = "chain of command" desc = "The Captain is first and all other heads are last." icon_state = "chainofcommand" item_state = "chainofcommand" @@ -199,13 +219,13 @@ var/charges = 50.0 var/maximum_charges = 50.0 var/status = 1 - origin_tech = "combat=4" */ + origin_tech = "combat=4" /obj/item/weapon/melee/energy var/active = 0 /obj/item/weapon/melee/energy/axe - name = "Axe" + name = "energy axe" desc = "An energised battle axe." icon_state = "axe0" force = 40.0 @@ -219,7 +239,7 @@ /obj/item/weapon/melee/energy/sword var/color name = "energy sword" - desc = "It cuts AND cooks at the same time!." + desc = "May the force be within you." icon_state = "sword0" force = 3.0 throwforce = 5.0 @@ -252,7 +272,7 @@ var/datum/effect/effect/system/spark_spread/spark_system /obj/item/weapon/bananapeel - name = "Banana Peel" + name = "banana peel" desc = "A peel from a banana." icon = 'items.dmi' icon_state = "banana_peel" @@ -263,8 +283,9 @@ throw_range = 20 /obj/item/weapon/soap - name = "Soap" + name = "soap" desc = "A cheap bar of soap. Doesn't smell." + gender = PLURAL icon = 'items.dmi' icon_state = "soap" w_class = 1.0 @@ -362,7 +383,7 @@ color = "brown" /obj/item/weapon/bikehorn - name = "Bike Horn" + name = "bike horn" desc = "A horn off of a bicycle." icon = 'items.dmi' icon_state = "bike_horn" @@ -404,6 +425,7 @@ /obj/item/stack/medical/ointment name = "ointment" desc = "Used to treat those nasty burns." + gender = PLURAL singular_name = "ointment" icon_state = "ointment" heal_burn = 40 @@ -452,6 +474,92 @@ w_class = 2.0 origin_tech = "magnets=1" +/obj/item/weapon/card + name = "card" + desc = "Does card things." + icon = 'card.dmi' + w_class = 1.0 + + var/list/files = list( ) + +/obj/item/weapon/card/data + name = "data disk" + desc = "A disk of data." + icon_state = "data" + var/function = "storage" + var/data = "null" + var/special = null + item_state = "card-id" + +/obj/item/weapon/card/data/clown + name = "coordinates to clown planet" + icon_state = "data" + item_state = "card-id" + layer = 3 + level = 2 + desc = "This card contains coordinates to the fabled Clown Planet. Handle with care." + function = "teleporter" + data = "Clown Land" + +/obj/item/weapon/card/emag + desc = "An identification card. Seems to have some funny chip on it, though." + name = "modified identification card" + icon_state = "emag" + item_state = "card-id" + origin_tech = "magnets=2;syndicate=2" + var/uses = 5 + +/obj/item/weapon/card/id + name = "identification card" + desc = "An identification card. No shit." + icon_state = "id" + item_state = "card-id" + var/access = list() + var/registered = null + var/assignment = null +// var/obj/item/weapon/photo/PHOTO = null + var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit + var/dorm = 0 // determines if this ID has claimed a dorm already + +/obj/item/weapon/card/id/gold + name = "identification card" + desc = "A golden card which shows power and might." + icon_state = "gold" + item_state = "gold_id" + +/obj/item/weapon/card/id/syndicate + name = "agent card" + desc = "Shhhhh." + access = list(access_maint_tunnels) + origin_tech = "syndicate=3" + +/obj/item/weapon/card/id/syndicate_command + name = "syndicate ID card" + desc = "An ID straight from the Syndicate." + registered = "Syndicate" + assignment = "Syndicate Overlord" + access = list(access_syndicate) + +/obj/item/weapon/card/id/captains_spare + name = "captain's spare ID" + desc = "The spare ID of the High Lord himself." + icon_state = "gold" + item_state = "gold_id" + registered = "Captain" + assignment = "Captain" + New() + access = get_access("Captain") + ..() + +/obj/item/weapon/card/id/centcom + name = "\improper CentCom. ID" + desc = "An ID straight from Cent. Com." + icon_state = "centcom" + registered = "Central Command" + assignment = "General" + New() + access = get_all_centcom_access() + ..() /obj/item/weapon/cleaner desc = "A chemical that cleans messes." @@ -586,7 +694,7 @@ /obj/item/weapon/fireaxe // DEM AXES MAN, marker -Agouri icon_state = "fireaxe0" - name = "Fire axe" + name = "fire axe" desc = "A tool for breaking down those obstructions that stop you from fighting that fire." //Less ROBUST. --SkyMarshal force = 5 w_class = 4.0 @@ -616,7 +724,7 @@ icon = 'items.dmi' /obj/item/weapon/disk/nuclear - name = "Nuclear Authentication Disk" + name = "nuclear authentication disk" desc = "Better keep this safe, it can activate the nuke." icon_state = "nucleardisk" item_state = "card-id" @@ -646,7 +754,7 @@ m_amt = 90 /obj/item/weapon/f_card - name = "Finger Print Card" + name = "finger print card" desc = "Used to take fingerprints." icon = 'card.dmi' icon_state = "fingerprint0" @@ -659,7 +767,7 @@ /obj/item/weapon/fcardholder - name = "Finger Print Case" + name = "fingerprint card case" desc = "Holds fingerprint cards." icon = 'items.dmi' icon_state = "fcardholder0" @@ -726,6 +834,7 @@ /obj/item/weapon/handcuffs name = "handcuffs" desc = "Use this to keep prisoners in line." + gender = PLURAL icon = 'items.dmi' icon_state = "handcuff" flags = FPRINT | TABLEPASS | CONDUCT | ONBELT @@ -786,6 +895,10 @@ w_class = 2.0 flags = FPRINT | TABLEPASS +/obj/item/weapon/caution/cone + desc = "This cone is trying to warn you of something!" + name = "warning cone" + icon_state = "cone" /obj/item/weapon/paper name = "Paper" @@ -801,7 +914,7 @@ var/list/stamped var/see_face = 1 var/body_parts_covered = HEAD - protective_temperature = T0C + 10 + var/protective_temperature = 0 var/heat_transfer_coefficient = 0.99 var/gas_transfer_coefficient = 1 var/permeability_coefficient = 0.99 @@ -809,7 +922,8 @@ var/iteration /obj/item/weapon/directions - name = "Crumpled Paper" + name = "crumpled paper" + gender = PLURAL desc = "This is a crumpled piece of paper." icon = 'weapons.dmi' icon_state = "crumpled" @@ -823,7 +937,7 @@ name = "paper - 'Judgement'" info = "For crimes against the station, the offender is sentenced to:
\n
\n" -/obj/item/weapon/paper/certificate //What is this? -Kaleb702 +/obj/item/weapon/paper/certificate name = "paper - 'Certificate'" info = "Due to this person's unique actions in the past, we hereby certify that they are \"Totally Radical\"

----Central Command
This paper has been stamped with the central command rubber stamp.
" stamped = list(/obj/item/weapon/stamp/centcom) @@ -895,8 +1009,8 @@ name = "multicolor pen" /obj/item/weapon/banhammer - desc = "A banhammer." - name = "Banhammer" + desc = "A banhammer" + name = "banhammer" icon = 'items.dmi' icon_state = "toyhammer" flags = FPRINT | ONBELT | TABLEPASS @@ -924,8 +1038,8 @@ m_amt = 3750 /obj/item/weapon/rubber_chicken - name = "Rubber Chicken" - desc = "A rubber chicken. Isn't that hilarious?" + name = "rubber chicken" + desc = "A rubber chicken, isn't that hilarious?" icon = 'items.dmi' icon_state = "rubber_chicken" item_state = "rubber_chicken" @@ -933,7 +1047,7 @@ /obj/item/weapon/screwdriver name = "screwdriver" - desc = "You can be totally screwy with this." + desc = "Used for screwing." icon = 'items.dmi' icon_state = "screwdriver" flags = FPRINT | TABLEPASS| CONDUCT @@ -956,9 +1070,28 @@ item_state = "shard-glass" g_amt = 3750 -/obj/item/weapon/SWF_uplink +/*/obj/item/weapon/syndicate_uplink name = "station bounced radio" - desc = "Used to communicate it appears." + desc = "Remain silent about this..." + icon = 'radio.dmi' + icon_state = "radio" + var/temp = null + var/uses = 10.0 + var/selfdestruct = 0.0 + var/traitor_frequency = 0.0 + var/mob/currentUser = null + var/obj/item/device/radio/origradio = null + flags = FPRINT | TABLEPASS | CONDUCT | ONBELT + w_class = 2.0 + item_state = "radio" + throw_speed = 4 + throw_range = 20 + m_amt = 100 + origin_tech = "magnets=2;syndicate=3"*/ + +/obj/item/weapon/SWF_uplink + name = "station-bounced radio" + desc = "used to comunicate it appears." icon = 'radio.dmi' icon_state = "radio" var/temp = null @@ -988,6 +1121,7 @@ var/temp = null var/spell_type = "verb" var/max_uses = 5 + var/op = 1 /obj/item/weapon/spellbook/object_type_spells //used for giving out object spells as opposed to verb spells spell_type = "object" @@ -1021,6 +1155,7 @@ /obj/item/weapon/table_parts name = "table parts" desc = "Parts of a table. Poor table." + gender = PLURAL icon = 'items.dmi' icon_state = "table_parts" m_amt = 3750 @@ -1041,7 +1176,7 @@ flags = null /obj/item/weapon/teleportation_scroll - name = "Teleportation Scroll" + name = "scroll of teleportation" desc = "A scroll for moving around." icon = 'wizard.dmi' icon_state = "scroll" @@ -1092,7 +1227,7 @@ var/minor_fault = 0 //If not 100% reliable, it will build up faults. /obj/item/weapon/cell/crap - name = "Nanotrasen Brand Rechargable AA Battery" + name = "\improper NanoTrasen Brand Rechargable AA Battery" desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT origin_tech = "powerstorage=0" maxcharge = 500 @@ -1106,7 +1241,7 @@ /obj/item/weapon/cell/super name = "super-capacity power cell" - origin_tech = "powerstorage=3" + origin_tech = "powerstorage=5" maxcharge = 20000 g_amt = 70 @@ -1125,7 +1260,7 @@ return 1 /*/obj/item/weapon/cell/potato - name = "Potato Battery" // This needs more Portal 2 refs. -Kaleb702 + name = "Potato Battery" desc = "A rechargable starch based power cell." icon = 'harvest.dmi' icon_state = "potato_battery" @@ -1147,7 +1282,7 @@ for (var/obj/machinery/camera/C in cameras) friendly_cameras.Add(C.c_tag) - var/target = input("Select the camera to observe.", null) as null|anything in friendly_cameras + var/target = input("Select the camera to observe", null) as null|anything in friendly_cameras if (!target) return for (var/obj/machinery/camera/C in cameras) @@ -1180,7 +1315,7 @@ g_amt = 50 /obj/item/weapon/module/id_auth - name = "ID authentication module" + name = "\improper ID authentication module" icon_state = "id_mod" desc = "A module allowing secure authorization of ID cards." @@ -1228,7 +1363,7 @@ w_class = 3.0 /obj/item/weapon/kitchenknife - name = "Kitchen knife" + name = "kitchen knife" icon = 'kitchen.dmi' icon_state = "knife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." @@ -1242,7 +1377,7 @@ origin_tech = "materials=1" /obj/item/weapon/butch - name = "Butcher's Cleaver" + name = "butcher's cleaver" icon = 'kitchen.dmi' icon_state = "butch" desc = "A huge thing used for chopping and chopping up meat." @@ -1256,10 +1391,10 @@ origin_tech = "materials=1" /obj/item/weapon/tray - name = "Tray" + name = "tray" icon = 'food.dmi' icon_state = "tray" - desc = "A plastic tray to lay food on." + desc = "A tray to lay food on." throwforce = 12.0 throwforce = 10.0 throw_speed = 1 @@ -1371,7 +1506,7 @@ name = "circular saw" desc = "For heavy duty cutting." icon = 'surgery.dmi' - icon_state = "saw" + icon_state = "saw3" flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 1.0 @@ -1392,7 +1527,7 @@ origin_tech = "materials=1;biotech=1" /obj/item/weapon/syntiflesh - name = "Syntiflesh" + name = "syntiflesh" desc = "Meat that appears...strange..." icon = 'food.dmi' icon_state = "meat" @@ -1400,6 +1535,20 @@ w_class = 1.0 origin_tech = "biotech=2" +/obj/item/weapon/hatchet + name = "hatchet" + desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." + icon = 'weapons.dmi' + icon_state = "hatchet" + flags = FPRINT | TABLEPASS | CONDUCT + force = 12.0 + w_class = 1.0 + throwforce = 15.0 + throw_speed = 4 + throw_range = 4 + m_amt = 15000 + origin_tech = "materials=2;combat=1" + /obj/item/weapon/stamp desc = "A rubber stamp for stamping important documents." name = "rubber stamp" @@ -1499,8 +1648,17 @@ name = "d6" desc = "A dice with six sides." var/sides = 6 - icon_state = "dice" - item_state = "dice" + icon = 'dice.dmi' + icon_state = "d66" + +/obj/item/weapon/dice/New() + icon_state = "[name][rand(sides)]" + +/obj/item/weapon/dice/d20 // -- TLE + name = "d20" + desc = "A dice with twenty sides." + sides = 20 + icon_state = "d2020" /obj/item/weapon/dice/d8 // -- SkyMarshal name = "d8" @@ -1515,14 +1673,6 @@ sides = 12 icon_state = "d20" item_state = "dice" - -/obj/item/weapon/dice/d20 // -- TLE - name = "d20" - desc = "A dice with...hell, that is a lot of sides." - sides = 20 - icon_state = "d20" - item_state = "dice" - /obj/item/weapon/pai_cable desc = "A flexible coated cable with a universal jack on one end." desc = "Some spacey cable." @@ -1532,8 +1682,9 @@ var/obj/machinery/machine /obj/item/weapon/plastique - name = "Plastic Explosives" + name = "plastic explosives" desc = "Used to put holes in specific areas without too much extra hole." + gender = PLURAL icon = 'assemblies.dmi' icon_state = "plastic-explosive0" item_state = "plasticx" @@ -1548,6 +1699,7 @@ /obj/item/weapon/stock_parts name = "stock part" desc = "What?" + gender = PLURAL icon = 'stock_parts.dmi' w_class = 2.0 var/rating = 1 @@ -1558,14 +1710,14 @@ //Rank 1 /obj/item/weapon/stock_parts/console_screen - name = "Console Screen" + name = "console screen" desc = "Used in the construction of computers and other devices with a interactive console." icon_state = "screen" origin_tech = "materials=1" g_amt = 200 /obj/item/weapon/stock_parts/capacitor - name = "Capacitor" + name = "capacitor" desc = "A basic capacitor used in the construction of a variety of devices." icon_state = "capacitor" origin_tech = "powerstorage=1" @@ -1573,7 +1725,7 @@ g_amt = 50 /obj/item/weapon/stock_parts/scanning_module - name = "Scanning Module" + name = "scanning module" desc = "A compact, high resolution scanning module used in the construction of certain devices." icon_state = "scan_module" origin_tech = "magnets=1" @@ -1581,14 +1733,14 @@ g_amt = 20 /obj/item/weapon/stock_parts/manipulator - name = "Micro-Manipulator" + name = "micro-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "micro_mani" origin_tech = "materials=1;programming=1" m_amt = 30 /obj/item/weapon/stock_parts/micro_laser - name = "Micro-laser" + name = "micro-laser" desc = "A tiny laser used in certain devices." icon_state = "micro_laser" origin_tech = "magnets=1" @@ -1596,7 +1748,7 @@ g_amt = 20 /obj/item/weapon/stock_parts/matter_bin - name = "Matter Bin" + name = "matter bin" desc = "A container for hold compressed matter awaiting re-construction." icon_state = "matter_bin" origin_tech = "materials=1" @@ -1605,7 +1757,7 @@ //Rank 2 /obj/item/weapon/stock_parts/capacitor/adv - name = "Advanced Capacitor" + name = "advanced capacitor" desc = "An advanced capacitor used in the construction of a variety of devices." origin_tech = "powerstorage=3" rating = 2 @@ -1613,7 +1765,7 @@ g_amt = 50 /obj/item/weapon/stock_parts/scanning_module/adv - name = "Advanced Scanning Module" + name = "advanced scanning module" desc = "A compact, high resolution scanning module used in the construction of certain devices." icon_state = "scan_module" origin_tech = "magnets=3" @@ -1622,7 +1774,7 @@ g_amt = 20 /obj/item/weapon/stock_parts/manipulator/nano - name = "Nano-Manipulator" + name = "nano-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "micro_mani" origin_tech = "materials=3,programming=2" @@ -1630,7 +1782,7 @@ m_amt = 30 /obj/item/weapon/stock_parts/micro_laser/high - name = "High-Power Micro-laser" + name = "high-power micro-laser" desc = "A tiny laser used in certain devices." icon_state = "micro_laser" origin_tech = "magnets=3" @@ -1639,7 +1791,7 @@ g_amt = 20 /obj/item/weapon/stock_parts/matter_bin/adv - name = "Advanced Matter Bin" + name = "advanced matter bin" desc = "A container for hold compressed matter awaiting re-construction." icon_state = "matter_bin" origin_tech = "materials=3" @@ -1649,7 +1801,7 @@ //Rating 3 /obj/item/weapon/stock_parts/capacitor/super - name = "Super Capacitor" + name = "super capacitor" desc = "A super-high capacity capacitor used in the construction of a variety of devices." origin_tech = "powerstorage=5;materials=4" rating = 3 @@ -1657,7 +1809,7 @@ g_amt = 50 /obj/item/weapon/stock_parts/scanning_module/phasic - name = "Phasic Scanning Module" + name = "phasic scanning module" desc = "A compact, high resolution phasic scanning module used in the construction of certain devices." origin_tech = "magnets=5" rating = 3 @@ -1665,14 +1817,14 @@ g_amt = 20 /obj/item/weapon/stock_parts/manipulator/pico - name = "Pico-Manipulator" + name = "pico-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." origin_tech = "materials=5,programming=2" rating = 3 m_amt = 30 /obj/item/weapon/stock_parts/micro_laser/ultra - name = "Ultra-High-Power Micro-laser" + name = "ultra-high-power micro-laser" desc = "A tiny laser used in certain devices." origin_tech = "magnets=5" rating = 3 @@ -1680,7 +1832,7 @@ g_amt = 20 /obj/item/weapon/stock_parts/matter_bin/super - name = "Super Matter Bin" + name = "super matter bin" desc = "A container for hold compressed matter awaiting re-construction." origin_tech = "materials=5" rating = 3 @@ -1689,7 +1841,7 @@ // Subspace stock parts /obj/item/weapon/stock_parts/subspace/ansible - name = "Subspace Ansible" + name = "subspace ansible" icon_state = "subspace_ansible" desc = "A compact module capable of sensing extradimensional activity." origin_tech = "programming=3;magnets=5;materials=4;bluespace=2" @@ -1697,7 +1849,7 @@ g_amt = 10 /obj/item/weapon/stock_parts/subspace/filter - name = "Hyperwave Filter" + name = "hyperwave filter" icon_state = "hyperwave_filter" desc = "A tiny device capable of filtering and converting super-intense radiowaves." origin_tech = "programming=4;magnets=2" @@ -1705,7 +1857,7 @@ g_amt = 10 /obj/item/weapon/stock_parts/subspace/amplifier - name = "Subspace Amplifier" + name = "subspace amplifier" icon_state = "subspace_amplifier" desc = "A compact micro-machine capable of amplifying weak subspace transmissions." origin_tech = "programming=3;magnets=4;materials=4;bluespace=2" @@ -1713,7 +1865,7 @@ g_amt = 10 /obj/item/weapon/stock_parts/subspace/treatment - name = "Subspace Treatment Disk" + name = "subspace treatment disk" icon_state = "treatment_disk" desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." origin_tech = "programming=3;magnets=2;materials=5;bluespace=2" @@ -1721,7 +1873,7 @@ g_amt = 10 /obj/item/weapon/stock_parts/subspace/analyzer - name = "Subspace Wavelength Analyzer" + name = "subspace wavelength analyzer" icon_state = "wavelength_analyzer" desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths." origin_tech = "programming=3;magnets=4;materials=4;bluespace=2" @@ -1729,15 +1881,22 @@ g_amt = 10 /obj/item/weapon/stock_parts/subspace/crystal - name = "Ansible Crystal" + name = "ansible crystal" icon_state = "ansible_crystal" desc = "A crystal made from pure glass used to transmit laser databursts to subspace." origin_tech = "magnets=4;materials=4;bluespace=2" g_amt = 50 /obj/item/weapon/stock_parts/subspace/transmitter - name = "Subspace Transmitter" + name = "subspace transmitter" icon_state = "subspace_transmitter" desc = "A large piece of equipment used to open a window into the subspace dimension." origin_tech = "magnets=5;materials=5;bluespace=3" - m_amt = 50 \ No newline at end of file + m_amt = 50 + +/obj/item/weapon/ectoplasm + name = "ectoplasm" + desc = "spooky" + gender = PLURAL + icon = 'wizard.dmi' + icon_state = "ectoplasm" diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index da42f65d22a..ae795db135e 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -820,6 +820,8 @@ Turf and target are seperate in case you want to teleport some distance from a t mob_list.Add(M) for(var/mob/living/carbon/metroid/M in world) mob_list.Add(M) + for(var/mob/living/simple_animal/M in world) + mob_list.Add(M) // for(var/mob/living/silicon/hivebot/M in world) // mob_list.Add(M) // for(var/mob/living/silicon/hive_mainframe/M in world) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index ca9cc5a53e2..4c9414c3a08 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -6,14 +6,14 @@ name = "changeling" config_tag = "changeling" restricted_jobs = list("AI", "Cyborg") - required_players = 1 + required_players = 15 required_enemies = 1 + recommended_enemies = 4 uplink_welcome = "Syndicate Uplink Console:" uplink_uses = 10 var - changeling_amount const prob_int_murder_target = 50 // intercept names the assassination target half the time prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target @@ -35,16 +35,18 @@ waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/const/scaling_coeff = 10.0 //how many players per changeling + const/changeling_amount = 4 /datum/game_mode/changeling/announce() world << "The current game mode is - Changeling!" world << "There are alien changelings on the station. Do not let the changelings succeed!" /datum/game_mode/changeling/pre_setup() - var/list/datum/mind/possible_changelings = get_players_for_role(BE_CHANGELING) - changeling_amount = max(1, round( num_players() / scaling_coeff) + 1) + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + var/list/datum/mind/possible_changelings = get_players_for_role(BE_CHANGELING) for(var/datum/mind/player in possible_changelings) for(var/job in restricted_jobs)//Removing robots from the list @@ -184,8 +186,10 @@ for(var/datum/objective/objective in changeling.objectives) if(objective.check_completion()) world << "Objective #[count]: [objective.explanation_text] \green Success" + feedback_add_details("changeling_objective","[objective.type]|SUCCESS") else world << "Objective #[count]: [objective.explanation_text] \red Failed" + feedback_add_details("changeling_objective","[objective.type]|FAIL") changelingwin = 0 count++ @@ -195,8 +199,10 @@ if(changelingwin) world << "The changeling was successful!" + feedback_add_details("changeling_success","SUCCESS") else world << "The changeling has failed!" + feedback_add_details("changeling_success","FAIL") return 1 /datum/changeling //stores changeling powers, changeling recharge thingie, changeling absorbed DNA and changeling ID (for changeling hivemind) @@ -204,11 +210,17 @@ var/list/absorbed_dna = list() var/changeling_fakedeath = 0 var/chem_charges = 20.00 + var/chem_recharge_multiplier = 1 + var/chem_storage = 50 var/sting_range = 1 var/changelingID = "none" var/mob/living/host = null var/geneticdamage = 0.0 var/isabsorbing = 0 + var/geneticpoints = 5 + var/purchasedpowers = list() + + /datum/changeling/New() ..() diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 89eff7a2890..3f3967ae194 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -2,14 +2,21 @@ if(!changeling) changeling = new changeling.host = src - src.verbs += /client/proc/changeling_lesser_transform - src.verbs += /client/proc/changeling_fakedeath + src.verbs += /datum/changeling/proc/EvolutionMenu + for(var/obj/effect/proc_holder/power/P in changeling.purchasedpowers) + if(P.isVerb) + if(P.allowduringlesserform) + if(!(P in src.verbs)) + src.verbs += P.verbpath + +/* src.verbs += /client/proc/changeling_fakedeath + src.verbs += /client/proc/changeling_lesser_transform src.verbs += /client/proc/changeling_blind_sting src.verbs += /client/proc/changeling_deaf_sting src.verbs += /client/proc/changeling_silence_sting src.verbs += /client/proc/changeling_unfat_sting - +*/ changeling.changeling_level = 1 return @@ -17,6 +24,14 @@ if(!changeling) changeling = new changeling.host = src + src.verbs += /datum/changeling/proc/EvolutionMenu + + for(var/obj/effect/proc_holder/power/P in changeling.purchasedpowers) + if(P.isVerb) + if(!(P in src.verbs)) + src.verbs += P.verbpath + +/* src.verbs += /client/proc/changeling_absorb_dna src.verbs += /client/proc/changeling_transform src.verbs += /client/proc/changeling_lesser_form @@ -30,6 +45,7 @@ src.verbs += /client/proc/changeling_unfat_sting src.verbs += /client/proc/changeling_boost_range +*/ changeling.changeling_level = 2 if (!changeling.absorbed_dna) changeling.absorbed_dna = list() @@ -43,6 +59,11 @@ return /mob/proc/remove_changeling_powers() + + for(var/obj/effect/proc_holder/power/P in changeling.purchasedpowers) + if(P.isVerb) + src.verbs -= P.verbpath +/* src.verbs -= /client/proc/changeling_absorb_dna src.verbs -= /client/proc/changeling_transform src.verbs -= /client/proc/changeling_lesser_form @@ -55,7 +76,7 @@ src.verbs -= /client/proc/changeling_boost_range src.verbs -= /client/proc/changeling_transformation_sting src.verbs -= /client/proc/changeling_unfat_sting - +*/ /client/proc/changeling_absorb_dna() set category = "Changeling" set name = "Absorb DNA" @@ -79,8 +100,8 @@ usr << "\red This creature is not compatible with our biology." return - if (M.mutations & HUSK) - usr << "\red This creature has already been drained!" + if (M.mutations & NOCLONE) + usr << "\red This creature's DNA is ruined beyond useability!" return if (!G.killing) @@ -127,20 +148,40 @@ usr.changeling.absorbed_dna[T.real_name] = T.dna if(usr.nutrition < 400) usr.nutrition = min((usr.nutrition + T.nutrition), 400) usr.changeling.chem_charges += 10 + usr.changeling.geneticpoints += 2 if(T.changeling) if(T.changeling.absorbed_dna) usr.changeling.absorbed_dna |= T.changeling.absorbed_dna //steal all their loot + T.changeling.absorbed_dna = list() T.changeling.absorbed_dna[T.real_name] = T.dna + + if(T.changeling.purchasedpowers) + for(var/obj/effect/proc_holder/power/Tp in T.changeling.purchasedpowers) + if(Tp in usr.changeling.purchasedpowers) + continue + else + usr.changeling.purchasedpowers += Tp + + if(!Tp.isVerb) + call(Tp.verbpath)() + + else + if(usr.changeling.changeling_level == 1) + usr.make_lesser_changeling() + else + usr.make_changeling() + + + + usr.changeling.chem_charges += T.changeling.chem_charges + usr.changeling.geneticpoints += T.changeling.geneticpoints T.changeling.chem_charges = 0 usr.changeling.isabsorbing = 0 T.death(0) - T.real_name = "Unknown" - M.warn_flavor_changed() - T.mutations |= HUSK - T.update_body() + T.Drain() return @@ -164,7 +205,7 @@ usr << "\red We don't have enough stored chemicals to do that!" return - var/S = input("Select the target DNA: ", "Target DNA", null) in usr.changeling.absorbed_dna + var/S = input("Select the target DNA: ", "Target DNA", null) as null|anything in usr.changeling.absorbed_dna if (S == null) return @@ -219,9 +260,6 @@ if (istype(W, /obj/item/weapon/implant)) implants += W - for(var/obj/item/W in usr) - usr.drop_from_slot(W) - usr.update_clothing() usr.monkeyizing = 1 usr.canmove = 0 @@ -240,6 +278,10 @@ usr.dna = null O.changeling = usr.changeling + for(var/obj/item/W in usr) + usr.drop_from_slot(W) + + for(var/obj/T in usr) del(T) //for(var/R in usr.organs) //redundant, let's give garbage collector work to do --rastaf0 @@ -263,7 +305,7 @@ usr.mind.transfer_to(O) O.make_lesser_changeling() - + O.verbs += /client/proc/changeling_lesser_transform del(usr) return @@ -304,15 +346,6 @@ for (var/obj/item/weapon/implant/I in usr) //Still preserving implants implants += I - for(var/obj/item/W in usr) - usr.u_equip(W) - if (usr.client) - usr.client.screen -= W - if (W) - W.loc = usr.loc - W.dropped(usr) - W.layer = initial(W.layer) - usr.update_clothing() usr.monkeyizing = 1 usr.canmove = 0 @@ -326,6 +359,15 @@ sleep(48) del(animation) + for(var/obj/item/W in usr) + usr.u_equip(W) + if (usr.client) + usr.client.screen -= W + if (W) + W.loc = usr.loc + W.dropped(usr) + W.layer = initial(W.layer) + var/mob/living/carbon/human/O = new /mob/living/carbon/human( src ) if (isblockon(getblock(usr.dna.uni_identity, 11,3),11)) O.gender = FEMALE @@ -471,10 +513,10 @@ usr << "\blue We stealthily sting [T]." if(!T.changeling) - T << "You feel a small prick and a burning sensation in your throat." + // T << "You feel a small prick and a burning sensation in your throat." T.silent += 30 - else - T << "You feel a small prick." + //else + // T << "You feel a small prick." usr.verbs -= /client/proc/changeling_silence_sting @@ -566,9 +608,9 @@ usr << "\blue We stealthily sting [T]." if(!T.changeling) - T.disabilities |= 32 + T.sdisabilities |= 4 spawn(300) - T.disabilities &= ~32 + T.sdisabilities &= ~4 usr.verbs -= /client/proc/changeling_deaf_sting @@ -713,4 +755,210 @@ spawn(5) usr.verbs += /client/proc/changeling_unfat_sting - return \ No newline at end of file + return + +/client/proc/changeling_unstun() + set category = "Changeling" + set name = "Epinephrine Sacs (25)" + set desc = "Removes all stuns" + + if(!usr.changeling) + usr << "\red You're not a changeling, something's wrong!" + return + + if(usr.changeling.chem_charges < 25) + usr << "\red We don't have enough stored chemicals to do that!" + return + + usr.changeling.chem_charges -= 25 + + var/mob/living/carbon/human/C = usr + + if(C) + C.stat = 0 + C.SetParalysis(0) + C.SetStunned(0) + C.SetWeakened(0) + C.lying = 0 + C.canmove = 1 + + usr.verbs -= /client/proc/changeling_unstun + + spawn(5) + usr.verbs += /client/proc/changeling_unstun + + + +/client/proc/changeling_fastchemical() + + usr.changeling.chem_recharge_multiplier = usr.changeling.chem_recharge_multiplier*2 + +/client/proc/changeling_engorgedglands() + + usr.changeling.chem_storage = usr.changeling.chem_storage+25 + +/client/proc/changeling_digitalcamo() + set category = "Changeling" + set name = "Toggle Digital Camoflague (10)" + set desc = "The AI can no longer track us, but we will look different if examined. Has a constant cost while active." + + if(!usr.changeling) + usr << "\red You're not a changeling, something's wrong!" + return + + if(usr.changeling.chem_charges < 10) + usr << "\red We don't have enough stored chemicals to do that!" + return + + usr.changeling.chem_charges -= 10 + + var/mob/living/carbon/human/C = usr + + if(C) + C << "[C.digitalcamo ? "We return to normal." : "We distort our form."]" + C.digitalcamo = !C.digitalcamo + spawn(0) + while(C && C.digitalcamo) + C.changeling.chem_charges -= 1/4 + sleep(10) + + + usr.verbs -= /client/proc/changeling_digitalcamo + + spawn(5) + usr.verbs += /client/proc/changeling_digitalcamo + + +/client/proc/changeling_DEATHsting() + set category = "Changeling" + set name = "Death Sting (40)" + set desc = "Causes spasms onto death." + + if(!usr.changeling) + usr << "\red You're not a changeling, something's wrong!" + return + + var/list/victims = list() + for(var/mob/living/carbon/C in oview(usr.changeling.sting_range)) + victims += C + var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims + + if(T && T in view(usr.changeling.sting_range)) + + if(usr.stat) + usr << "\red Not when we are incapacitated." + return + + if(usr.changeling.chem_charges < 40) + usr << "\red We don't have enough stored chemicals to do that!" + return + + usr.changeling.chem_charges -= 40 + usr.changeling.sting_range = 1 + + usr << "\blue We stealthily sting [T]." + + if(!T.changeling) + T << "You feel a small prick and your chest becomes tight." + + T.silent = (10) + T.Paralyse(10) + T.make_jittery(1000) + + if (T.reagents) + T.reagents.add_reagent("lexorin", 40) + + else + T << "You feel a small prick." + + usr.verbs -= /client/proc/changeling_DEATHsting + + spawn(5) + usr.verbs += /client/proc/changeling_DEATHsting + + return + + + +/client/proc/changeling_rapidregen() + set category = "Changeling" + set name = "Rapid Regeneration (30)" + set desc = "Begins rapidly regenerating. Does not effect stuns or chemicals." + + if(!usr.changeling) + usr << "\red You're not a changeling, something's wrong!" + return + + if(usr.changeling.chem_charges < 30) + usr << "\red We don't have enough stored chemicals to do that!" + return + + usr.changeling.chem_charges -= 30 + + var/mob/living/carbon/human/C = usr + + spawn(0) + for(var/i = 0, i<10,i++) + if(C) + C.adjustBruteLoss(-10) + C.adjustToxLoss(-10) + C.adjustOxyLoss(-10) + C.adjustFireLoss(-10) + sleep(10) + + + usr.verbs -= /client/proc/changeling_rapidregen + + spawn(5) + usr.verbs += /client/proc/changeling_rapidregen + + + + +/client/proc/changeling_lsdsting() + set category = "Changeling" + set name = "Hallucination Sting (15)" + set desc = "Causes terror in the target." + + if(!usr.changeling) + usr << "\red You're not a changeling, something's wrong!" + return + + var/list/victims = list() + for(var/mob/living/carbon/C in oview(usr.changeling.sting_range)) + victims += C + var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims + + if(T && T in view(usr.changeling.sting_range)) + + if(usr.stat) + usr << "\red Not when we are incapacitated." + return + + if(usr.changeling.chem_charges < 15) + usr << "\red We don't have enough stored chemicals to do that!" + return + + usr.changeling.chem_charges -= 15 + usr.changeling.sting_range = 1 + + usr << "\blue We stealthily sting [T]." + + if(!T.changeling) + // T << "You feel a small prick." // No warning. + + var/timer = rand(300,600) + + spawn(timer) + if(T) + if(T.reagents) + // T.reagents.add_reagent("LSD", 50) // Slight overkill, it seems. + T.hallucination = 400 + + + usr.verbs -= /client/proc/changeling_lsdsting + + spawn(5) + usr.verbs += /client/proc/changeling_lsdsting + + return \ No newline at end of file diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm new file mode 100644 index 00000000000..5fd786729ee --- /dev/null +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -0,0 +1,520 @@ + +var/list/powers = typesof(/obj/effect/proc_holder/power) //needed for the badmin verb for now +var/list/obj/effect/proc_holder/power/powerinstances = list() + +/obj/effect/proc_holder/power + name = "Power" + desc = "Placeholder" + density = 0 + opacity = 0 + + var/helptext = "" + + var/allowduringlesserform = 0 + var/isVerb = 1 // Is it an active power, or passive? + var/verbpath = null // Path to a verb that contains the effects. + var/genomecost = 500000 // Cost for the changling to evolve this power. + +/obj/effect/proc_holder/power/absorb_dna + name = "Absorb DNA" + desc = "Permits us to syphon the DNA from a human. They become one with us, and we become stronger." + genomecost = 0 + + verbpath = /client/proc/changeling_absorb_dna + + + +/obj/effect/proc_holder/power/transform + name = "Transform" + desc = "We take on the apperance and voice of one we have absorbed." + genomecost = 0 + + verbpath = /client/proc/changeling_transform + + + +/obj/effect/proc_holder/power/lesser_form + name = "Lesser Form" + desc = "We debase ourselves and become lesser. We become a monkey." + genomecost = 1 + + verbpath = /client/proc/changeling_lesser_form + + + +/obj/effect/proc_holder/power/changeling_greater_form + name = "Greater Form" + desc = "We become the pinnicle of evolution. We will show the humans what happens when they leave their isle of ignorance." + genomecost = 250 + + // doesn't happen lol. Yet! + +/obj/effect/proc_holder/power/fakedeath + name = "Fake Death" + desc = "We fake our death while we heal." + genomecost = 0 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_fakedeath + + + +/obj/effect/proc_holder/power/deaf_sting + name = "Deaf Sting" + desc = "We silently sting a human, completely silencing them for a short time." + genomecost = 1 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_deaf_sting + + + +/obj/effect/proc_holder/power/blind_sting + name = "Blind Sting" + desc = "We silently sting a human, completely deafening them for a short time." + genomecost = 2 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_blind_sting + + + +/obj/effect/proc_holder/power/paralysis_sting + name = "Paralysis Sting" + desc = "We silently sting a human, paralyzing them for a short time. We must be wary, they can still whisper." + genomecost = 5 + + + verbpath = /client/proc/changeling_paralysis_sting + + + +/obj/effect/proc_holder/power/silence_sting + name = "Silence Sting" + desc = "We silently sting a human, completely silencing them for a short time." + helptext = "Does not provide a warning to a victim that they've been stung, until they try to speak and can't." // Man, fuck javascript. ' == ' + genomecost = 2 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_silence_sting + + + +/obj/effect/proc_holder/power/transformation_sting + name = "Transformation Sting" + desc = "We silently sting a human, injecting a retrovirus that forces them to transform into another." + genomecost = 2 + + verbpath = /client/proc/changeling_transformation_sting + + + +/obj/effect/proc_holder/power/unfat_sting + name = "Unfat Sting" + desc = "We silently sting a human, forcing them to rapidly metobolize their fat." + genomecost = 1 + + + verbpath = /client/proc/changeling_unfat_sting + +/obj/effect/proc_holder/power/boost_range + name = "Boost Range" + desc = "We evolve the ability to shoot our stingers at humans, with some preperation." + genomecost = 2 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_boost_range + + + +/obj/effect/proc_holder/power/Epinephrine + name = "Epinephrine sacs" + desc = "We evolve additional sacs of adrenaline throughout our body." + helptext = "Gives the ability to instantly recover from stuns. High chemical cost." + genomecost = 4 + + verbpath = /client/proc/changeling_unstun + + +/obj/effect/proc_holder/power/ChemicalSynth + name = "Rapid Chemical Synthesis" + desc = "We evolve new pathways for producing our necessary chemicals, permitting us to naturally create them faster." + helptext = "Doubles the rate at which we naturally recharge chemicals." + genomecost = 4 + isVerb = 0 + + verbpath = /client/proc/changeling_fastchemical + + + +/obj/effect/proc_holder/power/EngorgedGlands + name = "Engorged Chemical Glands" + desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." + helptext = "Allows us to store an extra 25 units of chemicals." + genomecost = 4 + isVerb = 0 + + + verbpath = /client/proc/changeling_engorgedglands + + + +/obj/effect/proc_holder/power/DigitalCamoflague + name = "Digital Camoflauge" + desc = "We evolve the ability to distort our form and proprtions, defeating common altgorthms used to detect lifeforms on cameras." + helptext = "We cannot be tracked by camera while using this skill. However, humans looking at us will find us.. uncanny. We must constantly expend chemicals to maintain our form like this." + genomecost = 4 + allowduringlesserform = 1 + + verbpath = /client/proc/changeling_digitalcamo + + + +/obj/effect/proc_holder/power/DeathSting + name = "Death Sting" + desc = "We silently sting a human, filling him with potent chemicals. His rapid death is all but assured." + genomecost = 10 + + verbpath = /client/proc/changeling_DEATHsting + + + +/obj/effect/proc_holder/power/rapidregeneration + name = "Rapid Regeneration" + desc = "We evolve the ability to rapidly regenerate, negating the need for stasis." + helptext = "Heals a moderate amount of damage every tick." + genomecost = 8 + + verbpath = /client/proc/changeling_rapidregen + +/obj/effect/proc_holder/power/LSDSting + name = "Hallucination Sting" + desc = "We evolve the ability to sting a target with a powerful hallunicationary chemical." + helptext = "The target does not notice they've been stung. The effect occurs after 30 to 60 seconds." + genomecost = 3 + + verbpath = /client/proc/changeling_lsdsting + + + + + + +// Modularchangling, totally stolen from the new player panel. YAYY +/datum/changeling/proc/EvolutionMenu()//The new one + set category = "Changeling" + set desc = "Level up!" + if (!usr.changeling) + return + + src = usr.changeling + + if(!powerinstances.len) + for(var/P in powers) + var/obj/effect/proc_holder/power/nP = new P + if (nP.desc == "Placeholder") + del(nP) + continue + powerinstances += nP + + var/dat = "Changling Evolution Menu" + + //javascript, the part that does most of the work~ + dat += {" + + + + + + + "} + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + + //title + search bar + dat += {" + + + + + + + + +
+ Changling Evolution Menu
+ Hover over a power to see more information
+ Current genomes left to evolve with: [usr.changeling.geneticpoints] +

+

+ Search: +
+ + "} + + //player table header + dat += {" + + "} + + var/i = 1 + for(var/obj/effect/proc_holder/power/P in powerinstances) + var/ownsthis = 0 + + if(P in usr.changeling.purchasedpowers) + ownsthis = 1 + + + var/color = "#e6e6e6" + if(i%2 == 0) + color = "#f2f2f2" + + + dat += {" + + + + + + "} + + i++ + + + //player table ending + dat += {" +
+ + + Evolve [P] - Cost: [ownsthis ? "Purchased" : P.genomecost] + +
+
+
+ + + + "} + + usr << browse(dat, "window=powers;size=900x480") + + +/datum/changeling/Topic(href, href_list) + ..() + + if(href_list["P"]) + usr.changeling.purchasePower(href_list["P"]) + call(/datum/changeling/proc/EvolutionMenu)() + + + +/datum/changeling/proc/purchasePower(var/obj/effect/proc_holder/power/Pname) + if (!usr.changeling) + return + + var/obj/effect/proc_holder/power/Thepower = null + + for (var/obj/effect/proc_holder/power/P in powerinstances) + if(P.name == Pname) + Thepower = P + break + + if(Thepower == null) + usr << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" + return + + if(Thepower in usr.changeling.purchasedpowers) + usr << "We have already evolved this ability!" + return + + + if(usr.changeling.geneticpoints < Thepower.genomecost) + usr << "We cannot evolve this... yet. We must acquire more DNA." + return + + usr.changeling.geneticpoints -= Thepower.genomecost + + usr.changeling.purchasedpowers += Thepower + + if(!Thepower.isVerb) + call(Thepower.verbpath)() + + else + if(usr.changeling.changeling_level == 1) + usr.make_lesser_changeling() + else + usr.make_changeling() + diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 86246238a58..4f3cdb9cf82 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -20,9 +20,11 @@ station_was_nuked = 0 //see nuclearbomb.dm and malfunction.dm explosion_in_progress = 0 //sit back and relax list/datum/mind/modePlayer = new - list/restricted_jobs = list() + list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist + list/protected_jobs = list() // Jobs that can't be tratiors because required_players = 0 required_enemies = 0 + recommended_enemies = 0 uplink_welcome uplink_uses uplink_items = {"Highly Visible and Dangerous Weapons; @@ -71,7 +73,11 @@ Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon); Whitespace:Seperator;"} -//obj/item/weapon/syndie/c4explosive/heavy:7:High (!) Power Explosive Charge, with Detonator; +// Items removed from above: +/* +/obj/item/weapon/syndie/c4explosive/heavy:7:High (!) Power Explosive Charge, with Detonator; +/obj/item/weapon/cloaking_device:4:Cloaking Device; //Replacing cloakers with thermals. -Pete +*/ /datum/game_mode/proc/announce() //to be calles when round starts world << "Notice: [src] did not define announce()" @@ -120,6 +126,72 @@ Whitespace:Seperator;"} /datum/game_mode/proc/declare_completion() + var/clients = 0 + var/surviving_humans = 0 + var/surviving_total = 0 + var/ghosts = 0 + var/escaped_humans = 0 + var/escaped_total = 0 + var/escaped_on_pod_1 = 0 + var/escaped_on_pod_2 = 0 + var/escaped_on_pod_3 = 0 + var/escaped_on_pod_5 = 0 + var/escaped_on_shuttle = 0 + + var/list/area/escape_locations = list(/area/shuttle/escape/centcom, /area/shuttle/escape_pod1/centcom, /area/shuttle/escape_pod2/centcom, /area/shuttle/escape_pod3/centcom, /area/shuttle/escape_pod5/centcom) + + for(var/mob/M in world) + if(M.client) + clients++ + if(ishuman(M)) + if(!M.stat) + surviving_humans++ + if(M.loc && M.loc.loc && M.loc.loc.type in escape_locations) + escaped_humans++ + if(!M.stat) + surviving_total++ + if(M.loc && M.loc.loc && M.loc.loc.type in escape_locations) + escaped_total++ + + if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape/centcom) + escaped_on_shuttle++ + + if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod1/centcom) + escaped_on_pod_1++ + if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod2/centcom) + escaped_on_pod_2++ + if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod3/centcom) + escaped_on_pod_3++ + if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod5/centcom) + escaped_on_pod_5++ + + if(isobserver(M)) + ghosts++ + + if(clients > 0) + feedback_set("round_end_clients",clients) + if(ghosts > 0) + feedback_set("round_end_ghosts",ghosts) + if(surviving_humans > 0) + feedback_set("survived_human",surviving_humans) + if(surviving_total > 0) + feedback_set("survived_total",surviving_total) + if(escaped_humans > 0) + feedback_set("escaped_human",escaped_humans) + if(escaped_total > 0) + feedback_set("escaped_total",escaped_total) + if(escaped_on_shuttle > 0) + feedback_set("escaped_on_shuttle",escaped_on_shuttle) + if(escaped_on_pod_1 > 0) + feedback_set("escaped_on_pod_1",escaped_on_pod_1) + if(escaped_on_pod_2 > 0) + feedback_set("escaped_on_pod_2",escaped_on_pod_2) + if(escaped_on_pod_3 > 0) + feedback_set("escaped_on_pod_3",escaped_on_pod_3) + if(escaped_on_pod_5 > 0) + feedback_set("escaped_on_pod_5",escaped_on_pod_5) + + return 0 @@ -169,23 +241,79 @@ Whitespace:Seperator;"} /datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=1) var/list/candidates = list() + var/list/drafted = list() + var/datum/mind/applicant = null + + var/roletext + switch(role) + if(BE_CHANGELING) roletext="changeling" + if(BE_TRAITOR) roletext="traitor" + if(BE_OPERATIVE) roletext="operative" + if(BE_WIZARD) roletext="wizard" + if(BE_REV) roletext="revolutionary" + if(BE_CULTIST) roletext="cultist" + + for(var/mob/new_player/player in world) if(player.client && player.ready) if(player.preferences.be_special & role) - if(!jobban_isbanned(player, "Syndicate")) - candidates += player.mind + if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans + candidates += player.mind // Get a list of all the people who want to be the antagonist for this round - if(candidates.len < required_enemies) + if(restricted_jobs) + for(var/datum/mind/player in candidates) + for(var/job in restricted_jobs) // Remove people who want to be antagonist but have a job already that precludes it + if(player.assigned_role == job) + candidates -= player + + if(candidates.len < recommended_enemies) for(var/mob/new_player/player in world) if (player.client && player.ready) - if(!jobban_isbanned(player, "Syndicate")) - candidates += player.mind + if(!(player.preferences.be_special & role)) // We don't have enough people who want to be antagonist, make a seperate list of people who don't want to be one + if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans + drafted += player.mind - if(candidates.len < required_enemies && override_jobbans) //just to be safe. Ignored jobbans are better than broken round. Shouldn't happen usually. --rastaf0 + if(restricted_jobs) + for(var/datum/mind/player in drafted) // Remove people who can't be an antagonist + for(var/job in restricted_jobs) + if(player.assigned_role == job) + drafted -= player + + while(candidates.len < recommended_enemies) // Pick randomlly just the number of people we need and add them to our list of candidates + if(drafted.len > 0) + applicant = pick(drafted) + if(applicant) + candidates += applicant + drafted.Remove(applicant) + + else // Not enough scrubs, ABORT ABORT ABORT + break + + if(candidates.len < recommended_enemies && override_jobbans) //If we still don't have enough people, we're going to start drafting banned people. for(var/mob/new_player/player in world) if (player.client && player.ready) - candidates += player.mind - return candidates + if(jobban_isbanned(player, "Syndicate") || jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans + drafted += player.mind + + if(restricted_jobs) + for(var/datum/mind/player in drafted) // Remove people who can't be an antagonist + for(var/job in restricted_jobs) + if(player.assigned_role == job) + drafted -= player + + while(candidates.len < recommended_enemies) // Pick randomlly just the number of people we need and add them to our list of candidates + if(drafted.len > 0) + applicant = pick(drafted) + if(applicant) + candidates += applicant + drafted.Remove(applicant) + + else // Not enough scrubs, ABORT ABORT ABORT + break + + return candidates // Returns: The number of people who had the antagonist role set to yes, regardless of recomended_enemies, if that number is greater than recommended_enemies + // recommended_enemies if the number of people with that role set to yes is less than recomended_enemies, + // Less if there are not enough valid players in the game entirely to make recommended_enemies. /datum/game_mode/proc/check_player_role_pref(var/role, var/mob/new_player/player) diff --git a/code/game/hud.dm b/code/game/hud.dm index d265ec0d134..1b4c2fae2d2 100644 --- a/code/game/hud.dm +++ b/code/game/hud.dm @@ -22,6 +22,7 @@ #define ui_belt "SOUTH-1,3" #define ui_throw "SOUTH-1,8" #define ui_oxygen "EAST+1, NORTH-4" +#define ui_pressure "EAST+1, NORTH-5" #define ui_toxin "EAST+1, NORTH-6" #define ui_internal "EAST+1, NORTH-2" #define ui_fire "EAST+1, NORTH-8" diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index cf2f443dcff..7b45fa31fdf 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -269,9 +269,9 @@ var/global/datum/controller/occupations/job_master else C = new /obj/item/weapon/card/id(H) if(C) - C.registered_name = H.real_name + C.registered = H.real_name C.assignment = title - C.name = "[C.registered_name]'s ID Card ([C.assignment])" + C.name = "[C.registered]'s ID Card ([C.assignment])" C.access = get_access(rank) H.equip_if_possible(C, H.slot_wear_id) if(!H.equip_if_possible(new /obj/item/weapon/pen(H), H.slot_r_store)) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 56d3f102635..97d538b445f 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1,3 +1,26 @@ + +/proc/RandomAAlarmWires() + //to make this not randomize the wires, just set index to 1 and increment it in the flag for loop (after doing everything else). + var/list/AAlarmwires = list(0, 0, 0, 0, 0) + AAlarmIndexToFlag = list(0, 0, 0, 0, 0) + AAlarmIndexToWireColor = list(0, 0, 0, 0, 0) + AAlarmWireColorToIndex = list(0, 0, 0, 0, 0) + var/flagIndex = 1 + for (var/flag=1, flag<32, flag+=flag) + var/valid = 0 + while (!valid) + var/colorIndex = rand(1, 5) + if (AAlarmwires[colorIndex]==0) + valid = 1 + AAlarmwires[colorIndex] = flag + AAlarmIndexToFlag[flagIndex] = flag + AAlarmIndexToWireColor[flagIndex] = colorIndex + AAlarmWireColorToIndex[colorIndex] = flagIndex + flagIndex+=1 + return AAlarmwires + + + // A datum for dealing with threshold limit values // used in /obj/machinery/alarm /datum/tlv @@ -49,6 +72,19 @@ #define AALARM_REPORT_TIMEOUT 100 var/datum/radio_frequency/radio_connection var/locked = 1 + var/wiresexposed = 0 // If it's been screwdrivered open. + var/aidisabled = 0 + var/AAlarmwires = 31 + var/shorted = 0 + + // Uses code from apc.dm + +#define AALARM_WIRE_IDSCAN 1 //Added wires +#define AALARM_WIRE_POWER 2 +#define AALARM_WIRE_SYPHON 3 +#define AALARM_WIRE_AI_CONTROL 4 +#define AALARM_WIRE_AALARM 5 + #define AALARM_MODE_SCRUBBING 1 #define AALARM_MODE_VENTING 2 //makes draught @@ -89,8 +125,18 @@ "carbon dioxide" = new/datum/tlv(-1.0, -1.0, 5, 10), // Partial pressure, kpa "plasma" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa "other" = new/datum/tlv(-1.0, -1.0, 0.5, 1.0), // Partial pressure, kpa - "pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.20,ONE_ATMOSPHERE*0.35,ONE_ATMOSPHERE*0.8,ONE_ATMOSPHERE*0.9), /* kpa */ - "temperature" = new/datum/tlv(40, 60, 150, 160), // K + "pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.40,ONE_ATMOSPHERE*1.60), /* kpa */ + "temperature" = new/datum/tlv(40, 60, 100, 120), // K + ) + +/obj/machinery/alarm/kitchen_cold_room + TLV = list( + "oxygen" = new/datum/tlv( 16, 19, 135, 140), // Partial pressure, kpa + "carbon dioxide" = new/datum/tlv(-1.0, -1.0, 5, 10), // Partial pressure, kpa + "plasma" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa + "other" = new/datum/tlv(-1.0, -1.0, 0.5, 1.0), // Partial pressure, kpa + "pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.50,ONE_ATMOSPHERE*1.60), /* kpa */ + "temperature" = new/datum/tlv(200, 210, 273.15, 283.15), // K ) //all air alarms in area are connected via magic @@ -136,11 +182,222 @@ if (.) return user.machine = src - user << browse(return_text(user),"window=air_alarm") - onclose(user, "air_alarm") - refresh_all() + + if ( (get_dist(src, user) > 1 )) + if (!istype(user, /mob/living/silicon)) + user.machine = null + user << browse(null, "window=air_alarm") + user << browse(null, "window=AAlarmwires") + return + + + else if (istype(user, /mob/living/silicon) && src.aidisabled) + user << "AI control for this Air Alarm interface has been disabled." + user << browse(null, "window=air_alarm") + return + + if(wiresexposed && (!istype(user, /mob/living/silicon))) + var/t1 = text("[alarm_area.name] Air Alarm WiresAccess Panel
\n") + var/list/AAlarmwires = list( + "Orange" = 1, + "Dark red" = 2, + "White" = 3, + "Yellow" = 4, + "Black" = 5, + ) + for(var/wiredesc in AAlarmwires) + var/is_uncut = src.AAlarmwires & AAlarmWireColorToFlag[AAlarmwires[wiredesc]] + t1 += "[wiredesc] wire: " + if(!is_uncut) + t1 += "Mend" + + else + t1 += "Cut " + t1 += "Pulse " + + t1 += "
" + t1 += text("
\n[(src.locked ? "The Air Alarm is locked." : "The Air Alarm is unlocked.")]
\n[((src.shorted || (stat & (NOPOWER|BROKEN))) ? "The Air Alarm is offline." : "The Air Alarm is working properly!")]
\n[(src.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") + t1 += text("

Close

") + user << browse(t1, "window=AAlarmwires") + onclose(user, "AAlarmwires") + + if(!shorted) + user << browse(return_text(),"window=air_alarm") + onclose(user, "air_alarm") + refresh_all() + return + +/obj/machinery/alarm/proc/isWireColorCut(var/wireColor) + var/wireFlag = AAlarmWireColorToFlag[wireColor] + return ((src.AAlarmwires & wireFlag) == 0) + +/obj/machinery/alarm/proc/isWireCut(var/wireIndex) + var/wireFlag = AAlarmIndexToFlag[wireIndex] + return ((src.AAlarmwires & wireFlag) == 0) + +/obj/machinery/alarm/proc/cut(var/wireColor) + var/wireFlag = AAlarmWireColorToFlag[wireColor] + var/wireIndex = AAlarmWireColorToIndex[wireColor] + AAlarmwires &= ~wireFlag + switch(wireIndex) + if(AALARM_WIRE_IDSCAN) + src.locked = 1 + //world << "Idscan wire cut" + + if(AALARM_WIRE_POWER) + src.shock(usr, 50) + src.shorted = 1 + update_icon() + //world << "Power wire cut" + + if (AALARM_WIRE_AI_CONTROL) + if (src.aidisabled == 0) + src.aidisabled = 1 + //world << "AI Control Wire Cut" + + if(AALARM_WIRE_SYPHON) + mode = AALARM_MODE_PANIC + apply_mode() + //world << "Syphon Wire Cut" + + if(AALARM_WIRE_AALARM) + + if (alarm_area.atmosalert(2)) + post_alert(2) + spawn(1) + src.updateUsrDialog() + update_icon() + + //world << "AAlarm Wire Cut" + + src.updateDialog() + + return + +/obj/machinery/alarm/proc/mend(var/wireColor) + var/wireFlag = AAlarmWireColorToFlag[wireColor] + var/wireIndex = AAlarmWireColorToIndex[wireColor] //not used in this function + AAlarmwires |= wireFlag + switch(wireIndex) + if(AALARM_WIRE_IDSCAN) + //world << "Idscan wire mended" + + if(AALARM_WIRE_POWER) + src.shorted = 0 + src.shock(usr, 50) + update_icon() + //world << "Power wire mended" + + if(AALARM_WIRE_AI_CONTROL) + if (src.aidisabled == 1) + src.aidisabled = 0 + //world << "AI Cont. wire mended" + + + // if(AALARM_WIRE_SYPHON) + // world << "Syphon Wire mended" + + + // if(AALARM_WIRE_AALARM) + //world << "AAlarm Wire mended" + + src.updateDialog() + return + +/obj/machinery/alarm/proc/pulse(var/wireColor) + //var/wireFlag = AAlarmWireColorToFlag[wireColor] //not used in this function + var/wireIndex = AAlarmWireColorToIndex[wireColor] + switch(wireIndex) + if(AALARM_WIRE_IDSCAN) //unlocks for 30 seconds, if you have a better way to hack I'm all ears + src.locked = 0 + spawn(300) + src.locked = 1 + //world << "Idscan wire pulsed" + + if (AALARM_WIRE_POWER) + // world << "Power wire pulsed" + if(shorted == 0) + shorted = 1 + update_icon() + + spawn(1200) + if(shorted == 1) + shorted = 0 + update_icon() + + + if (AALARM_WIRE_AI_CONTROL) + // world << "AI Control wire pulsed" + if (src.aidisabled == 0) + src.aidisabled = 1 + src.updateDialog() + spawn(10) + if (src.aidisabled == 1) + src.aidisabled = 0 + src.updateDialog() + + if(AALARM_WIRE_SYPHON) + // world << "Syphon wire pulsed" + mode = AALARM_MODE_REPLACEMENT + apply_mode() + + if(AALARM_WIRE_AALARM) + // world << "Aalarm wire pulsed" + if (alarm_area.atmosalert(0)) + post_alert(0) + spawn(1) + src.updateUsrDialog() + update_icon() + + src.updateDialog() + return + +/obj/machinery/alarm/proc/shock(mob/user, prb) + if((stat & (NOPOWER))) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 //you lucked out, no shock for you + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() //sparks always. + if (electrocute_mob(user, get_area(src), src)) + return 1 + else + return 0 + +/obj/machinery/alarm/Topic(href, href_list) + src.add_fingerprint(usr) + usr.machine = src + + if ( (get_dist(src, usr) > 1 )) + if (!istype(usr, /mob/living/silicon)) + usr.machine = null + usr << browse(null, "window=air_alarm") + usr << browse(null, "window=AAlarmwires") + return + + if (href_list["AAlarmwires"]) + var/t1 = text2num(href_list["AAlarmwires"]) + if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) + usr << "You need wirecutters!" + return + if (src.isWireColorCut(t1)) + src.mend(t1) + else + src.cut(t1) + else if (href_list["pulse"]) + var/t1 = text2num(href_list["pulse"]) + if (!istype(usr.equipped(), /obj/item/device/multitool)) + usr << "You need a multitool!" + return + if (src.isWireColorCut(t1)) + usr << "You can't pulse a cut wire." + return + else + src.pulse(t1) + /obj/machinery/alarm/receive_signal(datum/signal/signal) if(stat & (NOPOWER|BROKEN)) return @@ -215,11 +472,11 @@ return 1 -/obj/machinery/alarm/proc/return_text(mob/user) - if(!(istype(user, /mob/living/silicon)) && locked) - return "[src][return_status()]
[rcon_text()]
(Swipe ID card to unlock interface)" +/obj/machinery/alarm/proc/return_text() + if(!(istype(usr, /mob/living/silicon)) && locked) + return "[src][return_status()]
(Swipe ID card to unlock interface)" else - return "[src][return_status()]
[rcon_text()]
[return_controls()]" + return "[src][return_status()]
[return_controls()]" /obj/machinery/alarm/proc/return_status() var/turf/location = src.loc @@ -518,6 +775,12 @@ table tr:first-child th:first-child { border: none;} if(href_list["rcon"]) rcon_setting = text2num(href_list["rcon"]) src.updateUsrDialog() + + if ( (get_dist(src, usr) > 1 )) + if (!istype(usr, /mob/living/silicon)) + usr.machine = null + usr << browse(null, "window=air_alarm") + if(href_list["command"]) var/device_id = href_list["id_tag"] switch(href_list["command"]) @@ -636,7 +899,10 @@ table tr:first-child th:first-child { border: none;} )) /obj/machinery/alarm/update_icon() - if(stat & (NOPOWER|BROKEN)) + if(wiresexposed) + icon_state = "alarmx" + return + if((stat & (NOPOWER|BROKEN)) || shorted) icon_state = "alarmp" return switch(max(danger_level, alarm_area.atmosalm)) @@ -648,7 +914,7 @@ table tr:first-child th:first-child { border: none;} src.icon_state = "alarm1" /obj/machinery/alarm/process() - if(stat & (NOPOWER|BROKEN)) + if((stat & (NOPOWER|BROKEN)) || shorted) return var/turf/simulated/location = src.loc @@ -742,26 +1008,37 @@ table tr:first-child th:first-child { border: none;} var/new_area_danger_level = 0 for (var/area/A in alarm_area.related) for (var/obj/machinery/alarm/AA in A) - if (!(AA.stat & (NOPOWER|BROKEN))) + if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted) new_area_danger_level = max(new_area_danger_level,AA.danger_level) if (alarm_area.atmosalert(new_area_danger_level)) //if area was in normal state or if area was in alert state post_alert(new_area_danger_level) update_icon() /obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/wirecutters)) +/* if (istype(W, /obj/item/weapon/wirecutters)) stat ^= BROKEN src.add_fingerprint(user) for(var/mob/O in viewers(user, null)) O.show_message(text("\red [] has []activated []!", user, (stat&BROKEN) ? "de" : "re", src), 1) update_icon() return +*/ + if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up. + //user << "You pop the Air Alarm's maintence panel open." + wiresexposed = !wiresexposed + user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]" + update_icon() + return + + if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters)))) + return src.attack_hand(user) + else if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card if(stat & (NOPOWER|BROKEN)) user << "It does nothing" else - if(src.allowed(usr)) + if(src.allowed(usr) && !isWireCut(AALARM_WIRE_IDSCAN)) locked = !locked user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface." src.updateUsrDialog() @@ -861,7 +1138,7 @@ table tr:first-child th:first-child { border: none;} d2 = text("Initiate Time Lock", src) var/second = src.time % 60 var/minute = (src.time - second) / 60 - var/dat = text("Fire alarm []\n
\nTimer System: []
\nTime Left: [][] - - + +\n
", d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src) + var/dat = "Fire alarm [d1]\n
The current alert level is: [get_security_level()]


\nTimer System: [d2]
\nTime Left: [(minute ? "[minute]:" : null)][second] - - + +\n
" user << browse(dat, "window=firealarm") onclose(user, "firealarm") else @@ -876,7 +1153,7 @@ table tr:first-child th:first-child { border: none;} d2 = text("[]", src, stars("Initiate Time Lock")) var/second = src.time % 60 var/minute = (src.time - second) / 60 - var/dat = text("[] []\n
\nTimer System: []
\nTime Left: [][] - - + +\n
", stars("Fire alarm"), d1, d2, (minute ? text("[]:", minute) : null), second, src, src, src, src) + var/dat = "[stars("Fire alarm")] [d1]\n
The current alert level is: [stars(get_security_level())]

\nTimer System: [d2]
\nTime Left: [(minute ? text("[]:", minute) : null)][second] - - + +\n
" user << browse(dat, "window=firealarm") onclose(user, "firealarm") return diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 8f2872dba9d..709730ed5d1 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -640,7 +640,7 @@ Auto Patrol: []"}, var/obj/item/device/pda/pda = perp:wear_id id = pda.id if (id) - perpname = id.registered_name + perpname = id.registered else var/obj/item/device/pda/pda = perp:wear_id perpname = pda.owner diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 61338d73778..406fa150b4a 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -616,7 +616,7 @@ Auto Patrol: []"}, var/obj/item/device/pda/pda = perp:wear_id id = pda.id if(id) - perpname = id.registered_name + perpname = id.registered else var/obj/item/device/pda/pda = perp:wear_id perpname = pda.owner diff --git a/code/game/machinery/computer/id.dm b/code/game/machinery/computer/id.dm index 6583bc5f416..3930bf6a46e 100644 --- a/code/game/machinery/computer/id.dm +++ b/code/game/machinery/computer/id.dm @@ -64,8 +64,8 @@ target_name = modify.name else target_name = "--------" - if(modify && modify.registered_name) - target_owner = modify.registered_name + if(modify && modify.registered) + target_owner = modify.registered else target_owner = "--------" if(modify && modify.assignment) @@ -169,8 +169,8 @@ switch(href_list["choice"]) if ("modify") if (modify) - data_core.manifest_modify(modify.registered_name, modify.assignment) - modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])") + data_core.manifest_modify(modify.registered, modify.assignment) + modify.name = text("[modify.registered]'s ID Card ([modify.assignment])") if(ishuman(usr)) modify.loc = usr.loc if(!usr.get_active_hand()) @@ -235,7 +235,7 @@ var/t2 = modify //var/t1 = input(usr, "What name?", "ID computer", null) as text if ((authenticated && modify == t2 && (in_range(src, usr) || (istype(usr, /mob/living/silicon))) && istype(loc, /turf))) - modify.registered_name = href_list["reg"] + modify.registered = href_list["reg"] if ("mode") mode = text2num(href_list["mode_target"]) if ("print") @@ -247,6 +247,6 @@ P.name = "paper - 'Crew Manifest'" printing = null if (modify) - modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])") + modify.name = text("[modify.registered]'s ID Card ([modify.assignment])") updateUsrDialog() return \ No newline at end of file diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 3c200f6158a..45209a76102 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -228,7 +228,7 @@ src.active1 = null src.active2 = null if (src.check_access(src.scan)) - src.authenticated = src.scan.registered_name + src.authenticated = src.scan.registered src.rank = src.scan.assignment src.screen = 1 if (src.authenticated) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index afa39cbdf3a..ab761ca6c97 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -221,7 +221,7 @@ What a mess.*/ active1 = null active2 = null if(check_access(scan)) - authenticated = scan.registered_name + authenticated = scan.registered rank = scan.assignment screen = 1 //RECORD FUNCTIONS diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index e17df881298..4573f6b5c38 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -14,23 +14,23 @@ var/obj/item/device/pda/pda = W W = pda.id if (!W:access) //no access - user << "The access level of [W:registered_name]\'s card is not high enough. " + user << "The access level of [W:registered]\'s card is not high enough. " return var/list/cardaccess = W:access if(!istype(cardaccess, /list) || !cardaccess.len) //no access - user << "The access level of [W:registered_name]\'s card is not high enough. " + user << "The access level of [W:registered]\'s card is not high enough. " return if(!(access_heads in W:access)) //doesn't have this access - user << "The access level of [W:registered_name]\'s card is not high enough. " + user << "The access level of [W:registered]\'s card is not high enough. " return 0 var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort") switch(choice) if("Authorize") - src.authorized -= W:registered_name - src.authorized += W:registered_name + src.authorized -= W:registered + src.authorized += W:registered if (src.auth_need - src.authorized.len > 0) message_admins("[key_name_admin(user)] has authorized early shuttle launch") log_game("[user.ckey] has authorized early shuttle launch") @@ -45,7 +45,7 @@ src.authorized = list( ) if("Repeal") - src.authorized -= W:registered_name + src.authorized -= W:registered world << text("\blue Alert: [] authorizations needed until shuttle is launched early", src.auth_need - src.authorized.len) if("Abort") diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 50bd35d0c9d..08ce5b2a9c6 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -73,7 +73,7 @@ I = pda.id if (I && src.check_access(I)) src.locked = 0 - src.last_configurator = I:registered_name + src.last_configurator = I:registered if (locked) return diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 3263c3d9b73..8c8c141782b 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -432,7 +432,7 @@ Neutralize All Unidentified Life Signs: []
"}, var/obj/item/device/pda/pda = perp:wear_id id = pda.id if (id) - perpname = id.registered_name + perpname = id.registered else var/obj/item/device/pda/pda = perp:wear_id perpname = pda.owner diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index ea8c3f2ff36..0fe117fb052 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -308,7 +308,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() if (istype(O, /obj/item/weapon/card/id)) if(src.screen == 9) var/obj/item/weapon/card/id/T = O - src.msgVerified = text("Verified by [T.registered_name] ([T.assignment])") + src.msgVerified = text("Verified by [T.registered] ([T.assignment])") src.updateUsrDialog() if(src.screen == 10) var/obj/item/weapon/card/id/ID = O diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index ec6cbdfece8..5c9db1b572d 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -213,9 +213,10 @@ var/const proc/RemoveActiveIndicators() //removes the "active" facehugger indicator from all aliens in the world for this hugger for(var/mob/living/carbon/alien/alien in world) - for(var/image/image in alien.client.images) - if(image.icon_state == "facehugger_active" && image.loc == src) - del(image) + if(alien.client) + for(var/image/image in alien.client.images) + if(image.icon_state == "facehugger_active" && image.loc == src) + del(image) return diff --git a/code/game/objects/closets/secure/personal.dm b/code/game/objects/closets/secure/personal.dm index c4b9ae2c016..bcc66a04c21 100644 --- a/code/game/objects/closets/secure/personal.dm +++ b/code/game/objects/closets/secure/personal.dm @@ -31,17 +31,17 @@ user << "\red It appears to be broken." return var/obj/item/weapon/card/id/I = W - if(!I || !I.registered_name) return - if(src.allowed(user) || !src.registered || (istype(I) && (src.registered == I.registered_name))) + if(!I || !I.registered) return + if(src.allowed(user) || !src.registered || (istype(I) && (src.registered == I.registered))) //they can open all lockers, or nobody owns this, or they own this locker src.locked = !( src.locked ) if(src.locked) src.icon_state = src.icon_locked else src.icon_state = src.icon_closed if(!src.registered) - src.registered = I.registered_name - src.desc = "Owned by [I.registered_name]." - src.name = "Personal Closet - [I.registered_name]" + src.registered = I.registered + src.desc = "Owned by [I.registered]." + src.name = "Personal Closet - [I.registered]" else user << "\red Access Denied" else if( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && !src.broken) diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/devices/PDA/PDA.dm index 7bbefbc4c2a..115ed8a5ab2 100755 --- a/code/game/objects/devices/PDA/PDA.dm +++ b/code/game/objects/devices/PDA/PDA.dm @@ -104,6 +104,7 @@ /obj/item/device/pda/captain default_cartridge = /obj/item/weapon/cartridge/captain icon_state = "pda-c" + toff = 1 /obj/item/device/pda/quartermaster default_cartridge = /obj/item/weapon/cartridge/quartermaster @@ -143,6 +144,26 @@ if (default_cartridge) cartridge = new default_cartridge(src) +/obj/item/device/pda/proc/can_use() + if(!ismob(loc)) + return 0 + var/mob/M = loc + + if(!M.canmove) + return 0 + + if((src in M.contents) || ( istype(loc, /turf) && in_range(src, M) ) ) + return 1 + else + return 0 + + +/obj/item/device/pda/MouseDrop(obj/over_object as obj, src_location, over_location) + var/mob/M = usr + if((!istype(over_object, /obj/screen)) && !M.restrained() && !M.stat && can_use()) + return attack_self(M) + return + //NOTE: graphic resources are loaded on client login /obj/item/device/pda/attack_self(mob/user as mob) user.machine = src @@ -167,7 +188,9 @@ if (0) dat += "

PERSONAL DATA ASSISTANT v.1.2

" dat += "Owner: [owner], [ownjob]
" - dat += text("ID: []
", src, (id ? "[id.registered_name], [id.assignment]" : "----------")) + dat += text("ID: []
", src, (id ? "[id.registered], [id.assignment]" : "----------")) + dat += text("[]
", src, (id ? "Update PDA Info" : "")) + dat += "Station Time: [round(world.time / 36000)+12]:[(world.time / 600 % 60) < 10 ? add_zero(world.time / 600 % 60, 1) : world.time / 600 % 60]"//:[world.time / 100 % 6][world.time / 100 % 10]" dat += "

" @@ -323,6 +346,7 @@ dat += data_core.get_manifest(1) dat += "
" + else//Else it links to the cart menu proc. Although, it really uses menu hub 4--menu 4 doesn't really exist as it simply redirects to hub. dat += cart @@ -333,9 +357,10 @@ /obj/item/device/pda/Topic(href, href_list) ..() var/mob/living/U = usr - U.last_target_click = world.time //Looking for master was kind of pointless since PDAs don't appear to have one. - if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ) ) + //if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ) ) + + if(can_use()) //Why reinvent the wheel? There's a proc that does exactly that. if ( !(U.stat || U.restrained()) ) add_fingerprint(U) @@ -362,6 +387,9 @@ cartridge.unlock() if ("Authenticate")//Checks for ID id_check(U, 1) + if("UpdateInfo") + ownjob = id.assignment + name = "PDA-[owner] ([ownjob])" if("Eject")//Ejects the cart, only done from hub. if (!isnull(cartridge)) var/turf/T = loc @@ -470,6 +498,7 @@ return var/obj/item/device/pda/P = locate(href_list["target"]) + if(!istype(P)) return if(istype(P, /obj/item/device/pda)) if (isnull(P)||P.toff || toff) @@ -480,8 +509,15 @@ last_text = world.time + +// var/AnsweringMS = 0 for (var/obj/machinery/message_server/MS in world) MS.send_pda_message("[P.owner]","[owner]","[t]") +// if(MS.active) +// AnsweringMS++ + +// if(!AnsweringMS) +// return tnote += "→ To [P.owner]:
[t]
" P.tnote += "← From [owner]:
[t]
" @@ -508,13 +544,20 @@ // pAI Message else +/* var/AnsweringMS = 0 + for (var/obj/machinery/message_server/MS in world) + MS.send_pda_message("[P]","[src]","[t]") + if(MS.active) + AnsweringMS++ + + if(!AnsweringMS) + return +*/ + tnote += "→ To [P]:
[t]
" P.tnote += "← From [src]:
[t]
" - for (var/obj/machinery/message_server/MS in world) - MS.send_pda_message("[P]","[src]","[t]") - if (prob(15)) //Give the AI a chance of intercepting the message var/who = src if(prob(50)) @@ -524,6 +567,7 @@ playsound(P.loc, 'twobeep.ogg', 50, 1) +// log_pda("[usr] (PDA: [src.name]) sent \"[t]\" to [P.name]") if("Send Honk")//Honk virus @@ -667,7 +711,7 @@ id = I else var/obj/item/weapon/card/I = user.equipped() - if (istype(I, /obj/item/weapon/card/id) && I:registered_name) + if (istype(I, /obj/item/weapon/card/id) && I:registered) if(id)//Get id and replace it. user.drop_item() I.loc = src @@ -690,29 +734,18 @@ if (C:radio) C:radio.hostpda = src - else if (istype(C, /obj/item/weapon/card/id) && C:registered_name) + else if (istype(C, /obj/item/weapon/card/id) && C:registered) if(!owner) - owner = C:registered_name + owner = C:registered ownjob = C:assignment name = "PDA-[owner] ([ownjob])" user << "\blue Card scanned." else - var/input=alert("Would you like to insert the card or update owner information?",,"Insert","Update") //Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand. - if ( ( (src in user.contents) && (C in user.contents)) || (istype(loc, /turf) && in_range(src, user) && (C in user.contents)) ) if ( !(user.stat || user.restrained()) )//If they can still act. - if(input=="Insert") - id_check(user, 2) - else - if(!(owner == C:registered_name)) - user << "\blue Name on card does not match registered name. Please try again." - else if((owner == C:registered_name) && (ownjob == C:assignment)) - user << "\blue Rank is up to date." - else if((owner == C:registered_name) && (ownjob != C:assignment)) - ownjob = C:assignment - name = "PDA-[owner] ([ownjob])" - user << "\blue Rank updated." + id_check(user, 2) + user << "\blue You put the ID into the [src.name]'s slot." updateSelfDialog()//Update self dialog on success. return//Return in case of failed check or when successful. updateSelfDialog()//For the non-input related code. @@ -733,10 +766,21 @@ O.show_message("\red [user] has analyzed [C]'s vitals!", 1) user.show_message("\blue Analyzing Results for [C]:") - user.show_message("\blue \t Overall Status: [C.stat > 1 ? "dead" : "[C.health]% healthy"]", 1) + user.show_message("\blue \t Overall Status: [C.stat > 1 ? "dead" : "[C.health - C.halloss]% healthy"]", 1) user.show_message("\blue \t Damage Specifics: [C.getOxyLoss() > 50 ? "\red" : "\blue"][C.getOxyLoss()]-[C.getToxLoss() > 50 ? "\red" : "\blue"][C.getToxLoss()]-[C.getFireLoss() > 50 ? "\red" : "\blue"][C.getFireLoss()]-[C.getBruteLoss() > 50 ? "\red" : "\blue"][C.getBruteLoss()]", 1) user.show_message("\blue \t Key: Suffocation/Toxin/Burns/Brute", 1) user.show_message("\blue \t Body Temperature: [C.bodytemperature-T0C]°C ([C.bodytemperature*1.8-459.67]°F)", 1) +/* + if(istype(C, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = C + var/list/damaged = H.get_damaged_organs(1,1) + user.show_message("\blue Localized Damage, Brute/Burn:",1) + if(length(damaged)>0) + for(var/datum/organ/external/org in damaged) + user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1) + else + user.show_message("\blue \t Limbs are OK.",1) +*/ for(var/datum/disease/D in C.viruses) if(!D.hidden[SCANNER]) user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]")) @@ -916,6 +960,7 @@ icon = 'pda.dmi' icon_state = "pdabox" item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/PDAbox/New() ..() diff --git a/code/game/objects/electricchair.dm b/code/game/objects/electricchair.dm new file mode 100644 index 00000000000..027577f26ab --- /dev/null +++ b/code/game/objects/electricchair.dm @@ -0,0 +1,77 @@ +/obj/structure/stool/bed/chair/e_chair + name = "electric chair" + desc = "Looks absolutely SHOCKING!" + icon_state = "echair0" + var/on = 0 + var/obj/item/assembly/shock_kit/part = null + var/last_time = 1.0 + +/obj/structure/stool/bed/chair/e_chair/New() + overlays += image('objects.dmi', src, "echair_over", MOB_LAYER + 1, dir) + return + +/obj/structure/stool/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob) + + if(istype(W, /obj/item/weapon/wrench)) + var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(src.loc) + playsound(src.loc, 'Ratchet.ogg', 50, 1) + C.dir = src.dir + src.part.loc = src.loc + src.part.master = null + src.part = null + del(src) + return + return + +/obj/structure/stool/bed/chair/e_chair/verb/toggle() + set name = "Toggle Electric Chair" + set category = "Object" + set src in oview(1) + + if(on) + on = 0 + icon_state = "echair0" + else + on = 1 + icon_state = "echair1" + return + +/obj/structure/stool/bed/chair/e_chair/rotate() + ..() + overlays = null + overlays += image('objects.dmi', src, "echair_over", MOB_LAYER + 1, dir) //there's probably a better way of handling this, but eh. -Pete + return + +/obj/structure/stool/bed/chair/e_chair/proc/shock() + if(!(src.on)) + return + if((src.last_time + 50) > world.time) + return + src.last_time = world.time + + // special power handling + var/area/A = get_area(src) + if(!isarea(A)) + return + if(!A.powered(EQUIP)) + return + A.use_power(EQUIP, 5000) + var/light = A.power_light + A.updateicon() + + flick("echair1", src) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(12, 1, src) + s.start() + if(buckled_mob) + buckled_mob.burn_skin(85) + buckled_mob << "\red You feel a deep shock course through your body!" + sleep(1) + buckled_mob.burn_skin(85) + buckled_mob.Stun(600) + for(var/mob/M in hearers(src, null)) + M.show_message("\red The electric chair went off!.", 3, "\red You hear a deep sharp shock.", 2) + + A.power_light = light + A.updateicon() + return \ No newline at end of file diff --git a/code/game/objects/items/shock_kit.dm b/code/game/objects/items/shock_kit.dm index ee5847d0569..3c737ead595 100644 --- a/code/game/objects/items/shock_kit.dm +++ b/code/game/objects/items/shock_kit.dm @@ -49,8 +49,8 @@ /obj/item/assembly/shock_kit/receive_signal() //***** //world << "Shock kit got r_signal" - if (istype(src.loc, /obj/structure/stool/chair/e_chair)) - var/obj/structure/stool/chair/e_chair/C = src.loc + if (istype(src.loc, /obj/structure/stool/bed/chair/e_chair)) + var/obj/structure/stool/bed/chair/e_chair/C = src.loc //world << "Shock kit sending shock to EC" C.shock() return diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index e237f7f94d0..a314d216d5f 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -4,38 +4,13 @@ DATA CARD ID CARD FINGERPRINT CARD HOLDER FINGERPRINT CARD + */ -/obj/item/weapon/card - name = "card" - desc = "Does card things." - icon = 'card.dmi' - w_class = 1.0 - var/list/files = list( ) -/obj/item/weapon/card/emag - desc = "An identification card. Seems to have some funny chip on it, though." - name = "modified identification card" - icon_state = "emag" - item_state = "card-id" - origin_tech = "magnets=2;syndicate=2" - var/uses = 5 - - New() - ..() - uses = rand(3,5) - return // DATA CARDS -/obj/item/weapon/card/data - name = "data disk" - desc = "A disk with data." - icon_state = "data" - var/function = "storage" - var/data = "null" - var/special = null - item_state = "card-id" /obj/item/weapon/card/data/verb/label(t as text) set name = "Label Disk" @@ -50,58 +25,9 @@ FINGERPRINT CARD return + + // ID CARDS -/obj/item/weapon/card/id - name = "identification card" - desc = "An identification card." - icon_state = "id" - item_state = "card-id" - var/access = list() - var/registered_name = null // The name registered on the card - var/assignment = null - var/obj/item/weapon/photo/PHOTO = null - var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit - var/dorm = 0 // determines if this ID has claimed a dorm already - -/obj/item/weapon/card/id/gold - name = "identification card" - desc = "A golden identification card." - icon_state = "gold" - item_state = "gold_id" - -/obj/item/weapon/card/id/captains_spare - name = "Captain's spare ID" - icon_state = "gold" - item_state = "gold_id" - registered_name = "Captain" - assignment = "Captain" - New() - access = get_access("Captain") - ..() - -/obj/item/weapon/card/id/centcom - name = "CentCom ID" - desc = "An ID straight from Cent. Com." - icon_state = "centcom" - registered_name = "Central Command" - assignment = "General" - New() - access = get_all_centcom_access() - ..() - -/obj/item/weapon/card/id/syndicate - name = "agent card" - desc = "Shhhhh." - access = list(access_maint_tunnels) - origin_tech = "syndicate=3" - -/obj/item/weapon/card/id/syndicate_command - name = "Syndicate ID card" - desc = "An ID straight from the Syndicate." - registered_name = "Syndicate" - assignment = "Syndicate Overlord" - access = list(access_syndicate) - /obj/item/weapon/card/id/attack_self(mob/user as mob) for(var/mob/O in viewers(user, null)) @@ -110,6 +36,14 @@ FINGERPRINT CARD src.add_fingerprint(user) return +/obj/item/weapon/card/id/attack_hand(mob/user as mob) + var/obj/item/weapon/storage/wallet/WL + if( istype(loc, /obj/item/weapon/storage/wallet) ) + WL = loc + ..() + if(WL) + WL.update_icon() + /obj/item/weapon/card/id/verb/read() set name = "Read ID Card" set category = "Object" @@ -119,37 +53,13 @@ FINGERPRINT CARD return /obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob) - src.registered_name = input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name) - src.assignment = input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant") - src.name = "[src.registered_name]'s ID Card ([src.assignment])" - user << "\blue You successfully forge the ID card." - -/obj/item/weapon/card/id/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if(istype(W,/obj/item/weapon/photo)) - if(!(PHOTO)) - src.PHOTO = W - usr.before_take_item(W) - W.loc = src - //src.orient2hud(usr) - add_fingerprint(usr) - usr << "\blue You add the photo to the ID." - else - usr << "\blue There is already a photo on this ID." - - //PHOTO.loc = locate(0,0,0) - -/obj/item/weapon/card/id/verb/removePhoto() - set name = "Remove Photo From ID" - set category = "Object" - - if(PHOTO) - contents -= PHOTO - PHOTO.loc = usr.loc - PHOTO.layer = 3 - PHOTO = null + if(!src.registered) + src.registered = input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name) + src.assignment = input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant") + src.name = "[src.registered]'s ID Card ([src.assignment])" + user << "\blue You successfully forge the ID card." else - usr << "\blue There is no photo to remove." + ..() // FINGERPRINT HOLDER @@ -271,7 +181,9 @@ FINGERPRINT CARD return /obj/item/weapon/f_card/proc/display() - + if(!fingerprints) return + if (!istype(src.fingerprints, /list)) + src.fingerprints = params2list(src.fingerprints) if (length(src.fingerprints)) var/dat = "Fingerprints on Card
" for(var/i = 1, i < (src.fingerprints.len + 1), i++) diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 37f7ac4086c..6059f5eeca7 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -23,7 +23,7 @@ /obj/item/weapon/dnainjector/proc/inject(mob/M as mob) M.radiation += rand(20,50) - if (!(M.mutations & HUSK)) // prevents husks from having their DNA changed + if (!(M.mutations & NOCLONE)) // prevents drained people from having their DNA changed if (dnatype == "ui") if (!block) //isolated block? if (ue) //unique enzymes? yes @@ -66,6 +66,8 @@ M.attack_log += text("\[[time_stamp()]\] Has been injected with [name] by [user.name] ([user.ckey])") user.attack_log += text("\[[time_stamp()]\] Used the [name] to inject [M.name] ([M.ckey])") +// log_attack("[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])") + if (user) if (istype(M, /mob/living/carbon/human)) var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( ) diff --git a/code/game/objects/radio/headset.dm b/code/game/objects/radio/headset.dm index dfd8fd08690..2f77f495002 100644 --- a/code/game/objects/radio/headset.dm +++ b/code/game/objects/radio/headset.dm @@ -1,142 +1,142 @@ /obj/item/device/radio/headset - name = "Radio Headset" - desc = "An intercom that fits over the head." + name = "radio headset" + desc = "An updated, modular intercom that fits over the head. Takes encryption keys" icon_state = "headset" item_state = "headset" g_amt = 0 m_amt = 75 subspace_transmission = 1 - protective_temperature = 0 - canhear_range = 1 - var - translate_binary = 0 - translate_hive = 0 - obj/item/device/encryptionkey/keyslot1 = null - obj/item/device/encryptionkey/keyslot2 = null + canhear_range = 1 // can't hear headsets from very far away + + var/protective_temperature = 0 + var/translate_binary = 0 + var/translate_hive = 0 + var/obj/item/device/encryptionkey/keyslot1 = null + var/obj/item/device/encryptionkey/keyslot2 = null /obj/item/device/radio/headset/New() ..() - keyslot1 = new /obj/item/device/encryptionkey + keyslot1 = new /obj/item/device/encryptionkey/ recalculateChannels() /obj/item/device/radio/headset/traitor origin_tech = "syndicate=3" canhear_range = 0 - - New() - ..() - del(keyslot1) - keyslot1 = new /obj/item/device/encryptionkey/traitor +/obj/item/device/radio/headset/traitor/New() + ..() + del(keyslot1) + keyslot1 = new /obj/item/device/encryptionkey/traitor + recalculateChannels() /obj/item/device/radio/headset/binary origin_tech = "syndicate=3" canhear_range = 0 - - New() - ..() - del(keyslot1) - keyslot1 = new /obj/item/device/encryptionkey/binary +/obj/item/device/radio/headset/binary/New() + ..() + del(keyslot1) + keyslot1 = new /obj/item/device/encryptionkey/binary + recalculateChannels() /obj/item/device/radio/headset/headset_sec - name = "Security Radio Headset" + name = "security radio headset" desc = "This is used by your elite security force. To access the security channel, use :s." icon_state = "sec_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_eng - name = "Engineering Radio Headset" + name = "engineering radio headset" desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. " icon_state = "eng_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob - name = "Robotics Radio Headset" + name = "robotics radio headset" desc = "Made specifically for the roboticists who cannot decide between departments. To access the engineering channel, use :e. For research, use :n." icon_state = "rob_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med - name = "Medical Radio Headset" + name = "medical radio headset" desc = "A headset for the trained staff of the medbay. To access the medical channel, use :m." icon_state = "med_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci - name = "Science Radio Headset" + name = "science radio headset" desc = "A sciency headset. Like usual. To access the science channel, use :n." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_sci /obj/item/device/radio/headset/headset_medsci - name = "Medical Research Radio Headset" + name = "medical research radio headset" desc = "A headset that is a result of the mating between medical and science. To access the medical channel, use :m. For science, use :n." icon_state = "med_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com - name = "Command Radio Headset" + name = "command radio headset" desc = "A headset with a commanding channel. To access the command channel, use :c." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/heads/captain - name = "Captain's Headset" + name = "captain's headset" desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/rd - name = "Research Director's Headset" + name = "research director's deadset" desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos - name = "Head of Security's Headset" + name = "head of security's headset" desc = "The headset of the man who protects your worthless lifes. To access the security channel, use :s. For command, use :c." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/ce - name = "Chief Engineer's Headset" + name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo - name = "Chief Medical Officer's Headset" + name = "chief medical officer's headset" desc = "The headset of the highly trained medical chief. To access the medical channel, use :m. For command, use :c." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop - name = "Head of Personnel's Headset" + name = "head of personnel's headset" desc = "The headset of the guy who will one day be captain. Channels are as follows: :c - command, :s - security, :q - cargo, :d - mining." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hop /obj/item/device/radio/headset/headset_mine - name = "Mining Radio Headset" + name = "mining radio headset" desc = "Headset used by miners. How useless. To access the mining channel, use :d." icon_state = "mine_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_mine /obj/item/device/radio/headset/heads/qm - name = "Quartermaster's Headset" + name = "quartermaster's headset" desc = "The headset of the man who control your toiletpaper supply. To access the cargo channel, use :q. For mining, use :d." icon_state = "cargo_headset" item_state = "headset" @@ -154,7 +154,7 @@ keyslot2 = new /obj/item/device/encryptionkey/ert /obj/item/device/radio/headset/headset_cargo - name = "Cargo Radio Headset" + name = "cargo radio headset" desc = "Headset used by the QM's slaves. To access the cargo channel, use :q." icon_state = "cargo_headset" item_state = "headset" @@ -163,17 +163,32 @@ /obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() user.machine = src - if (!istype(W, /obj/item/weapon/screwdriver) && !istype(W, /obj/item/device/encryptionkey/)) + if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ )))) return if(istype(W, /obj/item/weapon/screwdriver)) if(keyslot1 || keyslot2) + + for(var/ch_name in channels) + radio_controller.remove_object(src, radiochannels[ch_name]) + secure_radio_connections[ch_name] = null + + if(keyslot1) - user.put_in_hands(keyslot1) + var/turf/T = get_turf(user) + if(T) + keyslot1.loc = T + keyslot1 = null + + if(keyslot2) - user.put_in_hands(keyslot2) + var/turf/T = get_turf(user) + if(T) + keyslot2.loc = T + keyslot2 = null + recalculateChannels() user << "You pop out the encryption keys in the headset!" @@ -196,7 +211,9 @@ W.loc = src keyslot2 = W + recalculateChannels() + return @@ -204,10 +221,13 @@ src.channels = list() src.translate_binary = 0 src.translate_hive = 0 - var/temp_channels = list() if(keyslot1) - temp_channels += keyslot1.channels + for(var/ch_name in keyslot1.channels) + if(ch_name in src.channels) + continue + src.channels += ch_name + src.channels[ch_name] = keyslot1.channels[ch_name] if(keyslot1.translate_binary) src.translate_binary = 1 @@ -216,7 +236,11 @@ src.translate_hive = 1 if(keyslot2) - temp_channels += keyslot2.channels + for(var/ch_name in keyslot2.channels) + if(ch_name in src.channels) + continue + src.channels += ch_name + src.channels[ch_name] = keyslot2.channels[ch_name] if(keyslot2.translate_binary) src.translate_binary = 1 @@ -224,13 +248,14 @@ if(keyslot2.translate_hive) src.translate_hive = 1 - config(temp_channels) for (var/ch_name in channels) if(!radio_controller) sleep(30) // Waiting for the radio_controller to be created. if(!radio_controller) - src.name = "Broken Radio Headset" + src.name = "broken radio headset" return + secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT) + return \ No newline at end of file diff --git a/code/game/objects/stacks/metal.dm b/code/game/objects/stacks/metal.dm index cd1a7499ad7..8cdac52daa7 100644 --- a/code/game/objects/stacks/metal.dm +++ b/code/game/objects/stacks/metal.dm @@ -61,9 +61,9 @@ FLOOR TILES // /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0) var/global/list/datum/stack_recipe/metal_recipes = list ( \ - new/datum/stack_recipe("stool", /obj/structure/stool), \ - new/datum/stack_recipe("chair", /obj/structure/stool/chair, one_per_turf = 1), \ - new/datum/stack_recipe("bed", /obj/structure/stool/bed, 2, one_per_turf = 1), \ + new/datum/stack_recipe("stool", /obj/structure/stool, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("chair", /obj/structure/stool/bed/chair, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("bed", /obj/structure/stool/bed, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts, 2), \ new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, one_per_turf = 1), \ diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 62a2ff59579..7e628afa744 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -1,102 +1,84 @@ /obj/structure/stool/ex_act(severity) - switch(severity) if(1.0) - //SN src = null del(src) return if(2.0) if (prob(50)) - //SN src = null del(src) return if(3.0) if (prob(5)) - //SN src = null del(src) return - else return /obj/structure/stool/blob_act() if(prob(75)) - new /obj/item/stack/sheet/metal( src.loc ) + new /obj/item/stack/sheet/metal(src.loc) del(src) /obj/structure/stool/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/wrench)) + if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'Ratchet.ogg', 50, 1) - new /obj/item/stack/sheet/metal( src.loc ) - //SN src = null + new /obj/item/stack/sheet/metal(src.loc) del(src) return - -/obj/structure/stool/bed/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() - if (istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, 'Ratchet.ogg', 50, 1) - new /obj/item/stack/sheet/metal( src.loc ) - del(src) - return - -/obj/structure/stool/chair/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if (istype(W, /obj/item/assembly/shock_kit)) - var/obj/structure/stool/chair/e_chair/E = new /obj/structure/stool/chair/e_chair( src.loc ) + if(istype(W, /obj/item/assembly/shock_kit)) + var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc) playsound(src.loc, 'Deconstruct.ogg', 50, 1) E.dir = src.dir - E.part1 = W + E.part = W W.loc = E W.master = E user.u_equip(W) W.layer = initial(W.layer) - //SN src = null del(src) return return /obj/structure/stool/bed/Del() - for(var/mob/M in src.buckled_mobs) - if (M.buckled == src) - M.lying = 0 - unbuckle_all() + unbuckle() ..() return -/obj/structure/stool/proc/unbuckle_all() - for(var/mob/M in src:buckled_mobs) - if (M.buckled == src) - M.buckled = null - M.anchored = 0 - M.update_clothing() +/obj/structure/stool/bed/proc/unbuckle() + if(buckled_mob) + if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt + buckled_mob.buckled = null + buckled_mob.anchored = 0 + buckled_mob.lying = 0 + buckled_mob = null + return -/obj/structure/stool/proc/manual_unbuckle_all(mob/user as mob) - var/N = 0; - for(var/mob/M in src:buckled_mobs) - if (M.buckled == src) - if (M != user) - M.visible_message(\ - "\blue [M.name] was unbuckled by [user.name]!",\ +/obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob) + if(buckled_mob) + if(buckled_mob.buckled == src) + if(buckled_mob != user) + buckled_mob.visible_message(\ + "\blue [buckled_mob.name] was unbuckled by [user.name]!",\ "You unbuckled from [src] by [user.name].",\ "You hear metal clanking") else - M.visible_message(\ - "\blue [M.name] unbuckled \himself!",\ + buckled_mob.visible_message(\ + "\blue [buckled_mob.name] unbuckled himself!",\ "You unbuckle yourself from [src].",\ "You hear metal clanking") -// world << "[M] is no longer buckled to [src]" - M.anchored = 0 - M.buckled = null - M.update_clothing() - N++ - return N + unbuckle() + src.add_fingerprint(user) + return -/obj/structure/stool/proc/buckle_mob(mob/M as mob, mob/user as mob) +/obj/structure/stool/bed/proc/buckle_mob(mob/M as mob, mob/user as mob) if (!ticker) user << "You can't buckle anyone in before the game starts." - if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat || M.buckled)) + if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat || M.buckled || istype(user, /mob/living/silicon/pai))) return + + unbuckle() + if (M == usr) M.visible_message(\ "\blue [M.name] buckles in!",\ @@ -104,180 +86,57 @@ "You hear metal clanking") else M.visible_message(\ - "\blue [M.name] is buckled into [src] by [user.name]!",\ - "You buckled in to [src] by [user.name].",\ + "\blue [M.name] is buckled in to [src] by [user.name]!",\ + "You are buckled in to [src] by [user.name].",\ "You hear metal clanking") M.anchored = 1 M.buckled = src M.loc = src.loc M.dir = src.dir - M.update_clothing() - src:buckled_mobs += M + src.buckled_mob = M src.add_fingerprint(user) return /obj/structure/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob) - if (!istype(M)) return + if(!istype(M)) return buckle_mob(M, user) M.lying = 1 return +/obj/structure/stool/bed/attack_paw(mob/user as mob) + return src.attack_hand(user) + /obj/structure/stool/bed/attack_hand(mob/user as mob) - for(var/mob/M in src.buckled_mobs) - if (M.buckled == src) - M.lying = 0 - if (manual_unbuckle_all(user)) - src.add_fingerprint(user) + manual_unbuckle(user) return -/obj/structure/stool/chair/e_chair/New() - - src.overl = new /atom/movable/overlay( src.loc ) - src.overl.icon = 'objects.dmi' - src.overl.icon_state = "e_chairo0" - src.overl.layer = 5 - src.overl.name = "electrified chair" - src.overl.master = src - spark.set_up(12, 1, src) - return - -/obj/structure/stool/chair/e_chair/Del() - - //src.overl = null - del(src.overl) - ..() - return - -/obj/structure/stool/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob) - - if (istype(W, /obj/item/weapon/wrench)) - var/obj/structure/stool/chair/C = new /obj/structure/stool/chair( src.loc ) - playsound(src.loc, 'Ratchet.ogg', 50, 1) - C.dir = src.dir - src.part1.loc = src.loc - src.part1.master = null - src.part1 = null - //SN src = null - del(src) - return - if(istype(W, /obj/item/device/assembly/signaler)) - var/obj/item/assembly/shock_kit/kit = src.part1 - var/obj/item/device/radio/electropack/target = kit.part2 - var/obj/item/device/assembly/signaler/S = W - target.set_frequency(S.frequency) - target.code = S.code - for(var/mob/M in viewers(src, null)) - M.show_message("\red [user] has set the electric chair using the [W].") - return - -/obj/structure/stool/chair/e_chair/verb/toggle_power() - set name = "Toggle Electric Chair" - set category = "Object" - set src in oview(1) - - if ((usr.stat || usr.restrained() || !( usr.canmove ) || usr.lying)) - return - if(isshocking && on) - shock() - src.on = !( src.on ) - src.icon_state = text("e_chair[]", src.on) - src.overl.icon_state = text("e_chairo[]", src.on) - return - -/obj/structure/stool/chair/e_chair/proc/shock() - if (!( src.on )) - return - if(isshocking) - processing_objects.Remove(src) - src.icon_state = text("e_chair[]", src.on) - src.overl.icon_state = text("e_chairo[]", src.on) - for(var/mob/living/M in affected) - M.jitteriness = 0 - M.is_jittery = 0 - M.anchored = 0 - affected.Remove(M) - isshocking = 0 - return - else - src.icon_state = "e_chairs" - src.overl.icon_state = "e_chairos" - spark.start() - for(var/mob/M in hearers(src, null)) - M.show_message("\red The electric chair went off!.", 3, "\red You hear a deep sharp shock.", 2) - processing_objects.Add(src) - isshocking = 1 - return - -/obj/structure/stool/chair/e_chair/process() - // special power handling - var/area/A = get_area(src) - if(isarea(A) && A.powered(EQUIP)) - A.use_power(EQUIP, 5000) - for(var/mob/living/M in src.loc) - affected.Add(M) - M.make_jittery(1000) - M.anchored = 1 - M.Stun(600) - M.burn_skin(10) - spark.start() - -/obj/structure/stool/chair/ex_act(severity) - unbuckle_all() - switch(severity) - if(1.0) - del(src) - return - if(2.0) - if (prob(50)) - del(src) - return - if(3.0) - if (prob(5)) - del(src) - return - return - -/obj/structure/stool/chair/blob_act() - if(prob(75)) - unbuckle_all() - del(src) - -/obj/structure/stool/chair/New() +/obj/structure/stool/bed/chair/New() src.verbs -= /atom/movable/verb/pull - if (src.dir == NORTH) + if(src.dir == NORTH) src.layer = FLY_LAYER ..() return -/obj/structure/stool/chair/Del() - unbuckle_all() - ..() - return - -/obj/structure/stool/chair/verb/rotate() +/obj/structure/stool/bed/chair/verb/rotate() set name = "Rotate Chair" set category = "Object" set src in oview(1) src.dir = turn(src.dir, 90) - if (src.dir == NORTH) + if(src.dir == NORTH) src.layer = FLY_LAYER else src.layer = OBJ_LAYER + + if(buckled_mob) + buckled_mob.dir = dir return -/obj/structure/stool/chair/MouseDrop_T(mob/M as mob, mob/user as mob) +/obj/structure/stool/bed/chair/MouseDrop_T(mob/M as mob, mob/user as mob) + if(!istype(M)) return buckle_mob(M, user) return -/obj/structure/stool/chair/attack_paw(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/stool/chair/attack_hand(mob/user as mob) - if (manual_unbuckle_all(user)) - src.add_fingerprint(user) - return - //roller bed /obj/structure/stool/bed/roller @@ -286,65 +145,28 @@ icon_state = "down" anchored = 0 - Move() - ..() - for(var/mob/M in src:buckled_mobs) - if (M.buckled == src) - M.loc = src.loc +/obj/structure/stool/bed/roller/Move() + ..() + if(buckled_mob) + if(buckled_mob.buckled == src) + buckled_mob.loc = src.loc - buckle_mob(mob/M as mob, mob/user as mob) - if (!ticker) - user << "You can't buckle anyone in before the game starts." - return 0 - if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat || M.buckled)) - return 0 - if (M == usr) - M.visible_message(\ - "\blue [M.name] buckles in!",\ - "You buckle yourself to [src].",\ - "You hear metal clanking") - else - M.visible_message(\ - "\blue [M.name] is buckled in to [src] by [user.name]!",\ - "You buckled into [src] by [user.name].",\ - "You hear metal clanking") - M.anchored = 1 - M.buckled = src - M.loc = src.loc - M.pixel_y = 6 - M.update_clothing() - src:buckled_mobs += M - src.add_fingerprint(user) - density = 1 - icon_state = "up" - return 1 +/obj/structure/stool/bed/roller/buckle_mob(mob/M as mob, mob/user as mob) + if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat || M.buckled || istype(usr, /mob/living/silicon/pai))) + return + M.pixel_y = 6 + M.update_clothing() + density = 1 + icon_state = "up" + ..() + return - manual_unbuckle_all(mob/user as mob) - var/N = 0; - for(var/mob/M in src:buckled_mobs) - if (M.buckled == src) - if (M != user) - M.visible_message(\ - "\blue [M.name] was unbuckled by [user.name]!",\ - "You unbuckled from [src] by [user.name].",\ - "You hear metal clanking") - else - var/t_himself = "itself" - if (M.gender == MALE) - t_himself = "himself" - else if (M.gender == FEMALE) - t_himself = "herself" - - M.visible_message(\ - "\blue [M.name] unbuckled [t_himself]!",\ - "You unbuckle yourself from [src].",\ - "You hear metal clanking") - M.pixel_y = 0 - M.anchored = 0 - M.buckled = null - M.update_clothing() - N++ - if(N) - density = 0 - icon_state = "down" - return N +/obj/structure/stool/bed/roller/manual_unbuckle(mob/user as mob) + if(buckled_mob) + buckled_mob.pixel_y = 0 + buckled_mob.anchored = 0 + buckled_mob.buckled = null + density = 0 + icon_state = "down" + ..() + return diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index 25a60d1c7e8..60c5395ed5e 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -9,6 +9,7 @@ var/obj/screen/storage/boxes = null var/obj/screen/close/closer = null w_class = 3.0 + var/foldable = null // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard /obj/item/weapon/storage/proc/return_inv() @@ -96,7 +97,7 @@ return //This proc is called when you want to place an item into the storage item. -/obj/item/weapon/storage/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob) ..() if(isrobot(user)) user << "\blue You're a robot. No." @@ -138,6 +139,7 @@ user << "\red The tray won't fit in [src]." return else + W.loc = user.loc if ((user.client && user.s_active != src)) user.client.screen -= W @@ -157,19 +159,13 @@ user << "\red The [src] cannot hold [W] as it's a storage item of the same size." return //To prevent the stacking of the same sized items. - if(user) - user.u_equip(W) - W.loc = src - if ((user.client && user.s_active != src)) - user.client.screen -= W - src.orient2hud(user) - W.dropped(user) - add_fingerprint(user) - for(var/mob/O in viewers(user, null)) - O.show_message(text("\blue [user] has added [W] to [src]!")) - else - W.loc = src - orient_objs(5, 10, 4 + min(7, storage_slots), 10) + user.u_equip(W) + W.loc = src + if ((user.client && user.s_active != src)) + user.client.screen -= W + src.orient2hud(user) + W.dropped(user) + add_fingerprint(user) if(istype(src, /obj/item/weapon/storage/backpack/santabag)) // update the santa bag icon if(contents.len < 5) @@ -180,6 +176,8 @@ src.icon_state = "giftbag2" if (istype(W, /obj/item/weapon/gun/energy/crossbow)) return //STEALTHY + for(var/mob/O in viewers(user, null)) + O.show_message(text("\blue [user] has added [W] to [src]!")) //Foreach goto(139) return @@ -249,8 +247,29 @@ /obj/screen/storage/attackby(W, mob/user as mob) src.master.attackby(W, user) return +// BubbleWrap - A box can be folded up to make card +/obj/item/weapon/storage/attack_self(mob/user as mob) + if ( contents.len ) + return + if ( !ispath(src.foldable) ) + return + var/found = 0 + // Close any open UI windows first + for(var/mob/M in range(1)) + if (M.s_active == src) + src.close(M) + if ( M == user ) + found = 1 + if ( !found ) // User is too far away + return + // Now make the cardboard + user << "\blue You fold [src] flat." + new src.foldable(get_turf(src)) + del(src) +//BubbleWrap END /obj/item/weapon/storage/box/ + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap /obj/item/weapon/storage/box/survival/New() ..() @@ -296,7 +315,7 @@ /obj/item/weapon/storage/box/syndicate/New() ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1))) + switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1))) if ("bloodyspai") new /obj/item/clothing/under/chameleon(src) new /obj/item/clothing/mask/gas/voice(src) @@ -325,6 +344,12 @@ new /obj/item/weapon/plastique(src) return + if ("murder") + new /obj/item/weapon/melee/energy/sword(src) + new /obj/item/clothing/glasses/thermal(src) + new /obj/item/weapon/card/emag(src) + return + if("freedom") var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) O.imp = new /obj/item/weapon/implant/freedom(O) diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 5cbcee8c722..21cd845f272 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -238,7 +238,7 @@ proc/trigger_armed_response_team(var/force = 0) W.access = get_access("Head of Personnel") W.assignment = "Emergency Response Team" W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)//Let's add their alloted CentCom access. - W.registered_name = real_name + W.registered = real_name equip_if_possible(W, slot_wear_id) return 1 \ No newline at end of file diff --git a/code/game/sound.dm b/code/game/sound.dm index 41c9033eae4..44176afb093 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -10,6 +10,7 @@ if ("clownstep") soundin = pick('clownstep1.ogg','clownstep2.ogg') if ("swing_hit") soundin = pick('genhit1.ogg', 'genhit2.ogg', 'genhit3.ogg') if ("hiss") soundin = pick('hiss1.ogg','hiss2.ogg','hiss3.ogg','hiss4.ogg') + if ("pageturn") soundin = pick('pageturn1.ogg', 'pageturn2.ogg','pageturn3.ogg') var/sound/S = sound(soundin) S.wait = 0 //No queue @@ -27,10 +28,16 @@ M << S - for(var/obj/structure/closet/L in range(world.view+extrarange, source)) - if(locate(/mob/, L)) - for(var/mob/Ml in L) - Ml << S + for(var/obj/structure/closet/L in range(world.view+extrarange, source)) + if(locate(/mob/, L)) + for(var/mob/M in L) + if (M.client) + if(M.ear_deaf <= 0 || !M.ear_deaf) + if(isturf(source)) + var/dx = source.x - M.x + S.pan = max(-100, min(100, dx/8.0 * 100)) + + M << S // Now plays for people in lockers! -- Polymorph /mob/proc/playsound_local(var/atom/source, soundin, vol as num, vary, extrarange as num) @@ -58,14 +65,14 @@ src << S -client/verb/Toggle_Soundscape() - set category = "OOC" +client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful + set category = "Special Verbs" set name = "Toggle Ambience" usr:client:no_ambi = !usr:client:no_ambi if(usr:client:no_ambi) - usr << sound(pick('shipambience.ogg'), repeat = 0, wait = 0, volume = 0, channel = 2) + usr << sound(pick('shipambience.ogg','ambigen1.ogg','ambigen3.ogg','ambigen4.ogg','ambigen5.ogg','ambigen6.ogg','ambigen7.ogg','ambigen8.ogg','ambigen9.ogg','ambigen10.ogg','ambigen11.ogg','ambigen12.ogg','ambigen14.ogg','ambicha1.ogg','ambicha2.ogg','ambicha3.ogg','ambicha4.ogg','ambimalf.ogg','ambispace.ogg','ambimine.ogg','title2.ogg'), repeat = 0, wait = 0, volume = 0, channel = 2) else - usr << sound(pick('shipambience.ogg'), repeat = 1, wait = 0, volume = 35, channel = 2) + usr << sound(pick('shipambience.ogg','ambigen1.ogg','ambigen3.ogg','ambigen4.ogg','ambigen5.ogg','ambigen6.ogg','ambigen7.ogg','ambigen8.ogg','ambigen9.ogg','ambigen10.ogg','ambigen11.ogg','ambigen12.ogg','ambigen14.ogg','ambicha1.ogg','ambicha2.ogg','ambicha3.ogg','ambicha4.ogg','ambimalf.ogg','ambispace.ogg','ambimine.ogg','title2.ogg'), repeat = 1, wait = 0, volume = 35, channel = 2) usr << "Toggled ambience sound." return diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 1a9fb3a2d68..a0ed2c4d84f 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -65,7 +65,7 @@ var/list/supply_groups = new() if (prob(5)) del(src) -/area/supplyshuttle/ +/area/supplyshuttle name = "Supply Shuttle" icon_state = "supply" requires_power = 0 @@ -323,8 +323,8 @@ var/list/supply_groups = new() reqform.info += "

[station_name] Supply Requisition Form


" if (istype(usr:wear_id, /obj/item/weapon/card/id)) - if(usr:wear_id.registered_name) - idname = usr:wear_id.registered_name + if(usr:wear_id.registered) + idname = usr:wear_id.registered if(usr:wear_id.assignment) idrank = usr:wear_id.assignment if (istype(usr:wear_id, /obj/item/device/pda)) diff --git a/code/game/verbs/sound.dm b/code/game/verbs/sound.dm index 3dfca9c3926..2e64eabf73b 100644 --- a/code/game/verbs/sound.dm +++ b/code/game/verbs/sound.dm @@ -5,7 +5,6 @@ if(istype(usr,/mob)) var/mob/M = usr - M.midis = !M.midis if(M.client) M.client.midis = !M.client.midis diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 00dbc514aef..3e64cb8fdb8 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -496,9 +496,9 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that log_admin("[key_name(src)] has granted [M.key] full access.") id.icon_state = "gold" id:access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() - id.registered_name = H.real_name + id.registered = H.real_name id.assignment = "Captain" - id.name = "[id.registered_name]'s ID Card ([id.assignment])" + id.name = "[id.registered]'s ID Card ([id.assignment])" H.equip_if_possible(id, H.slot_wear_id) H.update_clothing() else @@ -658,7 +658,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.name = "[M.real_name]'s ID Card" W.access = get_all_accesses() W.assignment = "Tunnel Clown!" - W.registered_name = M.real_name + W.registered = M.real_name M.equip_if_possible(W, M.slot_wear_id) var/obj/item/weapon/fireaxe/fire_axe = new(M) @@ -717,7 +717,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.name = "[M.real_name]'s ID Card" W.access = get_all_accesses() W.assignment = "Reaper" - W.registered_name = M.real_name + W.registered = M.real_name M.equip_if_possible(W, M.slot_wear_id) if("death commando")//Was looking to add this for a while. @@ -755,7 +755,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.access = get_all_accesses() W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer") W.assignment = "CentCom Review Official" - W.registered_name = M.real_name + W.registered = M.real_name W.over_jumpsuit = 0 M.equip_if_possible(W, M.slot_wear_id) @@ -780,7 +780,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.access = get_all_accesses() W.access += get_all_centcom_access() W.assignment = "CentCom Commanding Officer" - W.registered_name = M.real_name + W.registered = M.real_name W.over_jumpsuit = 0 M.equip_if_possible(W, M.slot_wear_id) @@ -803,7 +803,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.access = get_all_accesses() W.access += get_all_centcom_access() W.assignment = "Special Operations Officer" - W.registered_name = M.real_name + W.registered = M.real_name M.equip_if_possible(W, M.slot_wear_id) if("blue wizard") @@ -857,7 +857,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.access = get_all_accesses() W.access += get_all_centcom_access() W.assignment = "Admiral" - W.registered_name = M.real_name + W.registered = M.real_name M.equip_if_possible(W, M.slot_wear_id) M.update_clothing() diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index 65e09faf50c..a30fa3cf2ae 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -47,7 +47,7 @@ W.access = get_all_accesses() W.access += get_all_centcom_access() W.assignment = "Highlander" - W.registered_name = H.real_name + W.registered = H.real_name H.equip_if_possible(W, H.slot_wear_id) message_admins("\blue [key_name_admin(usr)] used THERE CAN BE ONLY ONE!", 1) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 405fc5bb814..2a89b07d9ea 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -183,7 +183,7 @@ var/global/sent_strike_team = 0 W.access = get_all_accesses()//They get full station access. W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)//Let's add their alloted CentCom access. W.assignment = "Death Commando" - W.registered_name = real_name + W.registered = real_name equip_if_possible(W, slot_wear_id) resistances += "alien_embryo" diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm index eccd7ea42af..1fc2a4bbdec 100644 --- a/code/modules/admin/verbs/striketeam_syndicate.dm +++ b/code/modules/admin/verbs/striketeam_syndicate.dm @@ -186,7 +186,7 @@ var/global/sent_syndicate_strike_team = 0 W.access = get_all_accesses()//They get full station access because obviously the syndicate has HAAAX, and can make special IDs for their most elite members. W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage, access_syndicate)//Let's add their forged CentCom access and syndicate access. W.assignment = "Syndicate Commando" - W.registered_name = real_name + W.registered = real_name equip_if_possible(W, slot_wear_id) resistances += "alien_embryo" diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 7b86105926c..272a721658a 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -400,6 +400,7 @@ usr << "\blue [grenades] / [max_grenades] Grenades." attackby(obj/item/I as obj, mob/user as mob) + if((istype(I, /obj/item/weapon/chem_grenade)) || (istype(I, /obj/item/weapon/flashbang)) || (istype(I, /obj/item/weapon/smokebomb)) || (istype(I, /obj/item/weapon/mustardbomb)) || (istype(I, /obj/item/weapon/empgrenade))) if(grenades.len < max_grenades) user.drop_item() @@ -411,7 +412,15 @@ usr << "\red The grenade launcher cannot hold more grenades." afterattack(obj/target, mob/user , flag) - if(target == user) return + + if (istype(target, /obj/item/weapon/storage/backpack )) + return + + else if (locate (/obj/structure/table, src.loc)) + return + + else if(target == user) + return if(grenades.len) spawn(0) fire_grenade(target,user) @@ -420,7 +429,60 @@ proc fire_grenade(atom/target, mob/user) - if (locate (/obj/structure/table, src.loc)) + for(var/mob/O in viewers(world.view, user)) + O.show_message(text("\red [] fired a grenade!", user), 1) + user << "\red You fire the grenade launcher!" + if (istype(grenades[1], /obj/item/weapon/chem_grenade)) + var/obj/item/weapon/chem_grenade/F = grenades[1] + grenades -= F + F.loc = user.loc + F.throw_at(target, 30, 2) + message_admins("[key_name_admin(user)] fired a chemistry grenade from a grenade launcher ([src.name]).") + log_game("[key_name_admin(user)] used a chemistry grenade ([src.name]).") + F.state = 1 + F.icon_state = initial(icon_state)+"_armed" + playsound(user.loc, 'armbomb.ogg', 75, 1, -3) + spawn(15) + F.explode() + else if (istype(grenades[1], /obj/item/weapon/flashbang)) + var/obj/item/weapon/flashbang/F = grenades[1] + grenades -= F + F.loc = user.loc + F.throw_at(target, 30, 2) + F.active = 1 + F.icon_state = "flashbang1" + playsound(user.loc, 'armbomb.ogg', 75, 1, -3) + spawn(15) + F.prime() + else if (istype(grenades[1], /obj/item/weapon/smokebomb)) + var/obj/item/weapon/smokebomb/F = grenades[1] + grenades -= F + F.loc = user.loc + F.throw_at(target, 30, 2) + F.icon_state = "flashbang1" + playsound(user.loc, 'armbomb.ogg', 75, 1, -3) + spawn(15) + F.prime() + else if (istype(grenades[1], /obj/item/weapon/mustardbomb)) + var/obj/item/weapon/mustardbomb/F = grenades[1] + grenades -= F + F.loc = user.loc + F.throw_at(target, 30, 2) + F.icon_state = "flashbang1" + playsound(user.loc, 'armbomb.ogg', 75, 1, -3) + spawn(15) + F.prime() + else if (istype(grenades[1], /obj/item/weapon/empgrenade)) + var/obj/item/weapon/empgrenade/F = grenades[1] + grenades -= F + F.loc = user.loc + F.throw_at(target, 30, 2) + F.active = 1 + F.icon_state = "empar" + playsound(user.loc, 'armbomb.ogg', 75, 1, -3) + spawn(15) + F.prime() + if (locate (/obj/structure/table, src.loc) || locate (/obj/item/weapon/storage, src.loc)) return else for(var/mob/O in viewers(world.view, user)) @@ -433,7 +495,7 @@ F.throw_at(target, 30, 2) message_admins("[key_name_admin(user)] fired a chemistry grenade from a grenade launcher ([src.name]).") log_game("[key_name_admin(user)] used a chemistry grenade ([src.name]).") - F.path = 1 + F.state = 1 F.icon_state = initial(icon_state)+"_armed" playsound(user.loc, 'armbomb.ogg', 75, 1, -3) spawn(15) @@ -480,6 +542,7 @@ /obj/item/weapon/gun/syringe name = "syringe gun" + desc = "A spring loaded rifle designed to fit syringes, designed to incapacitate unruly patients from a distance." icon = 'gun.dmi' icon_state = "syringegun" item_state = "syringegun" @@ -495,19 +558,19 @@ set src in view() ..() if (!(usr in view(2)) && usr!=src.loc) return - usr << "\icon [src] Syringe gun:" - usr << "\blue [syringes] / [max_syringes] Syringes." + usr << "\blue [syringes.len] / [max_syringes] syringes." attackby(obj/item/I as obj, mob/user as mob) + if(istype(I, /obj/item/weapon/reagent_containers/syringe)) if(syringes.len < max_syringes) user.drop_item() I.loc = src syringes += I - user << "\blue You put the syringe in the syringe gun." - user << "\blue [syringes.len] / [max_syringes] Syringes." + user << "\blue You put the syringe in [src]." + user << "\blue [syringes.len] / [max_syringes] syringes." else - usr << "\red The syringe gun cannot hold more syringes." + usr << "\red [src] cannot hold more syringes." afterattack(obj/target, mob/user , flag) if(!isturf(target.loc) || target == user) return @@ -515,7 +578,7 @@ if(syringes.len) spawn(0) fire_syringe(target,user) else - usr << "\red The syringe gun is empty." + usr << "\red [src] is empty." proc fire_syringe(atom/target, mob/user) @@ -558,84 +621,11 @@ return -/obj/item/weapon/gun/rapidsyringe +/obj/item/weapon/gun/syringe/rapidsyringe name = "rapid syringe gun" - icon = 'gun.dmi' + desc = "A modification of the syringe gun design, using a rotating cylinder to store up to four syringes." icon_state = "rapidsyringegun" - item_state = "rapidsyringegun" - w_class = 3.0 - throw_speed = 4 - throw_range = 10 - force = 8.0 - var/list/syringes = new/list() - var/max_syringes = 40 - - examine() - set src in view() - ..() - if (!(usr in view(2)) && usr!=src.loc) return - usr << "\icon [src] Rapid Syringe gun:" - usr << "\blue [syringes] / [max_syringes] Syringes." - - attackby(obj/item/I as obj, mob/user as mob) - if(istype(I, /obj/item/weapon/reagent_containers/syringe)) - if(syringes.len < max_syringes) - user.drop_item() - I.loc = src - syringes += I - user << "\blue You put the syringe in the rapid syringe gun." - user << "\blue [syringes.len] / [max_syringes] Syringes." - else - usr << "\red The rapid syringe gun cannot hold more syringes." - - afterattack(obj/target, mob/user , flag) - if(!isturf(target.loc) || target == user) return - - if(syringes.len) - spawn(0) fire_syringe(target,user) - else - usr << "\red rapid The syringe gun is empty." - - proc - fire_syringe(atom/target, mob/user) - if (locate (/obj/structure/table, src.loc)) - return - else - var/turf/trg = get_turf(target) - var/obj/effect/syringe_gun_dummy/D = new/obj/effect/syringe_gun_dummy(get_turf(src)) - var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] - S.reagents.trans_to(D, S.reagents.total_volume) - syringes -= S - del(S) - D.icon_state = "syringeproj" - D.name = "syringe" - playsound(user.loc, 'syringeproj.ogg', 50, 1) - - for(var/i=0, i<6, i++) - if(!D) break - if(D.loc == trg) break - step_towards(D,trg) - - for(var/mob/living/carbon/M in D.loc) - if(!istype(M,/mob/living/carbon)) continue - if(M == user) continue - D.reagents.trans_to(M, 15) - M.take_organ_damage(5) - for(var/mob/O in viewers(world.view, D)) - O.show_message(text("\red [] was hit by the syringe!", M), 1) - - del(D) - if(D) - for(var/atom/A in D.loc) - if(A == user) continue - if(A.density) del(D) - - sleep(1) - - if (D) spawn(10) del(D) - - return - + max_syringes = 4 /obj/structure/reagent_dispensers name = "Dispenser" @@ -731,9 +721,15 @@ reagents = R R.my_atom = src + attackby(obj/item/weapon/W as obj, mob/user as mob) + + return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) + return + attackby(obj/item/I as obj, mob/user as mob) + return afterattack(obj/target, mob/user , flag) return @@ -943,6 +939,7 @@ return attack_hand() attackby(obj/item/I as obj, mob/user as mob) + return afterattack(obj/target, mob/user , flag) @@ -969,7 +966,7 @@ if(!T.dna) usr << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)" return - if(T.mutations & HUSK) //target done been et, no more blood in him + if(T.mutations & NOCLONE) //target done been et, no more blood in him user << "\red You are unable to locate any blood." return B.holder = src @@ -1093,6 +1090,35 @@ else icon_state = "[(has_blood?"b":"")][rounded_vol]" item_state = "syringe_[rounded_vol]" + if(reagents.total_volume) + var/obj/effect/overlay = new/obj + overlay.icon = 'syringefilling.dmi' + switch(rounded_vol) + if(5) overlay.icon_state = "5" + if(10) overlay.icon_state = "10" + if(15) overlay.icon_state = "15" + + var/list/rgbcolor = list(0,0,0) + var/finalcolor + for(var/datum/reagent/re in reagents.reagent_list) // natural color mixing bullshit/algorithm + if(!finalcolor) + rgbcolor = GetColors(re.color) + finalcolor = re.color + else + var/newcolor[3] + var/prergbcolor[3] + prergbcolor = rgbcolor + newcolor = GetColors(re.color) + + rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2 + rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2 + rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2 + + finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3]) + + overlay.icon += finalcolor + if(!istype(src.loc, /turf)) overlay.layer = 30 + overlays += overlay /obj/item/weapon/reagent_containers/ld50_syringe @@ -1135,6 +1161,10 @@ attack_paw() return attack_hand() + attackby(obj/item/I as obj, mob/user as mob) + + return + afterattack(obj/target, mob/user , flag) if(!target.reagents) return @@ -1252,6 +1282,9 @@ user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to inject [M.name] ([M.ckey])") log_admin("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].") message_admins("ATTACK: [user] ([user.ckey]) injected [M] ([M.ckey]) with [src].") +// log_attack("[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + + src.reagents.reaction(M, INGEST) if(M.reagents) var/trans = reagents.trans_to(M, amount_per_transfer_from_this) @@ -1340,6 +1373,7 @@ return attackby(obj/item/weapon/W as obj, mob/user as mob) + return attack_self(mob/user as mob) return @@ -1380,6 +1414,8 @@ log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") +// log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + for(var/mob/O in viewers(world.view, user)) O.show_message("\red [user] feeds [M] [src].", 1) @@ -1472,6 +1508,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) + return afterattack(obj/target, mob/user , flag) return @@ -1494,6 +1531,7 @@ var/slices_num attackby(obj/item/weapon/W as obj, mob/user as mob) + if((slices_num <= 0 || !slices_num) || !slice_path) return 1 var/inaccurate = 0 @@ -1606,6 +1644,8 @@ log_admin("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") +// log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + if(reagents.total_volume) reagents.reaction(M, INGEST) @@ -1697,6 +1737,9 @@ if(!icon_state) icon_state = "pill[rand(1,20)]" + attackby(obj/item/weapon/W as obj, mob/user as mob) + + return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) @@ -1727,6 +1770,8 @@ message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") +// log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + if(reagents.total_volume) reagents.reaction(M, INGEST) spawn(5) @@ -1739,6 +1784,10 @@ return 0 + attackby(obj/item/I as obj, mob/user as mob) + + return + afterattack(obj/target, mob/user , flag) if(target.is_open_container() == 1 && target.reagents) @@ -2355,6 +2404,7 @@ volume = 50 attackby(obj/item/weapon/W as obj, mob/user as mob) + return attack_self(mob/user as mob) return @@ -2388,6 +2438,8 @@ message_admins("ATTACK: [user] ([user.ckey]) fed [M] ([M.ckey]) with [src].") +// log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") + if(reagents.total_volume) reagents.reaction(M, INGEST) spawn(5) @@ -2398,6 +2450,7 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) + return afterattack(obj/target, mob/user , flag) @@ -2448,7 +2501,7 @@ icon_state = "soysauce" if("frostoil") name = "Coldsauce" - desc = "Leaves the tongue numb in it's passage." + desc = "Leaves the tongue numb in its passage." icon_state = "coldsauce" if("sodiumchloride") name = "Salt Shaker" @@ -2761,7 +2814,7 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater name = "Flask of Holy Water" - desc = "A flask of the chaplains holy water." + desc = "A flask of the chaplain's holy water." icon_state = "holyflask" New() ..() @@ -2885,12 +2938,12 @@ reagents.add_reagent("toxin", 50) /obj/item/weapon/reagent_containers/pill/cyanide - name = "Suicide pill" + name = "Cyanide pill" desc = "Don't swallow this." icon_state = "pill5" New() ..() - reagents.add_reagent("chloralhydrate", 100) + reagents.add_reagent("cyanide", 50) /obj/item/weapon/reagent_containers/pill/adminordrazine name = "Adminordrazine pill" @@ -2969,6 +3022,25 @@ ..() reagents.add_reagent("fuel",1000) + + bullet_act(var/obj/item/projectile/Proj) + if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) + explosion(src.loc,-1,0,2) + if(src) + del(src) + + + + blob_act() + explosion(src.loc,0,1,5,7,10) + if(src) + del(src) + + ex_act() + explosion(src.loc,-1,0,2) + if(src) + del(src) + /obj/structure/reagent_dispensers/peppertank name = "Pepper Spray Refiller" desc = "Refill pepper spray canisters." @@ -2976,27 +3048,11 @@ icon_state = "peppertank" anchored = 1 density = 0 - amount_per_transfer_from_this = 30 + amount_per_transfer_from_this = 45 New() ..() reagents.add_reagent("condensedcapsaicin",1000) -/obj/structure/reagent_dispensers/fueltank/blob_act() - explosion(src.loc,0,1,5,7,10) - if(src) - del(src) - -/obj/structure/reagent_dispensers/fueltank/ex_act() - explosion(src.loc,-1,0,2) - if(src) - del(src) - -/obj/structure/reagent_dispensers/fueltank/temperature_expose(datum/gas_mixture/air, temperature, volume) - if(temperature > T0C+500) - explosion(src.loc,-1,0,2) - if(src) - del(src) - return ..() /obj/structure/reagent_dispensers/water_cooler name = "Water-Cooler" diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 7c02f43e8e1..181a2000efd 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -92,7 +92,7 @@ C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]") var/perpname = "wot" if(istype(perp.wear_id,/obj/item/weapon/card/id)) - perpname = perp.wear_id:registered_name + perpname = perp.wear_id:registered else if(istype(perp.wear_id,/obj/item/device/pda)) var/obj/item/device/pda/tempPda = perp.wear_id perpname = tempPda.owner diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index d1fba66d7ca..0d769c83559 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -315,10 +315,10 @@ overlays = null if(buckled) - if(istype(buckled, /obj/structure/stool/bed)) - lying = 1 - else + if(istype(buckled, /obj/structure/stool/bed/chair)) lying = 0 + else + lying = 1 // Automatically drop anything in store / id / belt if you're not wearing a uniform. if (zone_sel) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 10c1e4a6832..434d7d01bfd 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -28,13 +28,16 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) - if(prob(70)) + if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + /*if(prob(70)) for(var/mob/M in viewers(src, null)) if(M.client) M << "\red [src] fails to push [tmob]'s fat ass out of the way." now_pushing = 0 return*/ + if(tmob.nopush) + now_pushing = 0 + return tmob.LAssailant = src now_pushing = 0 @@ -109,7 +112,7 @@ ear_damage += 15 ear_deaf += 60 - bruteloss += b_loss + adjustBruteLoss(b_loss) adjustFireLoss(f_loss) updatehealth() @@ -150,7 +153,7 @@ if ((M.client && !( M.blinded ))) M.show_message(text("\red [] has been hit by []", src, O), 1) if (health > 0) - bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25) + adjustBruteLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25)) adjustFireLoss(30) updatehealth() @@ -249,9 +252,7 @@ else m_select.screen_loc = null - if(client && client.admin_invis) - invisibility = 100 - else if (alien_invis) + if (alien_invis) invisibility = 2 if(istype(loc, /turf))//If they are standing on a turf. AddCamoOverlay(loc)//Overlay camo. @@ -280,12 +281,25 @@ O.show_message(text("\red [M.name] has bit []!", src), 1) var/damage = rand(1, 3) - bruteloss += damage + adjustBruteLoss(damage) updatehealth() return + +/mob/living/carbon/alien/larva/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) + M.emote("[M.friendly] [src]") + else + for(var/mob/O in viewers(src, null)) + O.show_message("\red [M] [M.attacktext] [src]!", 1) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + adjustBruteLoss(damage) + updatehealth() + + + /mob/living/carbon/alien/larva/attack_paw(mob/living/carbon/monkey/M as mob) if(!(istype(M, /mob/living/carbon/monkey))) return//Fix for aliens receiving double messages when attacking other aliens. @@ -310,7 +324,7 @@ for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [M.name] has bit [src]!"), 1) - bruteloss += rand(1, 3) + adjustBruteLoss(rand(1, 3)) updatehealth() return @@ -335,7 +349,7 @@ else damage = rand(5, 35) - bruteloss += damage + adjustBruteLoss(damage) updatehealth() @@ -449,7 +463,7 @@ for(var/mob/O in viewers(M, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has weakened []!", M, src), 1, "\red You hear someone fall.", 2) - bruteloss += damage + adjustBruteLoss(damage) updatehealth() else if(M.type != /mob/living/carbon/human/tajaran) @@ -492,7 +506,7 @@ for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [M.name] has bit []!", src), 1) - bruteloss += damage + adjustBruteLoss(damage) updatehealth() else M << "\green [name] is too injured for that." diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm index 55c40cb4ce7..581179cdd8b 100644 --- a/code/modules/mob/living/carbon/brain/life.dm +++ b/code/modules/mob/living/carbon/brain/life.dm @@ -112,6 +112,7 @@ bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) //Account for massive pressure differences + return //TODO: DEFERRED handle_temperature_damage(body_part, exposed_temperature, exposed_intensity) @@ -171,7 +172,7 @@ if(health <= 20 && prob(1)) spawn(0) emote("gasp") //if(!rejuv) oxyloss++ - if(!reagents.has_reagent("inaprovaline")) oxyloss++ + if(!reagents.has_reagent("inaprovaline")) adjustOxyLoss(1) if(stat != 2) stat = 1 Paralyse(5) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 2fd08fb4cb5..b08d24d45c0 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -82,3 +82,16 @@ world.Reboot() return ..(gibbed) + +/mob/living/carbon/human/proc/ChangeToHusk() + if(mutations & HUSK) + return + mutations |= HUSK + real_name = "Unknown" + update_body() + return + +/mob/living/carbon/human/proc/Drain() + ChangeToHusk() + mutations |= NOCLONE + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index ae98f374f1d..016b416965e 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -89,24 +89,24 @@ if (src.wear_id) var/id - var/photo = 0 +// var/photo = 0 if(istype(src:wear_id, /obj/item/device/pda)) var/obj/item/device/pda/pda = src:wear_id id = pda.owner else - id = src.wear_id.registered_name - if (src.wear_id.PHOTO) - photo = 1 + id = src.wear_id.registered +// if (src.wear_id.PHOTO) +// photo = 1 if (id != src.real_name && in_range(src, usr)) - if (photo) - usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!" - else - usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!" +// if (photo) +// usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!" +// else + usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!" else - if (photo) - usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo." - else - usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]." +// if (photo) +// usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo." +// else + usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]." if (src.is_jittery) diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm index 02f6974676f..aa8b28715bb 100644 --- a/code/modules/mob/living/carbon/human/hud.dm +++ b/code/modules/mob/living/carbon/human/hud.dm @@ -478,6 +478,11 @@ mymob.oxygen.name = "oxygen" mymob.oxygen.screen_loc = ui_oxygen + mymob.pressure = new /obj/screen( null ) + mymob.pressure.icon = 'screen1_old.dmi' + mymob.pressure.icon_state = "pressure0" + mymob.pressure.name = "pressure" + mymob.pressure.screen_loc = ui_pressure /* mymob.i_select = new /obj/screen( null ) mymob.i_select.icon_state = "selector" @@ -669,7 +674,7 @@ mymob.client.screen = null //, mymob.i_select, mymob.m_select - mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach ) + mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.pressure, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach ) mymob.client.screen += src.adding + src.other //if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c92fa7bd87a..bb84057af2b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -125,7 +125,25 @@ now_pushing = 1 if (ismob(AM)) var/mob/tmob = AM - if(tmob.a_intent == "help" && a_intent == "help" && tmob.canmove && canmove) // mutual brohugs all around! + +//BubbleWrap - Should stop you pushing a restrained person out of the way + + if(istype(tmob, /mob/living/carbon/human)) + + for(var/mob/M in range(tmob, 1)) + if( ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) + if ( !(world.time % 5) ) + src << "\red [tmob] is restrained, you cannot push past" + now_pushing = 0 + return + if( tmob.pulling == M && ( M.restrained() && !( tmob.restrained() ) && tmob.stat == 0) ) + if ( !(world.time % 5) ) + src << "\red [tmob] is restraining [M], you cannot push past" + now_pushing = 0 + return + + //BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller + if((tmob.a_intent == "help" || tmob.restrained()) && (a_intent == "help" || src.restrained()) && tmob.canmove && canmove) // mutual brohugs all around! var/turf/oldloc = loc loc = tmob.loc tmob.loc = oldloc @@ -137,10 +155,20 @@ /*if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) if(prob(40) && !(mutations & FAT)) - visible_message("\red [src] fails to push [tmob]'s fat ass out of the way.", \ - "\red You fail to push [tmob]'s fat ass out of the way.") + src << "\red You fail to push [tmob]'s fat ass out of the way." now_pushing = 0 return*/ + if(tmob.r_hand && istype(tmob.r_hand, /obj/item/weapon/shield/riot)) + if(prob(99)) + now_pushing = 0 + return + if(tmob.l_hand && istype(tmob.l_hand, /obj/item/weapon/shield/riot)) + if(prob(99)) + now_pushing = 0 + return + if(tmob.nopush) + now_pushing = 0 + return tmob.LAssailant = src @@ -829,10 +857,10 @@ update_body() if(buckled) - if(istype(buckled, /obj/structure/stool/bed)) - lying = 1 - else + if(istype(buckled, /obj/structure/stool/bed/chair)) lying = 0 + else + lying = 1 // Automatically drop anything in store / id / belt if you're not wearing a uniform. if (!w_uniform) @@ -1082,8 +1110,8 @@ if (wear_id) if (istype(wear_id, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/id = wear_id - if (id.registered_name) - name = id.registered_name + if (id.registered) + name = id.registered else name = "Unknown" else if (istype(wear_id, /obj/item/device/pda)) @@ -1098,8 +1126,8 @@ if (wear_id) if (istype(wear_id, /obj/item/weapon/card/id)) var/obj/item/weapon/card/id/id = wear_id - if (id.registered_name != real_name) - name = "[real_name] (as [id.registered_name])" + if (id.registered != real_name) + name = "[real_name] (as [id.registered])" else if (istype(wear_id, /obj/item/device/pda)) @@ -1211,6 +1239,19 @@ return +//TG Simple Animal +/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) + if(M.melee_damage_upper == 0) + M.emote("[M.friendly] [src]") + else + for(var/mob/O in viewers(src, null)) + O.show_message("\red [M] [M.attacktext] [src]!", 1) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone)) + var/armor = run_armor_check(affecting, "melee") + apply_damage(damage, BRUTE, affecting, armor) + if(armor >= 2) return /mob/living/carbon/human/attack_metroid(mob/living/carbon/metroid/M as mob) @@ -1492,7 +1533,7 @@ del(src) return if("internal") - if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && (istype(target.back, /obj/item/weapon/tank) || istype(target.belt, /obj/item/weapon/tank) || istype(target.s_store, /obj/item/weapon/tank)) && !( target.internal )) ) && !( target.internal ))) + if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && istype(target.back, /obj/item/weapon/tank) && !( target.internal )) ) && !( target.internal ))) //SN src = null del(src) return @@ -1661,7 +1702,7 @@ return message = text("\red [] is trying to empty []'s pockets!!", source, target) if("CPR") - if (target.cpr_time + 3 >= world.time) + if (target.cpr_time >= world.time + 3) //SN src = null del(src) return @@ -2122,14 +2163,14 @@ It can still be worn/put on as normal. target.handcuffed = item item.loc = target if("CPR") - if (target.cpr_time + 30 >= world.time) + if (target.cpr_time >= world.time + 30) //SN src = null del(src) return if ((target.health >= -99.0 && target.stat == 1)) target.cpr_time = world.time var/suff = min(target.getOxyLoss(), 7) - target.oxyloss -= suff + target.adjustOxyLoss(-suff) target.losebreath = 0 target.updatehealth() for(var/mob/O in viewers(source, null)) @@ -2177,7 +2218,7 @@ It can still be worn/put on as normal. W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) - W.add_fingerprint(source) + W.add_fingerprint(source) if (target.r_store) var/obj/item/W = target.r_store target.u_equip(W) @@ -2187,7 +2228,7 @@ It can still be worn/put on as normal. W.loc = target.loc W.dropped(target) W.layer = initial(W.layer) - W.add_fingerprint(source) + W.add_fingerprint(source) if("internal") if (target.internal) target.internal.add_fingerprint(source) @@ -2198,11 +2239,11 @@ It can still be worn/put on as normal. if (!( istype(target.wear_mask, /obj/item/clothing/mask) )) return else - if (istype(target.back, /obj/item/weapon/tank) && (internalloc == "back" || !internalloc)) + if (istype(target.back, /obj/item/weapon/tank)) target.internal = target.back - else if (istype(target.s_store, /obj/item/weapon/tank) && (internalloc == "store" || !internalloc)) + else if (istype(target.s_store, /obj/item/weapon/tank)) target.internal = target.s_store - else if (istype(target.belt, /obj/item/weapon/tank) && (internalloc == "belt" || !internalloc)) + else if (istype(target.belt, /obj/item/weapon/tank)) target.internal = target.belt if (target.internal) for(var/mob/M in viewers(target, 1)) @@ -2213,6 +2254,9 @@ It can still be worn/put on as normal. else if(source) source.update_clothing() + spawn(0) + if(source.machine == target) + target.show_inv(source) if(target) target.update_clothing() //SN src = null @@ -2240,12 +2284,12 @@ It can still be worn/put on as normal.
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")] -
Belt: [(belt ? belt : "Nothing")] [(istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""] +
Belt: [(belt ? belt : "Nothing")]
Uniform: [(w_uniform ? w_uniform : "Nothing")]
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")] -
Back: [(back ? back : "Nothing")][(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""] +
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
ID: [(wear_id ? wear_id : "Nothing")] -
Suit Storage: [(s_store ? s_store : "Nothing")] [(istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""] +
Suit Storage: [(s_store ? s_store : "Nothing")]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(internal ? text("Remove Internal") : "")]
Empty Pockets @@ -2289,11 +2333,11 @@ It can still be worn/put on as normal. var/obj/item/weapon/card/id/id = wear_id if (istype(pda)) if (pda.id) - . = pda.id.registered_name + . = pda.id.registered else . = pda.owner else if (istype(id)) - . = id.registered_name + . = id.registered else return if_no_id return @@ -2306,7 +2350,7 @@ It can still be worn/put on as normal. if (istype(pda)) . = pda.owner else if (istype(id)) - . = id.registered_name + . = id.registered else return if_no_id return diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7ec31ec32bb..9bafddc407a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -93,6 +93,9 @@ //Disabilities handle_disabilities() + //Random events (vomiting etc) + handle_random_events() + //Status updates, death etc. UpdateLuminosity() handle_regular_status_updates() @@ -105,6 +108,9 @@ if(client) handle_regular_hud_updates() + //Being buckled to a chair or bed + check_if_buckled() + // Yup. update_canmove() @@ -451,7 +457,7 @@ if(!breath || (breath.total_moles() == 0)) if(reagents.has_reagent("inaprovaline")) return - oxyloss += HUMAN_MAX_OXYLOSS + adjustOxyLoss(HUMAN_MAX_OXYLOSS) oxygen_alert = max(oxygen_alert, 1) @@ -481,10 +487,10 @@ spawn(0) emote("gasp") if(O2_pp > 0) var/ratio = safe_oxygen_min/O2_pp - oxyloss += min(5*ratio, HUMAN_MAX_OXYLOSS) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all!) + adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS)) // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all!) oxygen_used = breath.oxygen*ratio/6 else - oxyloss += HUMAN_MAX_OXYLOSS + adjustOxyLoss(HUMAN_MAX_OXYLOSS) oxygen_alert = max(oxygen_alert, 1) /*else if (O2_pp > safe_oxygen_max) // Too much oxygen (commented this out for now, I'll deal with pressure damage elsewhere I suppose) spawn(0) emote("cough") @@ -493,7 +499,7 @@ oxygen_used = breath.oxygen*ratio/6 oxygen_alert = max(oxygen_alert, 1)*/ else // We're in safe limits - oxyloss = max(getOxyLoss()-5, 0) + adjustOxyLoss(-5) oxygen_used = breath.oxygen/6 oxygen_alert = 0 @@ -505,10 +511,10 @@ co2overloadtime = world.time else if(world.time - co2overloadtime > 120) Paralyse(3) - oxyloss += 3 // Lets hurt em a little, let them know we mean business + adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business if(world.time - co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! - oxyloss += 8 - if(prob(20) && isbreathing) // Lets give them some chance to know somethings not right though I guess. + adjustOxyLoss(8) + if(prob(20)) // Lets give them some chance to know somethings not right though I guess. spawn(0) emote("cough") else @@ -640,7 +646,17 @@ bodytemperature += 0.8*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) */ - //Account for massive pressure differences + //Account for massive pressure differences. Done by Polymorph + var/pressure = environment.return_pressure() + if(!istype(wear_suit, /obj/item/clothing/suit/space)&&!istype(wear_suit, /obj/item/clothing/suit/armor/captain)) + /*if(pressure < 20) + if(prob(25)) + src << "You feel the splittle on your lips and the fluid on your eyes boiling away, the capillteries in your skin breaking." + adjustBruteLoss(5) + */ + if(pressure > HAZARD_HIGH_PRESSURE) + adjustBruteLoss(min((10+(round(pressure/(HIGH_STEP_PRESSURE)-2)*5)),MAX_PRESSURE_DAMAGE)) + return //TODO: DEFERRED adjust_body_temperature(current, loc_temp, boost) @@ -758,14 +774,9 @@ if(nutrition < 500) //so they can't store nutrition to survive without light forever nutrition += light_amount if(light_amount > 0) //if there's enough light, heal - if(getFireLoss()) - heal_overall_damage(0,1) - if(getBruteLoss()) - heal_overall_damage(1,0) + heal_overall_damage(1,1) adjustToxLoss(-1) - - if(getOxyLoss()) - oxyloss-- + adjustOxyLoss(-1) /*if(overeatduration > 500 && !(mutations & FAT)) src << "\red You suddenly feel blubbery!" @@ -857,19 +868,25 @@ if(getOxyLoss() > 50) Paralyse(3) if(sleeping) - Paralyse(3) +// adjustHalLoss(-5) + if(paralysis <= 0) + Paralyse(2) if (prob(10) && health && !hal_crit) spawn(0) emote("snore") if(!src.sleeping_willingly) src.sleeping-- if(resting) - Weaken(3) + if(weakened <= 0) + Weaken(2) if(health < config.health_threshold_dead || brain_op_stage == 4.0) death() else if(health < config.health_threshold_crit) if(health <= 20 && prob(1)) spawn(0) emote("gasp") + //if(!rejuv) oxyloss++ + if(!reagents.has_reagent("inaprovaline")) adjustOxyLoss(1) + if(stat != 2) stat = 1 Paralyse(5) @@ -1099,7 +1116,7 @@ if (healths) if (stat != 2) - switch(health) + switch(health - halloss) if(100 to INFINITY) healths.icon_state = "health0" if(80 to 100) @@ -1133,6 +1150,24 @@ nutrition_icon.icon_state = "nutrition3" else nutrition_icon.icon_state = "nutrition4" + if (pressure) + if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain)) + pressure.icon_state = "pressure0" + + else + var/datum/gas_mixture/environment = loc.return_air() + if(environment) + switch(environment.return_pressure()) + if(HAZARD_HIGH_PRESSURE to INFINITY) + pressure.icon_state = "pressure2" + if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) + pressure.icon_state = "pressure1" + if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE) + pressure.icon_state = "pressure0" + if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) + pressure.icon_state = "pressure-1" + else + pressure.icon_state = "pressure-2" if(pullin) pullin.icon_state = "pull[pulling ? 1 : 0]" @@ -1166,6 +1201,7 @@ else bodytemp.icon_state = "temp-4" + if(!client) return 0 //Wish we did not need these client.screen -= hud_used.blurry client.screen -= hud_used.druggy client.screen -= hud_used.vimpaired @@ -1190,6 +1226,14 @@ if(!head:up && tinted_weldhelh) client.screen += hud_used.darkMask + if(eye_stat > 20) + if((eye_stat > 30)) + client.screen += hud_used.darkMask + else + client.screen += hud_used.vimpaired + + + if (stat != 2) if (machine) if (!( machine.check_eye(src) )) @@ -1202,10 +1246,33 @@ return 1 handle_random_events() + /* // probably stupid -- Doohl if (prob(1) && prob(2)) spawn(0) emote("sneeze") return + */ + + // Puke if toxloss is too high + if(!stat) + if (getToxLoss() >= 45 && nutrition > 20) + lastpuke ++ + if(lastpuke >= 25) // about 25 second delay I guess + Stun(5) + + for(var/mob/O in viewers(world.view, src)) + O.show_message(text("\red [] throws up!", src), 1) + playsound(src.loc, 'splat.ogg', 50, 1) + + var/turf/location = loc + if (istype(location, /turf/simulated)) + location.add_vomit_floor(src, 1) + + nutrition -= 20 + adjustToxLoss(-3) + + // make it so you can only puke so fast + lastpuke = 0 handle_virus_updates() if(bodytemperature > 406) @@ -1260,13 +1327,13 @@ continue if(air_master.current_cycle%3==1) if(!M.nodamage) - M.bruteloss += 5 + M.adjustBruteLoss(5) nutrition += 10 handle_changeling() if (mind) if (mind.special_role == "Changeling" && changeling) - changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50) + changeling.chem_charges = between(0, ((max((0.9 - (changeling.chem_charges / 50)), 0.1)*changeling.chem_recharge_multiplier) + changeling.chem_charges), changeling.chem_storage) if ((changeling.geneticdamage > 0)) changeling.geneticdamage = changeling.geneticdamage-1 @@ -1306,3 +1373,66 @@ src << ""+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!") else if(shock_stage == 80) src << ""+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.") + +/* + // Commented out so hunger system won't be such shock + // Damage and effect from not eating + if(nutrition <= 50) + if (prob (0.1)) + src << "\red Your stomach rumbles." + if (prob (10)) + bruteloss++ + if (prob (5)) + src << "You feel very weak." + weakened += rand(2, 3) +*/ +/* +snippets + + if (mach) + if (machine) + mach.icon_state = "mach1" + else + mach.icon_state = null + + if (!m_flag) + moved_recently = 0 + m_flag = null + + + + if ((istype(loc, /turf/space) && !( locate(/obj/movable, loc) ))) + var/layers = 20 + // ******* Check + if (((istype(head, /obj/item/clothing/head) && head.flags & 4) || (istype(wear_mask, /obj/item/clothing/mask) && (!( wear_mask.flags & 4 ) && wear_mask.flags & 8)))) + layers -= 5 + if (istype(w_uniform, /obj/item/clothing/under)) + layers -= 5 + if ((istype(wear_suit, /obj/item/clothing/suit) && wear_suit.flags & 8)) + layers -= 10 + if (layers > oxcheck) + oxcheck = layers + + + if(bodytemperature < 282.591 && (!firemut)) + if(bodytemperature < 250) + adjustFireLoss(4) + updatehealth() + if(paralysis <= 2) paralysis += 2 + else if(prob(1) && !paralysis) + if(paralysis <= 5) paralysis += 5 + emote("collapse") + src << "\red You collapse from the cold!" + if(bodytemperature > 327.444 && (!firemut)) + if(bodytemperature > 345.444) + if(!eye_blurry) src << "\red The heat blurs your vision!" + eye_blurry = max(4, eye_blurry) + if(prob(3)) adjustFireLoss(rand(1,2)) + else if(prob(3) && !paralysis) + paralysis += 2 + emote("collapse") + src << "\red You collapse from heat exaustion!" + plcheck = t_plasma + oxcheck = t_oxygen + G.turf_add(T, G.total_moles()) +*/ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm index 579edf18e6a..c3c692643e3 100644 --- a/code/modules/mob/living/carbon/monkey/hud.dm +++ b/code/modules/mob/living/carbon/monkey/hud.dm @@ -390,6 +390,12 @@ mymob.oxygen.name = "oxygen" mymob.oxygen.screen_loc = ui_oxygen + mymob.pressure = new /obj/screen( null ) + mymob.pressure.icon = 'screen1_old.dmi' + mymob.pressure.icon_state = "pressure0" + mymob.pressure.name = "pressure" + mymob.pressure.screen_loc = ui_pressure + /* mymob.i_select = new /obj/screen( null ) mymob.i_select.icon_state = "selector" @@ -401,7 +407,6 @@ mymob.m_select.name = "moving" mymob.m_select.screen_loc = "16:-11,14" */ - mymob.toxin = new /obj/screen( null ) mymob.toxin.icon = ui_style mymob.toxin.icon_state = "tox0" @@ -569,7 +574,7 @@ mymob.client.screen = null //, mymob.i_select, mymob.m_select - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.pressure, mymob.gun_setting_icon) //, mymob.mach ) mymob.client.screen += src.adding + src.other //if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index d268b95ede2..397cc762c19 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -46,7 +46,6 @@ //to find it. src.blinded = null - //Disease Check handle_virus_updates() @@ -260,7 +259,7 @@ return if(!breath || (breath.total_moles() == 0)) - oxyloss += 7 + adjustOxyLoss(7) oxygen_alert = max(oxygen_alert, 1) @@ -288,7 +287,7 @@ if (O2_pp == 0) O2_pp = 0.01 var/ratio = safe_oxygen_min/O2_pp - oxyloss += min(5*ratio, 7) // Don't fuck them up too fast (space only does 7 after all!) + adjustOxyLoss(min(5*ratio, 7)) // Don't fuck them up too fast (space only does 7 after all!) oxygen_used = breath.oxygen*ratio/6 oxygen_alert = max(oxygen_alert, 1) /*else if (O2_pp > safe_oxygen_max) // Too much oxygen (commented this out for now, I'll deal with pressure damage elsewhere I suppose) @@ -298,7 +297,7 @@ oxygen_used = breath.oxygen*ratio/6 oxygen_alert = max(oxygen_alert, 1)*/ else // We're in safe limits - oxyloss = max(getOxyLoss()-5, 0) + adjustOxyLoss(-5) oxygen_used = breath.oxygen/6 oxygen_alert = 0 @@ -310,9 +309,9 @@ co2overloadtime = world.time else if(world.time - co2overloadtime > 120) Paralyse(3) - oxyloss += 3 // Lets hurt em a little, let them know we mean business + adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business if(world.time - co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good! - oxyloss += 8 + adjustOxyLoss(8) if(prob(20)) // Lets give them some chance to know somethings not right though I guess. spawn(0) emote("cough") @@ -368,8 +367,21 @@ if(stat==2) bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) - //Account for massive pressure differences + var/pressure = environment.return_pressure() + + // if(!wear_suit) Monkies cannot into space. + // if(!istype(wear_suit, /obj/item/clothing/suit/space)) + + /*if(pressure < 20) + if(prob(25)) + src << "You feel the splittle on your lips and the fluid on your eyes boiling away, the capillteries in your skin breaking." + adjustBruteLoss(5) + */ + + if(pressure > HAZARD_HIGH_PRESSURE) + + adjustBruteLoss(min((10+(round(pressure/(HIGH_STEP_PRESSURE)-2)*5)),MAX_PRESSURE_DAMAGE)) return //TODO: DEFERRED handle_temperature_damage(body_part, exposed_temperature, exposed_intensity) @@ -423,8 +435,8 @@ else if(src.health < config.health_threshold_crit) if(src.health <= 20 && prob(1)) spawn(0) emote("gasp") - if(!src.rejuv) src.oxyloss++ - if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++ + //if(!src.rejuv) src.oxyloss++ //-Nodrak (I can't believe I thought this should be commented back in) + if(!src.reagents.has_reagent("inaprovaline") && src.stat != 2) src.adjustOxyLoss(2) if(src.stat != 2) src.stat = 1 Paralyse(5) @@ -530,6 +542,21 @@ src.healths.icon_state = "health6" else src.healths.icon_state = "health7" + if (pressure) + var/datum/gas_mixture/environment = loc.return_air() + if(environment) + switch(environment.return_pressure()) + + if(HAZARD_HIGH_PRESSURE to INFINITY) + pressure.icon_state = "pressure2" + if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) + pressure.icon_state = "pressure1" + if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE) + pressure.icon_state = "pressure0" + if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) + pressure.icon_state = "pressure-1" + else + pressure.icon_state = "pressure-2" if(src.pullin) src.pullin.icon_state = "pull[src.pulling ? 1 : 0]" @@ -625,6 +652,6 @@ handle_changeling() if (mind) if (mind.special_role == "Changeling" && changeling) - changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50) + changeling.chem_charges = between(0, ((max((0.9 - (changeling.chem_charges / 50)), 0.1)*changeling.chem_recharge_multiplier) + changeling.chem_charges), changeling.chem_storage) if ((changeling.geneticdamage > 0)) changeling.geneticdamage = changeling.geneticdamage-1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 4bb7830e025..6480701a8d0 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -452,10 +452,10 @@ /mob/living/carbon/monkey/update_clothing() if(buckled) - if(istype(buckled, /obj/structure/stool/bed)) - lying = 1 - else + if(istype(buckled, /obj/structure/stool/bed/chair)) lying = 0 + else + lying = 1 if(update_icon) // Skie ..() diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm index 974c041116a..4f664e0b4ab 100644 --- a/code/modules/mob/living/silicon/pai/hud.dm +++ b/code/modules/mob/living/silicon/pai/hud.dm @@ -13,7 +13,7 @@ client.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]") var/perpname = "wot" if(istype(perp.wear_id,/obj/item/weapon/card/id)) - perpname = perp.wear_id:registered_name + perpname = perp.wear_id:registered else if(istype(perp.wear_id,/obj/item/device/pda)) var/obj/item/device/pda/tempPda = perp.wear_id perpname = tempPda.owner diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index a41bf638d99..e7a8d19da5b 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -2,9 +2,6 @@ log_access("Login: [key_name(src)] from [src.client.address ? src.client.address : "localhost"]") src.lastKnownIP = src.client.address src.computer_id = src.client.computer_id - if(!src.client.midis || !src.midis) - src.client.midis = 0 - src.midis = 0 if (config.log_access) for (var/mob/M in world) if(M == src) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm new file mode 100644 index 00000000000..8abee2c7478 --- /dev/null +++ b/code/modules/mob/mob_defines.dm @@ -0,0 +1,527 @@ +/mob + density = 1 + layer = 4.0 + animate_movement = 2 +// flags = NOREACT +//THE SOLUTION BUBBLES was funnier. + var/datum/mind/mind + + + + + //MOB overhaul + + //Not in use yet +// var/obj/organstructure/organStructure = null + + //Vars that have been relocated to organStructure + //Vars that have been relocated to organStructure ++END + + + + //Vars that should only be accessed via procs + var/bruteloss = 0.0//Living + var/oxyloss = 0.0//Living + var/toxloss = 0.0//Living + var/fireloss = 0.0//Living + var/cloneloss = 0//Carbon + var/brainloss = 0//Carbon + var/maxHealth = 100 //Living + //Vars that should only be accessed via procs ++END + +// var/uses_hud = 0 + var/obj/screen/pain = null + var/obj/screen/flash = null + var/obj/screen/blind = null + var/obj/screen/hands = null + var/obj/screen/mach = null + var/obj/screen/sleep = null + var/obj/screen/rest = null + var/obj/screen/pullin = null + var/obj/screen/internals = null + var/obj/screen/oxygen = null + var/obj/screen/i_select = null + var/obj/screen/m_select = null + var/obj/screen/toxin = null + var/obj/screen/fire = null + var/obj/screen/bodytemp = null + var/obj/screen/healths = null + var/obj/screen/throw_icon = null + var/obj/screen/nutrition_icon = null + var/obj/screen/pressure = null + var/obj/screen/gun/item/item_use_icon = null + var/obj/screen/gun/move/gun_move_icon = null + var/obj/screen/gun/run/gun_run_icon = null + var/obj/screen/gun/mode/gun_setting_icon = null + + var/total_luminosity = 0 //This controls luminosity for mobs, when you pick up lights and such this is edited. If you want the mob to use lights it must update its lum in its life proc or such. Note clamp this value around 7 or such to prevent massive light lag. + var/last_luminosity = 0 + + /*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob. + A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such. + The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs). + I'll make some notes on where certain variable defines should probably go. + Changing this around would probably require a good look-over the pre-existing code. + */ + //var/midis = 1 //Check if midis should be played for someone - no, this is something that is tied to clients, not mobs. + var/alien_egg_flag = 0//Have you been infected? + var/last_special = 0 + var/obj/screen/zone_sel/zone_sel = null + + var/emote_allowed = 1 + var/computer_id = null + var/lastattacker = null + var/lastattacked = null + var/attack_log = list( ) + var/already_placed = 0.0 + var/obj/machinery/machine = null + var/other_mobs = null + var/memory = "" + var/poll_answer = 0.0 + var/sdisabilities = 0//Carbon + var/disabilities = 0//Carbon + var/atom/movable/pulling = null + var/stat = 0.0 + var/next_move = null + var/prev_move = null + var/monkeyizing = null//Carbon + var/other = 0.0 + var/hand = null + var/eye_blind = null//Carbon + var/eye_blurry = null//Carbon + var/ear_deaf = null//Carbon + var/ear_damage = null//Carbon + var/stuttering = null//Carbon + var/slurring = null + var/real_name = null + var/original_name = null //Original name is only used in ghost chat! It is not to be edited by anything! + var/flavor_text = "" + var/blinded = null + var/bhunger = 0//Carbon + var/ajourn = 0 + var/rejuv = null + var/druggy = 0//Carbon + var/confused = 0//Carbon + var/antitoxs = null + var/plasma = null + var/sleeping = 0.0//Carbon + var/sleeping_willingly = 0.0 //Carbon, allows people to sleep forever if desired + var/admin_observing = 0.0 + var/resting = 0.0//Carbon + var/lying = 0.0 + var/canmove = 1.0 + var/eye_stat = null//Living, potentially Carbon + var/lastpuke = 0 + + var/name_archive //For admin things like possession + + var/timeofdeath = 0.0//Living + var/cpr_time = 1.0//Carbon + var/health = 100//Living + + var/bodytemperature = 310.055 //98.7 F + var/drowsyness = 0.0//Carbon + var/dizziness = 0//Carbon + var/is_dizzy = 0 + var/is_jittery = 0 + var/jitteriness = 0//Carbon + var/charges = 0.0 + var/nutrition = 400.0//Carbon + var/overeatduration = 0 // How long this guy is overeating //Carbon + var/paralysis = 0.0 + var/stunned = 0.0 + var/weakened = 0.0 + var/losebreath = 0.0//Carbon + var/intent = null//Living + var/shakecamera = 0 + var/a_intent = "help"//Living + var/m_int = null//Living + var/m_intent = "run"//Living + var/lastDblClick = 0 + var/lastKnownIP = null + var/obj/structure/stool/bed/buckled = null//Living + var/obj/item/weapon/handcuffs/handcuffed = null//Living + var/obj/item/l_hand = null//Living + var/obj/item/r_hand = null//Living + var/obj/item/weapon/back = null//Human/Monkey + var/obj/item/weapon/tank/internal = null//Human/Monkey + var/obj/item/weapon/storage/s_active = null//Carbon + var/obj/item/clothing/mask/wear_mask = null//Carbon + var/r_epil = 0 + var/r_ch_cou = 0 + var/r_Tourette = 0//Carbon + + var/seer = 0 //for cult//Carbon, probably Human + + var/miming = null //checks if the guy is a mime//Human + var/silent = null //Can't talk. Value goes down every life proc.//Human + + var/obj/hud/hud_used = null + + //var/list/organs = list( ) //moved to human. + var/list/grabbed_by = list( ) + var/list/requests = list( ) + + var/list/mapobjs = list() + + var/in_throw_mode = 0 + + var/coughedtime = null + + var/inertia_dir = 0 + var/footstep = 1 + + var/music_lastplayed = "null" + + var/job = null//Living + + var/nodamage = 0 + var/logged_in = 0 + + var/underwear = 1//Human + var/backbag = 2//Human + var/be_syndicate = 0//This really should be a client variable. + var/be_random_name = 0 + var/const/blindness = 1//Carbon + var/const/deafness = 2//Carbon + var/const/muteness = 4//Carbon + + + var/datum/dna/dna = null//Carbon + var/radiation = 0.0//Carbon + + var/mutations = 0//Carbon + var/mutations2 = 0//Carbon + //telekinesis = 1 + //firemut = 2 + //xray = 4 + //hulk = 8 + //clumsy = 16 + //obese = 32 + //husk = 64 + + var/voice_name = "unidentifiable voice" + var/voice_message = null // When you are not understood by others (replaced with just screeches, hisses, chimpers etc.) + var/say_message = null // When you are understood by others. Currently only used by aliens and monkeys in their say_quote procs + +//Generic list for proc holders. Only way I can see to enable certain verbs/procs. Should be modified if needed. + var/proc_holder_list[] = list()//Right now unused. + //Also unlike the spell list, this would only store the object in contents, not an object in itself. + + /* Add this line to whatever stat module you need in order to use the proc holder list. + Unlike the object spell system, it's also possible to attach verb procs from these objects to right-click menus. + This requires creating a verb for the object proc holder. + + if (proc_holder_list.len)//Generic list for proc_holder objects. + for(var/obj/effect/proc_holder/P in proc_holder_list) + statpanel("[P.panel]","",P) + */ + +//The last mob/living/carbon to push/drag/grab this mob (mostly used by Metroids friend recognition) + var/mob/living/carbon/LAssailant = null + +//Wizard mode, but can be used in other modes thanks to the brand new "Give Spell" badmin button + var/obj/effect/proc_holder/spell/list/spell_list = list() + +//Changlings, but can be used in other modes + var/obj/effect/proc_holder/changpower/list/power_list = list() + +//List of active diseases + + var/viruses = list() // replaces var/datum/disease/virus + +//Monkey/infected mode + var/list/resistances = list() + var/datum/disease/virus = null + + mouse_drag_pointer = MOUSE_ACTIVE_POINTER + +/* +//Changeling mode stuff//Carbon + var/changeling_level = 0 + var/list/absorbed_dna = list() + var/changeling_fakedeath = 0 + var/chem_charges = 20.00 + var/sting_range = 1 +*/ + var/datum/changeling/changeling = null + + var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE + var/obj/control_object // Hacking in to control objects -- TLE + + var/robot_talk_understand = 0 + var/alien_talk_understand = 0 + var/taj_talk_understand = 0 + //You can guess what these are for. --SkyMarshal + var/list/atom/hallucinations = list() + var/halloss = 0 + var/hallucination = 0 + +// TG Porting Variables + var/canstun = 1 // determines if this mob can be stunned by things + var/canweaken = 1 // determines if this mob can be weakened/knocked down by things + var/nopush = 0 //Can they be shoved? + + var/area/lastarea = null + + var/digitalcamo = 0 // Can they be tracked by the AI? + +/*For ninjas and others. This variable is checked when a mob moves and I guess it was supposed to allow the mob to move +through dense areas, such as walls. Setting density to 0 does the same thing. The difference here is that +the mob is also allowed to move without any sort of restriction. For instance, in space or out of holder objects.*/ +//0 is off, 1 is normal, 2 is for ninjas. + var/incorporeal_move = 0 + + + var/update_icon = 1 // Set to 0 if you want that the mob's icon doesn't update when it moves -- Skie + // This can be used if you want to change the icon on the fly and want it to stay + + var/UI = 'screen1_old.dmi' // For changing the UI from preferences + +// var/obj/effect/organstructure/organStructure = null //for dem organs + var/list/organs = list( ) //List of organs. + +//Singularity wants you! + var/grav_delay = 0 + var/being_strangled = 0 + +/mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) +// world << "Contract_disease called by [src] with virus [virus]" + if(stat >=2) return + if(virus.type in resistances) + if(prob(99.9)) return + resistances.Remove(virus.type)//the resistance is futile + + for(var/datum/disease/D in viruses) + if(istype(D, virus.type)) + return // two viruses of the same kind can't infect a body at once!! + + + if(force_species_check) + var/fail = 1 + for(var/name in virus.affected_species) + var/mob_type = text2path("/mob/living/carbon/[lowertext(name)]") + if(mob_type && istype(src, mob_type)) + fail = 0 + break + if(fail) return + + if(skip_this == 1) + //if(src.virus) < -- this used to replace the current disease. Not anymore! + //src.virus.cure(0) + + var/datum/disease/v = new virus.type + src.viruses += v + v.affected_mob = src + v.strain_data = v.strain_data.Copy() + v.holder = src + if(prob(5)) + v.carrier = 1 + return + + //if(src.virus) // + //return // + + +/* + var/list/clothing_areas = list() + var/list/covers = list(UPPER_TORSO,LOWER_TORSO,LEGS,FEET,ARMS,HANDS) + for(var/Covers in covers) + clothing_areas[Covers] = list() + + for(var/obj/item/clothing/Clothing in src) + if(Clothing) + for(var/Covers in covers) + if(Clothing&Covers) + clothing_areas[Covers] += Clothing + +*/ + if(prob(15/virus.permeability_mod)) return //the power of immunity compels this disease! + + var/obj/item/clothing/Cl = null + var/passed = 1 + + //chances to target this zone + var/head_ch + var/body_ch + var/hands_ch + var/feet_ch + + switch(virus.spread_type) + if(CONTACT_HANDS) + head_ch = 0 + body_ch = 0 + hands_ch = 100 + feet_ch = 0 + if(CONTACT_FEET) + head_ch = 0 + body_ch = 0 + hands_ch = 0 + feet_ch = 100 + else + head_ch = 100 + body_ch = 100 + hands_ch = 25 + feet_ch = 25 + + + var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)//1 - head, 2 - body, 3 - hands, 4- feet + + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + + switch(target_zone) + if(1) + if(isobj(H.head)) + Cl = H.head + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Head pass [passed]" + if(passed && isobj(H.wear_mask)) + Cl = H.wear_mask + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Mask pass [passed]" + if(2)//arms and legs included + if(isobj(H.wear_suit)) + Cl = H.wear_suit + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Suit pass [passed]" + if(passed && isobj(H.slot_w_uniform)) + Cl = H.slot_w_uniform + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Uniform pass [passed]" + if(3) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) + Cl = H.wear_suit + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Suit pass [passed]" + + if(passed && isobj(H.gloves)) + Cl = H.gloves + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Gloves pass [passed]" + if(4) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET) + Cl = H.wear_suit + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Suit pass [passed]" + + if(passed && isobj(H.shoes)) + Cl = H.shoes + passed = prob(Cl.permeability_coefficient*100*virus.permeability_mod) +// world << "Shoes pass [passed]" + else + src << "Something strange's going on, something's wrong." + + /*if("feet") + if(H.shoes && istype(H.shoes, /obj/item/clothing/)) + Cl = H.shoes + passed = prob(Cl.permeability_coefficient*100) + // + world << "Shoes pass [passed]" + */ // + else if(istype(src, /mob/living/carbon/monkey)) + var/mob/living/carbon/monkey/M = src + switch(target_zone) + if(1) + if(M.wear_mask && isobj(M.wear_mask)) + Cl = M.wear_mask + passed = prob(Cl.permeability_coefficient*100+virus.permeability_mod) + //world << "Mask pass [passed]" + + if(passed && virus.spread_type == AIRBORNE && internals) + passed = (prob(50*virus.permeability_mod)) + + if(passed) + //world << "Infection in the mob [src]. YAY" + + +/* + var/score = 0 + if(istype(src, /mob/living/carbon/human)) + if(src:gloves) score += 5 + if(istype(src:wear_suit, /obj/item/clothing/suit/space)) score += 10 + if(istype(src:wear_suit, /obj/item/clothing/suit/bio_suit)) score += 10 + if(istype(src:head, /obj/item/clothing/head/helmet/space)) score += 5 + if(istype(src:head, /obj/item/clothing/head/bio_hood)) score += 5 + if(wear_mask) + score += 5 + if((istype(src:wear_mask, /obj/item/clothing/mask) || istype(src:wear_mask, /obj/item/clothing/mask/surgical)) && !internal) + score += 5 + if(internal) + score += 5 + if(score > 20) + return + else if(score == 20 && prob(95)) + return + else if(score >= 15 && prob(75)) + return + else if(score >= 10 && prob(55)) + return + else if(score >= 5 && prob(35)) + return + else if(prob(15)) + return + else*/ + var/datum/disease/v = new virus.type + src.viruses += v + v.affected_mob = src + v.strain_data = v.strain_data.Copy() + v.holder = src + if(prob(5)) + v.carrier = 1 + return + return + + +// ++++ROCKDTBEN++++ MOB PROCS + +/mob/proc/getBruteLoss() + return bruteloss + +/mob/proc/adjustBruteLoss(var/amount) + bruteloss = max(bruteloss + amount, 0) + +/mob/proc/getOxyLoss() + return oxyloss + +/mob/proc/adjustOxyLoss(var/amount) + oxyloss = max(oxyloss + amount, 0) + +/mob/proc/setOxyLoss(var/amount) + oxyloss = amount + +/mob/proc/getToxLoss() + return toxloss + +/mob/proc/adjustToxLoss(var/amount) + toxloss = max(toxloss + amount, 0) + +/mob/proc/setToxLoss(var/amount) + toxloss = amount + +/mob/proc/getFireLoss() + return fireloss + +/mob/proc/adjustFireLoss(var/amount) + fireloss = max(fireloss + amount, 0) + +/mob/proc/getCloneLoss() + return cloneloss + +/mob/proc/adjustCloneLoss(var/amount) + cloneloss = max(cloneloss + amount, 0) + +/mob/proc/setCloneLoss(var/amount) + cloneloss = amount + +/mob/proc/getBrainLoss() + return brainloss + +/mob/proc/adjustBrainLoss(var/amount) + brainloss = max(brainloss + amount, 0) + +/mob/proc/setBrainLoss(var/amount) + brainloss = amount + +// ++++ROCKDTBEN++++ MOB PROCS //END + diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index 99c8cd0cbff..e4b74b739eb 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -389,28 +389,43 @@ if ((!( usr.stat ) && usr.canmove && !( usr.restrained() ))) if (usr.internal) usr.internal = null + usr << "\blue No longer running on internals." if (usr.internals) usr.internals.icon_state = "internal0" else - if (!( istype(usr.wear_mask, /obj/item/clothing/mask) )) - return - else - if (istype(usr.back, /obj/item/weapon/tank)) - usr.internal = usr.back - else if (ishuman(usr) && istype(usr:s_store, /obj/item/weapon/tank)) - usr.internal = usr:s_store - else if (ishuman(usr) && istype(usr:belt, /obj/item/weapon/tank)) - usr.internal = usr:belt - else if (istype(usr.l_hand, /obj/item/weapon/tank)) - usr.internal = usr.l_hand - else if (istype(usr.r_hand, /obj/item/weapon/tank)) - usr.internal = usr.r_hand - if (usr.internal) - //for(var/mob/M in viewers(usr, 1)) - // M.show_message(text("[] is now running on internals.", usr), 1) - usr << "You are now running on internals." - if (usr.internals) - usr.internals.icon_state = "internal1" + if(ishuman(usr)) + if (!( istype(usr.wear_mask, /obj/item/clothing/mask) )) + usr << "\red You are not wearing a mask" + return + else + if (istype(usr.back, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr.back] on your back." + usr.internal = usr.back + else if (ishuman(usr) && istype(usr:s_store, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr:s_store] on your [usr:wear_suit]." + usr.internal = usr:s_store + else if (ishuman(usr) && istype(usr:belt, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr:belt] on your belt." + usr.internal = usr:belt + else if (istype(usr:l_store, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr:l_store] in your left pocket." + usr.internal = usr:l_store + else if (istype(usr:r_store, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr:r_store] in your right pocket." + usr.internal = usr:r_store + else if (istype(usr.l_hand, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr.l_hand] on your left hand." + usr.internal = usr.l_hand + else if (istype(usr.r_hand, /obj/item/weapon/tank)) + usr << "\blue You are now running on internals from the [usr.r_hand] on your right hand." + usr.internal = usr.r_hand + if (usr.internal) + //for(var/mob/M in viewers(usr, 1)) + // M.show_message(text("[] is now running on internals.", usr), 1) + if (usr.internals) + usr.internals.icon_state = "internal1" + else + usr << "\blue You don't have an oxygen tank." if("pull") usr.pulling = null if("sleep") @@ -470,7 +485,7 @@ O.show_message(text("\red [] is trying to break the handcuffs!", usr), 1) spawn(0) if(do_after(usr, 50)) - if(!usr:handcuffed) return + if(!usr:handcuffed || usr:buckled) return for(var/mob/O in viewers(usr)) O.show_message(text("\red [] manages to break the handcuffs!", usr), 1) usr << "\green You successfully break your handcuffs." @@ -546,7 +561,7 @@ for(var/mob/O in viewers(usr)) O.show_message(text("\red [] manages to unbuckle themself!", usr), 1) usr << "\blue You successfully unbuckle yourself." - usr:buckled.manual_unbuckle_all(usr) + usr:buckled.manual_unbuckle(usr) if("module") if(issilicon(usr)) if(usr:module) diff --git a/code/modules/mob/simple_animal/constructs.dm b/code/modules/mob/simple_animal/constructs.dm new file mode 100644 index 00000000000..e698f4b4745 --- /dev/null +++ b/code/modules/mob/simple_animal/constructs.dm @@ -0,0 +1,331 @@ + +/////////////////Juggernaut/////////////// + +/mob/living/simple_animal/constructarmoured + name = "Juggernaut" + desc = "A possessed suit of armour driven by the will of the restless dead" + icon = 'mob.dmi' + icon_state = "armour" + icon_living = "armour" + icon_dead = "shade_dead" + maxHealth = 250 + health = 250 + speak_emote = list("hisses") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "harmlessly punches the" + harm_intent_damage = 0 + melee_damage_lower = 30 + melee_damage_upper = 30 + attacktext = "smashes their armoured gauntlet into" + minbodytemp = 0 + maxbodytemp = 4000 + min_oxy = 0 + max_co2 = 0 + max_tox = 0 + speed = 3 + wall_smash = 1 + nopush = 1 + a_intent = "harm" + stop_automated_movement = 1 + canstun = 0 + canweaken = 0 + + + Life() + ..() + if(stat == 2) + new /obj/item/weapon/ectoplasm (src.loc) + for(var/mob/M in viewers(src, null)) + if((M.client && !( M.blinded ))) + M.show_message("\red [src] collapses in a shattered heap ") + ghostize(0) + del src + return + +/mob/living/simple_animal/constructarmoured/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + if(O.force >= 11) + health -= O.force + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b The [O] bounces harmlessly off of [src]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") + + +/mob/living/simple_animal/constructarmoured/Bump(atom/movable/AM as mob|obj, yes) + + spawn( 0 ) + if ((!( yes ) || now_pushing)) + return + now_pushing = 1 + if(ismob(AM)) + var/mob/tmob = AM + if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + if(prob(5)) + src << "\red You fail to push [tmob]'s fat ass out of the way." + now_pushing = 0 + return + if(tmob.nopush) + now_pushing = 0 + return + + tmob.LAssailant = src + now_pushing = 0 + ..() + if (!( istype(AM, /atom/movable) )) + return + if (!( now_pushing )) + now_pushing = 1 + if (!( AM.anchored )) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null + return + return + + +/mob/living/simple_animal/constructarmoured/attack_animal(mob/living/simple_animal/M as mob) + if(istype(M, /mob/living/simple_animal/constructbuilder)) + health += 10 + M.emote("mends some of \the [src]'s wounds") + else + if(M.melee_damage_upper <= 0) + M.emote("[M.friendly] \the [src]") + else + for(var/mob/O in viewers(src, null)) + O.show_message("\The [M] [M.attacktext] \the [src]!", 1) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + health -= damage + + + + +/mob/living/simple_animal/constructarmoured/examine() + set src in oview() + + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + if (src.health < src.maxHealth) + msg += "" + if (src.health >= src.maxHealth/2) + msg += "It looks slightly dented.\n" + else + msg += "It looks severely dented!\n" + msg += "" + msg += "*---------*" + + usr << msg + return + +////////////////////////Wraith///////////////////////////////////////////// + + + +/mob/living/simple_animal/constructwraith + name = "Wraith" + desc = "A wicked bladed shell contraption piloted by a bound spirit" + icon = 'mob.dmi' + icon_state = "floating" + icon_living = "floating" + icon_dead = "shade_dead" + maxHealth = 75 + health = 75 + speak_emote = list("hisses") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "punches the" + melee_damage_lower = 25 + melee_damage_upper = 25 + attacktext = "slashes" + minbodytemp = 0 + maxbodytemp = 4000 + min_oxy = 0 + max_co2 = 0 + max_tox = 0 + speed = -1 + a_intent = "harm" + stop_automated_movement = 1 + canstun = 0 + canweaken = 0 + see_in_dark = 7 + + Life() + ..() + if(stat == 2) + new /obj/item/weapon/ectoplasm (src.loc) + for(var/mob/M in viewers(src, null)) + if((M.client && !( M.blinded ))) + M.show_message("\red [src] collapses in a shattered heap ") + ghostize(0) + del src + return + + +/mob/living/simple_animal/constructwraith/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + health -= O.force + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") + +/mob/living/simple_animal/constructwraith/Bump(atom/movable/AM as mob|obj, yes) + + spawn( 0 ) + if ((!( yes ) || now_pushing)) + return + now_pushing = 1 + if(ismob(AM)) + var/mob/tmob = AM + if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT) + if(prob(50)) + src << "\red You fail to push [tmob]'s fat ass out of the way." + now_pushing = 0 + return + if(tmob.nopush) + now_pushing = 0 + return + + tmob.LAssailant = src + now_pushing = 0 + ..() + if (!( istype(AM, /atom/movable) )) + return + if (!( now_pushing )) + now_pushing = 1 + if (!( AM.anchored )) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null + return + return + +/mob/living/simple_animal/constructwraith/attack_animal(mob/living/simple_animal/M as mob) + if(istype(M, /mob/living/simple_animal/constructbuilder)) + health += 10 + M.emote("mends some of \the [src]'s wounds") + else + if(M.melee_damage_upper <= 0) + M.emote("[M.friendly] \the [src]") + else + for(var/mob/O in viewers(src, null)) + O.show_message("\The [M] [M.attacktext] \the [src]!", 1) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + health -= damage + + + +/mob/living/simple_animal/constructwraith/examine() + set src in oview() + + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + if (src.health < src.maxHealth) + msg += "" + if (src.health >= src.maxHealth/2) + msg += "It looks slightly dented.\n" + else + msg += "It looks severely dented!\n" + msg += "" + msg += "*---------*" + + usr << msg + return + + + +/////////////////////////////Artificer///////////////////////// + +/mob/living/simple_animal/constructbuilder + name = "Artificer" + desc = "A bulbous construct dedicated to building and maintaining The Cult of Nar-Sie's armies" + icon = 'mob.dmi' + icon_state = "artificer" + icon_living = "artificer" + icon_dead = "shade_dead" + maxHealth = 50 + health = 50 + speak_emote = list("hisses") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "viciously beats" + harm_intent_damage = 5 + melee_damage_lower = 5 + melee_damage_upper = 5 + attacktext = "rams" + minbodytemp = 0 + maxbodytemp = 4000 + min_oxy = 0 + max_co2 = 0 + max_tox = 0 + speed = 0 + wall_smash = 1 + nopush = 1 + a_intent = "harm" + stop_automated_movement = 1 + canstun = 0 + canweaken = 0 + + Life() + ..() + if(stat == 2) + new /obj/item/weapon/ectoplasm (src.loc) + for(var/mob/M in viewers(src, null)) + if((M.client && !( M.blinded ))) + M.show_message("\red [src] collapses in a shattered heap ") + ghostize(0) + del src + return + +/mob/living/simple_animal/constructbuilder/attack_animal(mob/living/simple_animal/M as mob) + if(istype(M, /mob/living/simple_animal/constructbuilder)) + health += 5 + M.emote("mends some of \the [src]'s wounds") + else + if(M.melee_damage_upper <= 0) + M.emote("[M.friendly] \the [src]") + else + for(var/mob/O in viewers(src, null)) + O.show_message("\The [M] [M.attacktext] \the [src]!", 1) + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + health -= damage + +/mob/living/simple_animal/constructbuilder/examine() + set src in oview() + + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + if (src.health < src.maxHealth) + msg += "" + if (src.health >= src.maxHealth/2) + msg += "It looks slightly dented.\n" + else + msg += "It looks severely dented!\n" + msg += "" + msg += "*---------*" + + usr << msg + return \ No newline at end of file diff --git a/code/setup.dm b/code/setup.dm index 81d1f959e9d..b514ae203c8 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -18,6 +18,17 @@ #define HUMAN_NEEDED_OXYGEN MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16 //Amount of air needed before pass out/suffocation commences +// Pressure limits. +#define HAZARD_HIGH_PRESSURE 750 +#define HIGH_STEP_PRESSURE HAZARD_HIGH_PRESSURE/2 +#define WARNING_HIGH_PRESSURE HAZARD_HIGH_PRESSURE*0.7 +#define HAZARD_LOW_PRESSURE 20 +#define WARNING_LOW_PRESSURE HAZARD_LOW_PRESSURE*2.5 +#define MAX_PRESSURE_DAMAGE 20 + +// Doors! +#define DOOR_CRUSH_DAMAGE 10 + // Factor of how fast mob nutrition decreases #define HUNGER_FACTOR 0.1 #define REAGENTS_METABOLISM 0.05 @@ -72,7 +83,10 @@ #define TANK_FRAGMENT_PRESSURE (50.*ONE_ATMOSPHERE) // Boom 3x3 base explosion #define TANK_FRAGMENT_SCALE (10.*ONE_ATMOSPHERE) // +1 for each SCALE kPa aboe threshold // was 2 atm -#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE + +//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage +var/MAX_EXPLOSION_RANGE = 14 +//#define MAX_EXPLOSION_RANGE 14 // Defaults to 12 (was 8) -- TLE #define NORMPIPERATE 30 //pipe-insulation rate divisor @@ -131,6 +145,17 @@ //Cant seem to find a mob bitflags area other than the powers one #define NOGRAV 1 +//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. +#define HIDEGLOVES 1 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!! +#define HIDEMASK 1 //APPLIES ONLY TO HELMETS!! +#define HIDEEARS 2 //APPLIES ONLY TO HELMETS!! +#define HIDEEYES 4 //APPLIES ONLY TO HELMETS!! + + +//Cant seem to find a mob bitflags area other than the powers one // bitflags for clothing parts #define HEAD 1 @@ -174,6 +199,7 @@ var/const mFingerprints =(1<<1) mShock =(1<<2) mSmallsize =(1<<3) + NOCLONE =(1<<4) //mob/var/stat things var/const @@ -194,6 +220,13 @@ var/const #define MAINT 8 // under maintaince #define EMPED 16 // temporary broken by EMP pulse +//bitflags for door switches. +#define OPEN 1 +#define IDSCAN 2 +#define BOLTS 4 +#define SHOCK 8 +#define SAFE 16 + #define ENGINE_EJECT_Z 3 //metal, glass, rod stacks @@ -229,6 +262,7 @@ var/list/global_mutations = list() // list of hidden mutation things #define TOX "tox" #define OXY "oxy" #define CLONE "clone" +#define HALLOSS "halloss" #define STUN "stun" #define WEAKEN "weaken" @@ -245,4 +279,4 @@ var/static/list/scarySounds = list('thudswoosh.ogg','Taser.ogg','armbomb.ogg','h #define SEC_LEVEL_GREEN 0 #define SEC_LEVEL_BLUE 1 #define SEC_LEVEL_RED 2 -#define SEC_LEVEL_DELTA 3 +#define SEC_LEVEL_DELTA 3 \ No newline at end of file diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 24f8f5276cf..01345217876 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi index 16e6b814c31..b3a330e691d 100644 Binary files a/icons/mob/screen1.dmi and b/icons/mob/screen1.dmi differ diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi index 1918ebce9fe..9e14930b16e 100644 Binary files a/icons/mob/screen1_old.dmi and b/icons/mob/screen1_old.dmi differ diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi new file mode 100644 index 00000000000..669ad215c5c Binary files /dev/null and b/icons/obj/dice.dmi differ diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index cf0a91bed17..094bd162d1a 100644 Binary files a/icons/obj/monitors.dmi and b/icons/obj/monitors.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 28e0bd88ef9..947d1f403ba 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/syringefilling.dmi b/icons/obj/syringefilling.dmi new file mode 100644 index 00000000000..5fbf001d265 Binary files /dev/null and b/icons/obj/syringefilling.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index a46a044c264..467a17f9704 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -105,9 +105,9 @@ "aca" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/warden{name = "Armory"}) "acb" = (/obj/structure/closet/wardrobe/hos,/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/security/hos) "acc" = (/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) -"acd" = (/obj/structure/stool/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) +"acd" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) "ace" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor{icon_state = "carpet"},/area/security/hos) -"acf" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) +"acf" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) "acg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/security/hos) "ach" = (/obj/machinery/camera{c_tag = "Head Security's Office"; dir = 8; network = "Security"},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/keycard_auth{pixel_x = 25},/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/security/hos) "aci" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/main) @@ -186,8 +186,8 @@ "adD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/glass/glass_security{name = "Security"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "adE" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/main) "adF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/main) -"adG" = (/obj/structure/stool/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/security/main) -"adH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool/chair,/turf/simulated/floor,/area/security/main) +"adG" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/security/main) +"adH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/security/main) "adI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor,/area/security/main) "adJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/main) "adK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/main) @@ -211,19 +211,19 @@ "aec" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/brig) "aed" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/brig) "aee" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor,/area/security/main) -"aef" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/security/main) +"aef" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/security/main) "aeg" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/main) "aeh" = (/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) "aei" = (/obj/structure/table,/obj/item/clothing/glasses/sunglasses,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) -"aej" = (/obj/structure/stool/chair{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) +"aej" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) "aek" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) "ael" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) "aem" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = list()},/turf/simulated/floor,/area/security/main) "aen" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 4},/obj/machinery/vending/snack,/turf/simulated/floor,/area/security/main) "aeo" = (/obj/structure/closet/secure_closet/courtroom,/turf/simulated/floor,/area/crew_quarters/courtroom) -"aep" = (/obj/machinery/light{dir = 1},/obj/structure/stool/chair,/turf/simulated/floor,/area/crew_quarters/courtroom) +"aep" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/crew_quarters/courtroom) "aeq" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor,/area/crew_quarters/courtroom) -"aer" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/crew_quarters/courtroom) +"aer" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/crew_quarters/courtroom) "aes" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/courtroom) "aet" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) "aeu" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/camera{c_tag = "Courtroom North"},/turf/simulated/floor,/area/crew_quarters/courtroom) @@ -243,7 +243,7 @@ "aeI" = (/obj/structure/table,/turf/simulated/floor,/area/security/main) "aeJ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/security/main) "aeK" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor,/area/security/main) -"aeL" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area/security/main) +"aeL" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/security/main) "aeM" = (/obj/machinery/camera{c_tag = "HQ East"; dir = 1; network = "Security"},/turf/simulated/floor,/area/security/main) "aeN" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/security/main) "aeO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) @@ -251,7 +251,7 @@ "aeQ" = (/obj/structure/table/woodentable,/obj/item/weapon/paper/Court,/turf/simulated/floor,/area/crew_quarters/courtroom) "aeR" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters/courtroom) "aeS" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (Court)"; pixel_x = 0},/turf/simulated/floor,/area/crew_quarters/courtroom) -"aeT" = (/obj/structure/stool/chair{name = "Witness"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) +"aeT" = (/obj/structure/stool/bed/chair{name = "Witness"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) "aeU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/wall,/area/crew_quarters/courtroom) "aeV" = (/obj/item/weapon/cigbutt,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aeW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -281,23 +281,23 @@ "afu" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "afv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/plating,/area/security/warden) "afw" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/clipboard,/obj/item/weapon/paper{info = "5 Deployable Barriers
4 Portable Flashers + Wrench
1 Set of Riot Armor
1 Bulletproof Vest
1 Ablative Vest
2 Bomb Suits
1 Biohazard Suit
1 Chemical Implant Kit
1 Tracking Implant Kit
1 Loyalty Implant Kit
1 Box of Spare Handcuffs
2 Empty Lockboxes
3 Riot shields
3 Helmets
3 Armor Vests
1 Ion Rifle
2 Stun Batons
3 Energy Guns
3 Laser Rifles
3 Gas Masks"; name = "Armoury Inventory"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) -"afx" = (/obj/structure/stool/chair{dir = 2},/obj/effect/landmark/start{name = "Warden"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) +"afx" = (/obj/structure/stool/bed/chair{dir = 2},/obj/effect/landmark/start{name = "Warden"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "afy" = (/obj/structure/table,/obj/machinery/door_control{id = "armory"; name = "Armory Access"; pixel_x = -2; pixel_y = 2; req_access_txt = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "afz" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) "afA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/warden) "afB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/security/main) -"afC" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/security/main) +"afC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/main) "afD" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/courtroom) "afE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/courtroom) "afF" = (/obj/machinery/flasher{id = "Cell 4"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/courtroom) "afG" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/secure_closet/brig{id = "Courtroom"; name = "Courtroom Holding Cell Locker"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Courtroom Holding Cell"; dir = 8; network = "Security"},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/courtroom) "afH" = (/obj/machinery/door/window/southleft{dir = 1; name = "Security"; req_access_txt = "1"},/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; listening = 0; name = "Station Intercom (Court)"; pixel_x = -28},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/courtroom) -"afI" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/crew_quarters/courtroom) +"afI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/crew_quarters/courtroom) "afJ" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "neutral"; dir = 9},/area/crew_quarters/courtroom) "afK" = (/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) "afL" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) "afM" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "neutral"; dir = 5},/area/crew_quarters/courtroom) -"afN" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/crew_quarters/courtroom) +"afN" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/crew_quarters/courtroom) "afO" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "afP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "afQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/warden) @@ -323,13 +323,13 @@ "agk" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/courtroom) "agl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/courtroom) "agm" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/crew_quarters/courtroom) -"agn" = (/obj/structure/stool/chair{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/courtroom) -"ago" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/crew_quarters/courtroom) +"agn" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/courtroom) +"ago" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/crew_quarters/courtroom) "agp" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "neutral"; dir = 10},/area/crew_quarters/courtroom) "agq" = (/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/courtroom) "agr" = (/obj/item/device/radio/beacon,/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/courtroom) "ags" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/crew_quarters/courtroom) -"agt" = (/obj/structure/stool/chair{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/crew_quarters/courtroom) +"agt" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/crew_quarters/courtroom) "agu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall,/area/crew_quarters/courtroom) "agv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "agw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -366,11 +366,11 @@ "ahb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahd" = (/turf/simulated/wall/r_wall,/area/security/brig) -"ahe" = (/obj/structure/stool/chair,/obj/machinery/camera{c_tag = "Interrogation"; dir = 4; network = "Security"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"ahf" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"ahe" = (/obj/structure/stool/bed/chair,/obj/machinery/camera{c_tag = "Interrogation"; dir = 4; network = "Security"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"ahf" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "ahg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "ahh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) -"ahi" = (/obj/structure/stool/chair{dir = 8},/obj/item/device/radio/intercom{frequency = 1442; layer = 4; name = "Intercom"; pixel_y = 20},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/security/brig) +"ahi" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{frequency = 1442; layer = 4; name = "Intercom"; pixel_y = 20},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/security/brig) "ahj" = (/obj/machinery/vending/security,/turf/simulated/floor,/area/security/brig) "ahk" = (/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/security/brig) "ahl" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/security/brig) @@ -390,9 +390,9 @@ "ahz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/wall/r_wall,/area/crew_quarters/courtroom) "ahA" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall/r_wall,/area/crew_quarters/courtroom) "ahB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/courtroom) -"ahC" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) -"ahD" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/crew_quarters/courtroom) -"ahE" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/crew_quarters/courtroom) +"ahC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/courtroom) +"ahD" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/crew_quarters/courtroom) +"ahE" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/crew_quarters/courtroom) "ahF" = (/turf/simulated/wall,/area/crew_quarters/courtroom) "ahG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/wall,/area/maintenance/fsmaint) "ahH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/brig) @@ -420,18 +420,18 @@ "aid" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "aie" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/courtroom) "aif" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/courtroom) -"aig" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/crew_quarters/courtroom) +"aig" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/crew_quarters/courtroom) "aih" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Distribution Pipe"; on = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/maintenance/fsmaint) "aii" = (/obj/structure/stool,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/maintenance/fsmaint) "aij" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aik" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ail" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aim" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/lattice,/turf/space,/area) -"ain" = (/obj/structure/stool/chair{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; dir = 0; frequency = 1442; listening = 0; name = "Intercom"; pixel_x = -27},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"aio" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"ain" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; dir = 0; frequency = 1442; listening = 0; name = "Intercom"; pixel_x = -27},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"aio" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aip" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aiq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) -"air" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) +"air" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) "ais" = (/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/brig) "ait" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/security/brig) "aiu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/brig) @@ -448,7 +448,7 @@ "aiF" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/fore) "aiG" = (/turf/simulated/floor,/area/hallway/primary/fore) "aiH" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/window/northleft{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor,/area/crew_quarters/courtroom) -"aiI" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/camera{c_tag = "Courtroom South"; dir = 8; network = "SS13"},/turf/simulated/floor,/area/crew_quarters/courtroom) +"aiI" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/camera{c_tag = "Courtroom South"; dir = 8; network = "SS13"},/turf/simulated/floor,/area/crew_quarters/courtroom) "aiJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fsmaint) "aiK" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air In"; on = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/maintenance/fsmaint) "aiL" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -492,10 +492,10 @@ "ajx" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "ajy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "ajz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) -"ajA" = (/obj/structure/stool/chair{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/brig) +"ajA" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/brig) "ajB" = (/obj/structure/table,/obj/item/kitchen/donut_box,/turf/simulated/floor,/area/security/brig) "ajC" = (/obj/structure/table,/obj/item/weapon/handcuffs,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/security/brig) -"ajD" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = -1},/turf/simulated/floor,/area/security/brig) +"ajD" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = -1},/turf/simulated/floor,/area/security/brig) "ajE" = (/obj/machinery/flasher{id = "Cell 2"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "ajF" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Brig Cell 2"; dir = 8; network = "Security"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "ajG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/crew_quarters) @@ -515,7 +515,7 @@ "ajU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = -1},/turf/simulated/floor,/area/security/brig) "ajV" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor,/area/security/brig) "ajW" = (/obj/structure/table,/obj/item/device/radio,/turf/simulated/floor,/area/security/brig) -"ajX" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/brig) +"ajX" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/brig) "ajY" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/brigdoor{dir = 4; icon_state = "left"; id = "Cell 2"; name = "Cell 2"; req_access_txt = "1"; tag = "icon-left (EAST)"},/turf/simulated/floor,/area/security/brig) "ajZ" = (/turf/simulated/wall,/area/crew_quarters) "aka" = (/obj/structure/stool{pixel_y = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/crew_quarters) @@ -638,7 +638,7 @@ "amn" = (/obj/machinery/power/apc{dir = 1; name = "Detective APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table/woodentable,/obj/effect/deskclutter,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "amo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/table/woodentable,/obj/machinery/light/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "amp" = (/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) -"amq" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) +"amq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "amr" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/detective,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "ams" = (/turf/simulated/wall,/area/lawoffice) "amt" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) @@ -671,14 +671,14 @@ "amU" = (/turf/simulated/wall,/area/maintenance/fpmaint) "amV" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint) "amW" = (/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security/wooden_tv,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) -"amX" = (/obj/effect/landmark/start{name = "Detective"},/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/security/detectives_office) +"amX" = (/obj/effect/landmark/start{name = "Detective"},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/security/detectives_office) "amY" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/security/detectives_office) "amZ" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/security/detectives_office) -"ana" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/security/detectives_office) +"ana" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/security/detectives_office) "anb" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area/security/detectives_office) "anc" = (/obj/machinery/coatrack,/obj/machinery/light_switch{pixel_x = 20; pixel_y = 0},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "and" = (/obj/structure/closet/secure_closet/lawyer_personal,/obj/machinery/firealarm{dir = 4; pixel_x = -24},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) -"ane" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) +"ane" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "anf" = (/obj/structure/table/woodentable,/obj/effect/deskclutter,/obj/item/weapon/book/manual/security_space_law,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "ang" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "anh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/lawoffice) @@ -708,9 +708,9 @@ "anF" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area/security/detectives_office) "anG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "anH" = (/obj/machinery/copier,/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) -"anI" = (/obj/structure/stool/chair{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) +"anI" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "anJ" = (/obj/structure/table/woodentable,/obj/machinery/light/lamp/green{pixel_x = 1; pixel_y = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) -"anK" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Lawyer"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) +"anK" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Lawyer"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "anL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/lawoffice) "anM" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "anN" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -732,7 +732,7 @@ "aod" = (/obj/machinery/camera{c_tag = "Fitness Room"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/crew_quarters/fitness) "aoe" = (/obj/structure/closet,/turf/simulated/floor,/area/crew_quarters/fitness) "aof" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) -"aog" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) +"aog" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "aoh" = (/turf/simulated/wall,/area/maintenance/fpmaint2) "aoi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aoj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -747,7 +747,7 @@ "aos" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/security/detectives_office) "aot" = (/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "aou" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) -"aov" = (/obj/structure/stool/chair,/obj/effect/landmark/start{name = "Lawyer"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) +"aov" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Lawyer"},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "aow" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "wood"},/area/lawoffice) "aox" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/lawoffice) "aoy" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/crew_quarters) @@ -842,7 +842,7 @@ "aqj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/fitness) "aqk" = (/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/crew_quarters/fitness) "aql" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/fitness) -"aqm" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area/crew_quarters/fitness) +"aqm" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/crew_quarters/fitness) "aqn" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters/fitness) "aqo" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/simulated/floor,/area/crew_quarters/fitness) "aqp" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1003,8 +1003,8 @@ "ato" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/fitness) "atp" = (/obj/machinery/light,/turf/simulated/floor,/area/crew_quarters/fitness) "atq" = (/obj/machinery/camera{c_tag = "Fitness Room South"; dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) -"atr" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) -"ats" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) +"atr" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) +"ats" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "att" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness) "atu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "atv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -1192,7 +1192,7 @@ "awV" = (/obj/structure/closet/wardrobe/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint2) "awW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/security/checkpoint2) "awX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/security/checkpoint2) -"awY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/stool/chair,/turf/simulated/floor,/area/security/checkpoint2) +"awY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/security/checkpoint2) "awZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/checkpoint2) "axa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/plating,/area/security/checkpoint2) "axb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1247,9 +1247,9 @@ "axY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/chapel/main) "axZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/chapel/main) "aya" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival/station) -"ayb" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"ayb" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "ayc" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/arrival/station) -"ayd" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"ayd" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aye" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/arrival/station) "ayf" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/space,/area/shuttle/arrival/station) "ayg" = (/obj/machinery/camera{c_tag = "Security Checkpoint Internal"; dir = 1; network = "Arrivals"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2) @@ -1405,7 +1405,7 @@ "aBa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/chapel/main) "aBb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/chapel/main) "aBc" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station) -"aBd" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"aBd" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aBe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aBf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) "aBg" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/hallway/secondary/entry) @@ -1559,17 +1559,17 @@ "aDY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aDZ" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/chapel/main) "aEa" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/main) -"aEb" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aEb" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aEc" = (/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aEd" = (/turf/space,/area/shuttle/escape/station) "aEe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/shuttle/arrival/station) "aEf" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival/station) "aEg" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) -"aEh" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aEh" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aEi" = (/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) -"aEj" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aEj" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aEk" = (/obj/structure/table,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) -"aEl" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aEl" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aEm" = (/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/hallway/secondary/entry) "aEn" = (/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) "aEo" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/primary/port) @@ -1643,7 +1643,7 @@ "aFE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/stool,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aFF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aFG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aFH" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/hallway/secondary/entry) +"aFH" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/hallway/secondary/entry) "aFI" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/hallway/secondary/entry) "aFJ" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area/hallway/secondary/entry) "aFK" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/hallway/secondary/entry) @@ -1703,7 +1703,7 @@ "aGM" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aGN" = (/obj/effect/landmark{name = "emcloset"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) "aGO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aGP" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/hallway/secondary/entry) +"aGP" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/hallway/secondary/entry) "aGQ" = (/turf/simulated/floor{icon_state = "carpetside"},/area/hallway/secondary/entry) "aGR" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area/hallway/secondary/entry) "aGS" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/hallway/secondary/entry) @@ -1756,7 +1756,7 @@ "aHN" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aHO" = (/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aHP" = (/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) -"aHQ" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aHQ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aHR" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/hallway/secondary/entry) "aHS" = (/turf/simulated/wall,/area/maintenance/port) "aHT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/port) @@ -1882,10 +1882,10 @@ "aKj" = (/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/theatre) "aKk" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/theatre) "aKl" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/wardrobe/chaplain_black,/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/chapel/office) -"aKm" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/chair,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) +"aKm" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) "aKn" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/office) "aKo" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"aKp" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) +"aKp" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aKq" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/hallway/secondary/exit) "aKr" = (/turf/simulated/floor,/area/hallway/secondary/exit) "aKs" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor,/area/hallway/secondary/exit) @@ -1920,15 +1920,15 @@ "aKV" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/storage/tools) "aKW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aKX" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/bridge) -"aKY" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) +"aKY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) "aKZ" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) "aLa" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) "aLb" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/recordsbox,/turf/simulated/floor,/area/bridge) -"aLc" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/bridge) +"aLc" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/bridge) "aLd" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/bridge) "aLe" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/bridge) "aLf" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) -"aLg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) +"aLg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) "aLh" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge) "aLi" = (/obj/structure/bookcase{category = "Fiction"; name = "bookcase (Fiction)"},/turf/simulated/floor{icon_state = "wood"},/area/library) "aLj" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "wood"},/area/library) @@ -1941,8 +1941,8 @@ "aLq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/hydroponics) "aLr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics) "aLs" = (/obj/machinery/hydroponics,/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = list("Hydroponics")},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) -"aLt" = (/obj/structure/stool/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) -"aLu" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) +"aLt" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) +"aLu" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) "aLv" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/crew_quarters/theatre) "aLw" = (/turf/simulated/floor{dir = 5; icon_state = "carpetside"},/area/crew_quarters/theatre) "aLx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/theatre) @@ -1953,7 +1953,7 @@ "aLC" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/briefcase,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) "aLD" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) "aLE" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/office) -"aLF" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) +"aLF" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aLG" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) "aLH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aLI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/simulated/floor/plating,/area/hallway/secondary/exit) @@ -2006,18 +2006,18 @@ "aMD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aME" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/crew_quarters/theatre) "aMF" = (/obj/machinery/disposal{pixel_x = -5; pixel_y = -3},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) -"aMG" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) -"aMH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) -"aMI" = (/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) +"aMG" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) +"aMH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) +"aMI" = (/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) "aMJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/crew_quarters/theatre) "aMK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/crew_quarters/theatre) "aML" = (/obj/machinery/door/airlock{name = "Theatre Storage"; req_access_txt = "46"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) "aMM" = (/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/theatre) "aMN" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Counselor's Office"; dir = 4; network = "SS13"},/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/chapel/office) -"aMO" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) +"aMO" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office) "aMP" = (/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/office) "aMQ" = (/obj/structure/stool,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"aMR" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) +"aMR" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aMS" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aMT" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aMU" = (/turf/simulated/floor/plating,/area/hallway/secondary/exit) @@ -2025,11 +2025,11 @@ "aMW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aMX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/security/vacantoffice) "aMY" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/vacantoffice) -"aMZ" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/vacantoffice) +"aMZ" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/vacantoffice) "aNa" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) "aNb" = (/obj/machinery/alarm{frequency = 1437; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) "aNc" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/vacantoffice) -"aNd" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) +"aNd" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) "aNe" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/security/vacantoffice) "aNf" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) "aNg" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/security/vacantoffice) @@ -2059,13 +2059,13 @@ "aNE" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/bridge) "aNF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/bridge) "aNG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/bridge) -"aNH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/bridge) +"aNH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/bridge) "aNI" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/bridge) "aNJ" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/hallway/primary/central) "aNK" = (/obj/item/device/radio/intercom{broadcasting = 0; layer = 4; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central) "aNL" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/hallway/primary/central) "aNM" = (/obj/structure/bookcase{category = "Non-Fiction"; name = "bookcase (Non-Fiction)"},/turf/simulated/floor{icon_state = "wood"},/area/library) -"aNN" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/library) +"aNN" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/library) "aNO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/library) "aNP" = (/obj/machinery/hydroponics,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aNQ" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -2116,8 +2116,8 @@ "aOJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/mint) "aOK" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (SOUTHEAST)"; icon_state = "vault"; dir = 6},/area/mint) "aOL" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/mint) -"aOM" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/mint) -"aON" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/mint) +"aOM" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/mint) +"aON" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/mint) "aOO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/mint) "aOP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/camera{c_tag = "Port Maintenance 2"; dir = 8; network = "SS13"},/turf/simulated/floor/plating,/area/maintenance/port) "aOQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/storage/tools) @@ -2148,12 +2148,12 @@ "aPp" = (/obj/machinery/door/airlock/command{name = "Bridge"; req_access = null; req_access_txt = "19"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/bridge) "aPq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) "aPr" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/hallway/primary/central) -"aPs" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/library) +"aPs" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/library) "aPt" = (/obj/structure/table/reinforced,/obj/item/weapon/dice/d20,/turf/simulated/floor{icon_state = "dark"},/area/library) -"aPu" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area/library) +"aPu" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/library) "aPv" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/library) "aPw" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/library) -"aPx" = (/obj/structure/stool/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/library) +"aPx" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/library) "aPy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "wood"},/area/library) "aPz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/library) "aPA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -2166,7 +2166,7 @@ "aPH" = (/turf/simulated/floor{dir = 10; icon_state = "carpetside"},/area/crew_quarters/theatre) "aPI" = (/turf/simulated/floor{dir = 6; icon_state = "carpetside"},/area/crew_quarters/theatre) "aPJ" = (/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/theatre) -"aPK" = (/obj/structure/stool/chair,/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/crew_quarters/theatre) +"aPK" = (/obj/structure/stool/bed/chair,/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/crew_quarters/theatre) "aPL" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/crew_quarters/theatre) "aPM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/chapel/office) "aPN" = (/turf/simulated/floor{dir = 1; icon_state = "carpetcorner"},/area/chapel/office) @@ -2227,7 +2227,7 @@ "aQQ" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/hallway/primary/central) "aQR" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central) "aQS" = (/obj/structure/bookcase{category = "Reference"; name = "bookcase (Reference)"},/turf/simulated/floor{icon_state = "wood"},/area/library) -"aQT" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/library) +"aQT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/library) "aQU" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aQV" = (/obj/machinery/hydroponics,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "aQW" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "green"; dir = 10},/area/hydroponics) @@ -2256,8 +2256,8 @@ "aRt" = (/obj/machinery/camera{c_tag = "Escape Arm Airlocks"; dir = 8; network = "SS13"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) "aRu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aRv" = (/obj/machinery/door/airlock/engineering{name = "Vacant Office"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/vacantoffice) -"aRw" = (/obj/structure/stool/chair,/turf/simulated/floor/plating,/area/security/vacantoffice) -"aRx" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/security/vacantoffice) +"aRw" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating,/area/security/vacantoffice) +"aRx" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/security/vacantoffice) "aRy" = (/obj/machinery/copier,/turf/simulated/floor,/area/security/vacantoffice) "aRz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/maintenance/port) "aRA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/port) @@ -2429,7 +2429,7 @@ "aUK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/hallway/primary/central) "aUL" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "aUM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) -"aUN" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) +"aUN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aUO" = (/turf/simulated/floor{dir = 9; icon_state = "carpetside"},/area/crew_quarters/captain) "aUP" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/crew_quarters/captain) "aUQ" = (/turf/simulated/floor{dir = 1; icon_state = "carpetside"},/area/crew_quarters/captain) @@ -2444,7 +2444,7 @@ "aUZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "aVa" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/crew_quarters/heads) "aVb" = (/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads) -"aVc" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads) +"aVc" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/crew_quarters/heads) "aVd" = (/obj/structure/closet/wardrobe/hop,/turf/simulated/floor,/area/crew_quarters/heads) "aVe" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central) "aVf" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2555,7 +2555,7 @@ "aXg" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 0; freerange = 1; name = "General Listening Channel"; pixel_x = 0; pixel_y = 19},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 0; broadcasting = 1; freerange = 1; listening = 0; name = "General Broadcasting Channel"; pixel_x = 27; pixel_y = -3},/turf/simulated/floor/grid,/area/turret_protected/ai) "aXh" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/crew_quarters/heads) "aXi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/crew_quarters/heads) -"aXj" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads) +"aXj" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/crew_quarters/heads) "aXk" = (/obj/machinery/camera{c_tag = "Heads of Staff"; dir = 8; network = "Command"},/obj/structure/table/reinforced,/obj/item/weapon/secstorage/sbriefcase,/turf/simulated/floor,/area/crew_quarters/heads) "aXl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads) "aXm" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central) @@ -2602,14 +2602,14 @@ "aYb" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting) "aYc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/quartermaster/sorting) "aYd" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/quartermaster/sorting) -"aYe" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/sorting) +"aYe" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/sorting) "aYf" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{name = "Mail Desk"; req_access_txt = "0"},/turf/simulated/floor,/area/quartermaster/sorting) "aYg" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) "aYh" = (/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 4; network = "Command"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aYi" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aYj" = (/obj/machinery/computer/communications,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aYk" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/stamp/captain,/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) -"aYl" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) +"aYl" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aYm" = (/obj/structure/displaycase,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aYn" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/grid,/area/turret_protected/ai) "aYo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor/grid,/area/turret_protected/ai) @@ -2672,7 +2672,7 @@ "aZt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/quartermaster/sorting) "aZu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/quartermaster/sorting) "aZv" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor,/area/quartermaster/sorting) -"aZw" = (/obj/structure/stool/chair{dir = 1},/obj/effect/landmark/start{name = "Captain"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) +"aZw" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Captain"},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aZx" = (/obj/item/weapon/paper{info = "Our scientists stole your suit and shoved it in their destructive analyzer. We replaced it with one that isn't space capable.

--Central Command"; name = "Important Memo"},/obj/item/weapon/book/manual/security_space_law,/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aZy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/keycard_auth{pixel_x = 25},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "aZz" = (/obj/machinery/light/small{dir = 8},/obj/machinery/turret{desc = ""; dir = 4; id = "aicore"},/turf/simulated/floor/grid,/area/turret_protected/ai) @@ -2686,7 +2686,7 @@ "aZH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads) "aZI" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/crew_quarters/heads) "aZJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/crew_quarters/heads) -"aZK" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads) +"aZK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/crew_quarters/heads) "aZL" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon = 'windoor.dmi'; icon_state = "right"; name = "Heads of Staff"; req_access_txt = "19"},/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; req_access_txt = "0"},/obj/structure/table/reinforced,/turf/simulated/floor,/area/crew_quarters/heads) "aZM" = (/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/central) "aZN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central) @@ -2720,7 +2720,7 @@ "bap" = (/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "baq" = (/obj/machinery/chem_master,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bar" = (/obj/machinery/camera{c_tag = "Chemistry North"; dir = 2; network = "Medbay"; pixel_x = 22},/obj/item/weapon/storage/beakerbox{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bas" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bas" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bat" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_x = 3; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; dir = 1; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bau" = (/obj/structure/table,/obj/item/weapon/chem_grenade,/obj/item/weapon/chem_grenade,/obj/item/weapon/chem_grenade,/obj/item/weapon/chem_grenade,/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 25},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bav" = (/obj/structure/table,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -2798,14 +2798,14 @@ "bbP" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bbQ" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bbR" = (/obj/structure/table,/obj/machinery/door_control{dir = 4; id = "Chemistry Outer Shutters"; name = "Chemistry Outer Shutters"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bbS" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bbS" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bbT" = (/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bbU" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/secure_closet/chemist_personal{pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bbV" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/medical/chemistry) "bbW" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bbX" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bbY" = (/obj/machinery/camera{c_tag = "RnD Lab North"; dir = 2; network = "Research"},/obj/machinery/power/apc{dir = 1; name = "Lab APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bbZ" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/stool/chair{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"bbZ" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bca" = (/obj/machinery/requests_console{department = "Research and Development"; departmentType = 2; name = "rnd Requests Console"; pixel_x = 30; pixel_y = 0},/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bcb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bcc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -2887,8 +2887,8 @@ "bdA" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bdB" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bdC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) -"bdD" = (/obj/structure/stool/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bdE" = (/obj/structure/stool/chair{dir = 8},/obj/effect/sign/securearea{desc = "A warning sign which reads 'NO SMOKING'"; icon_state = "nosmoking2"; name = "NO SMOKING"; pixel_x = 29; pixel_y = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bdD" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bdE" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/sign/securearea{desc = "A warning sign which reads 'NO SMOKING'"; icon_state = "nosmoking2"; name = "NO SMOKING"; pixel_x = 29; pixel_y = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bdF" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bdG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/chemistry) "bdH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) @@ -2964,11 +2964,11 @@ "beZ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bfa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bfb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/maintcentral) -"bfc" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bfd" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bfc" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bfd" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bfe" = (/obj/machinery/power/apc{dir = 4; name = "Morgue APC"; pixel_x = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bff" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/apc{dir = 8; level = 4; name = "Chemistry APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bfg" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bfg" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bfh" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bfi" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bfj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) @@ -3025,10 +3025,10 @@ "bgi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bgj" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bgk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bgl" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"bgl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bgm" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bgn" = (/obj/structure/table,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) -"bgo" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) +"bgo" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bgp" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bgq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bgr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/maintcentral) @@ -3043,7 +3043,7 @@ "bgA" = (/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bgB" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/lab) "bgC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/toxins/lab) -"bgD" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"bgD" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bgE" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bgF" = (/obj/effect/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bgG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/medical{name = "Research Division Access"; req_access_txt = "47"; req_one_access_txt = "1"},/turf/simulated/floor,/area/medical/research{name = "Research Division"}) @@ -3071,7 +3071,7 @@ "bhc" = (/turf/simulated/floor,/area/quartermaster) "bhd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/quartermaster) "bhe" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 29},/turf/simulated/floor,/area/quartermaster) -"bhf" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/firealarm{pixel_y = 27},/turf/simulated/floor,/area/quartermaster) +"bhf" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/firealarm{pixel_y = 27},/turf/simulated/floor,/area/quartermaster) "bhg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster) "bhh" = (/turf/simulated/wall/r_wall,/area/teleporter) "bhi" = (/obj/effect/sign/securearea,/turf/simulated/wall/r_wall,/area/teleporter) @@ -3100,7 +3100,7 @@ "bhF" = (/obj/structure/closet/extinguisher{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Cafeteria North East"; dir = 8; network = "SS13"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "bhG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bhH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/computer/security/medbay,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bhI" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bhI" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bhJ" = (/obj/item/weapon/pen,/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bhK" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bhL" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3132,7 +3132,7 @@ "bil" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/storage) "bim" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/quartermaster/storage) "bin" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster/storage) -"bio" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/quartermaster) +"bio" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/quartermaster) "bip" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster) "biq" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/hallway/primary/central) "bir" = (/obj/structure/table,/turf/simulated/floor,/area/teleporter) @@ -3167,7 +3167,7 @@ "biU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "biV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/cafeteria) "biW" = (/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"biX" = (/obj/structure/stool/chair{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"biX" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "biY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "biZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bja" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) @@ -3190,7 +3190,7 @@ "bjr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/simulated/floor/plating,/area/quartermaster/storage) "bjs" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #3"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bjt" = (/obj/structure/table,/obj/item/device/multitool,/turf/simulated/floor,/area/quartermaster/storage) -"bju" = (/obj/structure/stool/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) +"bju" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/storage) "bjv" = (/obj/machinery/door/window/eastright{name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/westleft{name = "Cargo Office"; req_access_txt = "31"},/obj/structure/table/reinforced,/obj/item/weapon/rag,/turf/simulated/floor,/area/quartermaster/storage) "bjw" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor,/area/quartermaster) "bjx" = (/obj/machinery/camera{c_tag = "Teleporter Entrance"; dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central) @@ -3204,7 +3204,7 @@ "bjF" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/space,/area) "bjG" = (/obj/machinery/power/apc{dir = 8; name = "Meeting Room APC"; pixel_x = -25},/obj/structure/cable,/turf/simulated/floor,/area/bridge/meeting_room) "bjH" = (/turf/simulated/floor,/area/bridge/meeting_room) -"bjI" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "red"},/area/bridge/meeting_room) +"bjI" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "red"},/area/bridge/meeting_room) "bjJ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/bridge/meeting_room) "bjK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "heads_meeting"; name = "Meeting Room Window Shields"; opacity = 0},/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact-b-f (NORTH)"; icon_state = "intact-b-f"; dir = 1; level = 2; color = "blue"},/turf/simulated/floor/plating,/area/bridge/meeting_room) "bjL" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) @@ -3261,10 +3261,10 @@ "bkK" = (/obj/machinery/turretid{id = "upload"; pixel_x = -5; pixel_y = -24},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bkL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bkM" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/bridge/meeting_room) -"bkN" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge/meeting_room) +"bkN" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge/meeting_room) "bkO" = (/obj/structure/table,/turf/simulated/floor,/area/bridge/meeting_room) "bkP" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor,/area/bridge/meeting_room) -"bkQ" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/bridge/meeting_room) +"bkQ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/bridge/meeting_room) "bkR" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/assembly/timer,/turf/simulated/floor,/area/bridge/meeting_room) "bkS" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bkT" = (/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; name = "Kitchen RC"; pixel_x = -1; pixel_y = -30},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -3291,9 +3291,9 @@ "blo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "blp" = (/obj/machinery/door/firedoor/border_only,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{name = "Chemistry Desk"},/obj/machinery/door/window/eastright{name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "blq" = (/obj/machinery/camera{c_tag = "Chemistry South"; dir = 1; network = "Medbay"; pixel_x = 22},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blr" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"blr" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bls" = (/obj/machinery/door/firedoor/border_only,/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/window/eastright{name = "Chemistry Desk"},/obj/machinery/door/window/westleft{name = "Chemistry Desk"; req_access_txt = "33"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/chair,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"blt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "blu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "blv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "blw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Research Lab"; req_access_txt = "7"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -3332,7 +3332,7 @@ "bmd" = (/obj/machinery/door/airlock/maintenance{name = "Medical Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "bme" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bmf" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bmg" = (/obj/machinery/door_control{id = "Patient Room 1 Shutters"; name = "Privacy Shutters"; pixel_y = 25},/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bmg" = (/obj/machinery/door_control{id = "Patient Room 1 Shutters"; name = "Privacy Shutters"; pixel_y = 25},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bmh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bmi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Hallway East"; dir = 4; network = "Medbay"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bmj" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3352,7 +3352,7 @@ "bmx" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) "bmy" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/storage) "bmz" = (/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/window/eastright{name = "Cargo Office"; req_access_txt = "31"},/turf/simulated/floor,/area/quartermaster/storage) -"bmA" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area/quartermaster) +"bmA" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/quartermaster) "bmB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster) "bmC" = (/obj/structure/closet/crate,/turf/simulated/floor,/area/teleporter) "bmD" = (/obj/machinery/shieldwallgen,/turf/simulated/floor{icon_state = "bot"},/area/teleporter) @@ -3370,7 +3370,7 @@ "bmP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/effect/sign/electricshock{pixel_y = 32},/turf/simulated/floor,/area/turret_protected/ai_upload_foyer) "bmQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) "bmR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = -1},/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) -"bmS" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/bridge/meeting_room) +"bmS" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/bridge/meeting_room) "bmT" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/floor,/area/bridge/meeting_room) "bmU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) "bmV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/kitchen) @@ -3418,7 +3418,7 @@ "bnL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/quartermaster) "bnM" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster) "bnN" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/quartermaster) -"bnO" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/power/apc{dir = 2; name = "Cargo Foyer APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/quartermaster) +"bnO" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/power/apc{dir = 2; name = "Cargo Foyer APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/quartermaster) "bnP" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central) "bnQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/hallway/primary/central) "bnR" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/shieldwallgen,/turf/simulated/floor{icon_state = "bot"},/area/teleporter) @@ -3455,7 +3455,7 @@ "bow" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "box" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "Genetics Outer Shutters"; name = "Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "boy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"boz" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"boz" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "boA" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/door_control{dir = 4; id = "Genetics Inner Shutters"; name = "Genetics Inner Shutters"; pixel_x = 22; pixel_y = -6},/obj/machinery/door_control{dir = 4; id = "Genetics Outer Shutters"; name = "Genetics Outer Shutters"; pixel_x = 22; pixel_y = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "boB" = (/obj/structure/disposalpipe/segment,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "boC" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -3541,7 +3541,7 @@ "bqe" = (/obj/machinery/light_switch{layer = 3.3; pixel_x = -21},/turf/simulated/floor,/area/quartermaster/qm) "bqf" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster's Office APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/quartermaster/qm) "bqg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/quartermaster/qm) -"bqh" = (/obj/structure/stool/chair{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/quartermaster/qm) +"bqh" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/quartermaster/qm) "bqi" = (/obj/structure/table,/obj/item/weapon/stamp{name = "Quartermaster's stamp"; pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/machinery/alarm{frequency = 1437; pixel_y = 23},/turf/simulated/floor,/area/quartermaster/qm) "bqj" = (/obj/machinery/camera{c_tag = "Quartermasters Office"; dir = 2; network = "Cargo"},/obj/machinery/computer/supplycomp,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/quartermaster/qm) "bqk" = (/obj/machinery/computer/security/cargo,/turf/simulated/floor,/area/quartermaster/qm) @@ -3609,7 +3609,7 @@ "bru" = (/turf/simulated/floor,/area/quartermaster/qm) "brv" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/quartermaster/qm) "brw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/quartermaster/qm) -"brx" = (/obj/structure/stool/chair{dir = 4},/obj/effect/landmark/start{name = "Quartermaster"},/turf/simulated/floor,/area/quartermaster/qm) +"brx" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Quartermaster"},/turf/simulated/floor,/area/quartermaster/qm) "bry" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window{dir = 4; icon = 'windoor.dmi'; name = "Quartermaster's desk"; req_access_txt = "41"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/qm) "brz" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIW"; location = "QM"},/turf/simulated/floor,/area/hallway/primary/aft) "brA" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AftH"; location = "AIW"},/obj/machinery/door/firedoor/border_only{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) @@ -3756,7 +3756,7 @@ "bul" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bum" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Patient Room 2 Shutters"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay) "bun" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buo" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"buo" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bup" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "buq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bur" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -3831,8 +3831,8 @@ "bvI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Patient Room 2 Shutters"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay) "bvJ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bvK" = (/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bvL" = (/obj/structure/stool/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bvM" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bvL" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bvM" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bvN" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvO" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvP" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{icon_state = "bot"},/area/toxins/toxinslab) @@ -3863,7 +3863,7 @@ "bwo" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/meson,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/quartermaster/qm) "bwp" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/quartermaster/qm) "bwq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) -"bwr" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/light/small,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) +"bwr" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light/small,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) "bws" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light_switch{pixel_x = 24},/turf/simulated/floor,/area/quartermaster/qm) "bwt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/quartermaster/qm) "bwu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/quartermaster/miningdock) @@ -3907,7 +3907,7 @@ "bxg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxh" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxi" = (/obj/machinery/door_control{id = "Patient Room 2 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/sink{icon_state = "sink"; dir = 4; pixel_x = 11; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bxj" = (/obj/structure/stool/chair{dir = 8},/obj/machinery/door_control{id = "Patient Room 3 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxj" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/door_control{id = "Patient Room 3 Shutters"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxk" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxl" = (/obj/machinery/scan_consolenew,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bxm" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 1; network = "Medbay"; pixel_x = 22},/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/destTagger,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -3920,9 +3920,9 @@ "bxt" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/toxins/toxinslab) "bxu" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/toxins/toxinslab) "bxv" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/obj/machinery/camera{c_tag = "Toxins Lab Center"; dir = 4; network = "SS13"; pixel_x = 6},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) -"bxw" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) +"bxw" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bxx" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) -"bxy" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) +"bxy" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bxz" = (/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bxA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor{icon_state = "bot"},/area/toxins/mixing) "bxB" = (/obj/machinery/atmospherics/pipe/simple/general/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/toxins/mixing) @@ -4052,14 +4052,14 @@ "bzV" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 2; network = "Medbay"; pixel_x = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bzW" = (/obj/machinery/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bzX" = (/obj/structure/table,/obj/item/weapon/storage/stma_kit{pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_x = 24; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bzY" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/rd,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bzZ" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/table,/obj/item/device/taperecorder,/obj/machinery/light{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bAa" = (/obj/machinery/requests_console{announcementConsole = 1; department = "RD's Office"; departmentType = 5; name = "RD RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hor) -"bAb" = (/obj/machinery/computer/aifixer,/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 2; network = "Research"; pixel_x = 22},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bAc" = (/obj/machinery/computer/security/research,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bAd" = (/obj/machinery/computer/robotics,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bAe" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bAf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hor) +"bzY" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/rd,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bzZ" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/table,/obj/item/device/taperecorder,/obj/machinery/light{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bAa" = (/obj/machinery/requests_console{announcementConsole = 1; department = "RD's Office"; departmentType = 5; name = "RD RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/wall/r_wall,/area/crew_quarters/hor) +"bAb" = (/obj/machinery/computer/aifixer,/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 2; network = "Research"; pixel_x = 22},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bAc" = (/obj/machinery/computer/security/research,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bAd" = (/obj/machinery/computer/robotics,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bAe" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bAf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bAg" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bAh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Toxins Lab"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bAi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) @@ -4075,7 +4075,7 @@ "bAs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bAt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bAu" = (/turf/simulated/wall/r_wall,/area/toxins/test_area) -"bAv" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) +"bAv" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bAw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bAx" = (/obj/item/weapon/ore/iron,/turf/simulated/floor,/area/quartermaster/miningdock) "bAy" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/crate,/turf/simulated/floor,/area/quartermaster/miningdock) @@ -4125,14 +4125,14 @@ "bBq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bBr" = (/obj/machinery/power/apc{dir = 4; name = "Surgery APC"; pixel_x = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bBs" = (/turf/simulated/wall/r_wall,/area/medical/surgery) -"bBt" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/power/apc{dir = 8; name = "RD's Office APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable{d2 = 2; icon_state = "0-4"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBu" = (/obj/structure/stool/chair{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBv" = (/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "2-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/keycard_auth{pixel_x = -25; pixel_y = 32},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBx" = (/obj/structure/stool/chair{dir = 1},/obj/effect/landmark/start{name = "Research Director"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBy" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBz" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hor) +"bBt" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/power/apc{dir = 8; name = "RD's Office APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable{d2 = 2; icon_state = "0-4"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBu" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBv" = (/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "2-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/keycard_auth{pixel_x = -25; pixel_y = 32},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBx" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Research Director"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBy" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBz" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bBB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Toxins Lab"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bBC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bBD" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) @@ -4202,13 +4202,13 @@ "bCP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bCQ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bCR" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bCS" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/crew_quarters/heads/hor) -"bCT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/crew_quarters/heads/hor) -"bCU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bCV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bCW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bCX" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bCY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Research Director's Office"; req_access_txt = "30"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/ai_status_display{layer = 4; pixel_y = -32},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/heads/hor) +"bCS" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/crew_quarters/hor) +"bCT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/crew_quarters/hor) +"bCU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bCV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bCW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bCX" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bCY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Research Director's Office"; req_access_txt = "30"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/ai_status_display{layer = 4; pixel_y = -32},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/hor) "bCZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/structure/disposalpipe/sortjunction{sortType = list("Research Director")},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bDa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Division Hallway South"; dir = 8; network = "Research"; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bDb" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/requests_console{department = "Toxins Lab"; departmentType = 2; name = "Tox lab Requests Console"; pixel_x = -30; pixel_y = -3},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) @@ -4236,7 +4236,7 @@ "bDx" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/simulated/floor,/area/quartermaster/miningdock) "bDy" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8; network = "Cargo"},/turf/simulated/floor,/area/quartermaster/miningdock) "bDz" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/quartermaster/miningdock) -"bDA" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/quartermaster/miningdock) +"bDA" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/quartermaster/miningdock) "bDB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bDC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/apmaint) "bDD" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -4273,11 +4273,11 @@ "bEi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bEj" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bEk" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bEl" = (/obj/structure/lamarr,/turf/simulated/floor,/area/crew_quarters/heads/hor) -"bEm" = (/obj/machinery/door/window/eastright{name = "Lab Cage Access"; req_access_txt = "30"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/crew_quarters/heads/hor) -"bEn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bEo" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bEp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hor) +"bEl" = (/obj/structure/lamarr,/turf/simulated/floor,/area/crew_quarters/hor) +"bEm" = (/obj/machinery/door/window/eastright{name = "Lab Cage Access"; req_access_txt = "30"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/crew_quarters/hor) +"bEn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bEo" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bEp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bEq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bEr" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/camera{c_tag = "Toxins Lab West"; dir = 4; network = "SS13"},/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) "bEs" = (/obj/structure/closet/bombcloset,/turf/simulated/floor{icon_state = "white"},/area/toxins/toxinslab) @@ -4315,7 +4315,7 @@ "bEY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/nuke_storage) "bEZ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "caution"; dir = 8},/area/hallway/primary/aft) "bFa" = (/obj/machinery/door/window{icon = 'windoor.dmi'; dir = 8},/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/atmos) -"bFb" = (/obj/structure/stool/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/atmos) +"bFb" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/atmos) "bFc" = (/turf/simulated/floor,/area/atmos) "bFd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/atmos) "bFe" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/atmos) @@ -4343,12 +4343,12 @@ "bFA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/surgery) "bFB" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/medical/surgery) "bFC" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bFD" = (/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/crew_quarters/heads/hor) -"bFE" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/crew_quarters/heads/hor) -"bFF" = (/obj/structure/table,/obj/item/device/paicard,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_y = 5},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bFG" = (/obj/structure/table,/obj/item/weapon/circuitboard/aicore,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bFH" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) -"bFI" = (/obj/structure/closet/wardrobe/rd,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/heads/hor) +"bFD" = (/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/crew_quarters/hor) +"bFE" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/crew_quarters/hor) +"bFF" = (/obj/structure/table,/obj/item/device/paicard,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_y = 5},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bFG" = (/obj/structure/table,/obj/item/weapon/circuitboard/aicore,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bFH" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bFI" = (/obj/structure/closet/wardrobe/rd,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bFJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "bFK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bFL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -4358,9 +4358,9 @@ "bFP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bFQ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bFR" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'NO SMOKING'"; icon_state = "nosmoking2"; name = "NO SMOKING"; pixel_x = 1; pixel_y = 29},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) -"bFS" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) +"bFS" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bFT" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) -"bFU" = (/obj/machinery/computer/security/telescreen{department = ""; desc = "Used for watching the explosives testing area."; layer = 4; name = "Test Chamber Telescreen"; network = "Bomb Testing"; pixel_x = 32; pixel_y = 0},/obj/structure/stool/chair{dir = 4},/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) +"bFU" = (/obj/machinery/computer/security/telescreen{department = ""; desc = "Used for watching the explosives testing area."; layer = 4; name = "Test Chamber Telescreen"; network = "Bomb Testing"; pixel_x = 32; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bFV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/toxins/observatory) "bFW" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/toxins/test_area) "bFX" = (/turf/simulated/floor/airless{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/area/toxins/test_area) @@ -4412,7 +4412,7 @@ "bGR" = (/obj/structure/table,/obj/item/weapon/storage/lglo_kit{pixel_x = 3; pixel_y = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; icon_state = "manifold-r-f"; dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bGS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bGT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bGU" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/hor) +"bGU" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) "bGV" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Server Room APC"; pixel_x = -25},/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bGW" = (/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 2; network = "Research"; pixel_x = 22},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bGX" = (/obj/machinery/door/window/northleft{name = "Server Room"; req_access_txt = "30"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) @@ -4434,7 +4434,7 @@ "bHn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bHo" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bHp" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) -"bHq" = (/obj/machinery/computer/security/telescreen{department = ""; desc = "Used for watching the explosives testing area."; layer = 4; name = "Test Chamber Telescreen"; network = "Bomb Testing"; pixel_x = 32; pixel_y = 0},/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) +"bHq" = (/obj/machinery/computer/security/telescreen{department = ""; desc = "Used for watching the explosives testing area."; layer = 4; name = "Test Chamber Telescreen"; network = "Bomb Testing"; pixel_x = 32; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bHr" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bHs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/toxins/observatory) "bHt" = (/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/toxins/test_area) @@ -4476,7 +4476,7 @@ "bId" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/surgery) "bIe" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bIf" = (/obj/machinery/computer/rdservercontrol,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bIg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bIg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bIh" = (/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bIi" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 100; dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bIj" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) @@ -4495,7 +4495,7 @@ "bIw" = (/obj/machinery/door/airlock/maintenance{name = "Toxins Lab Emergency Escape"; req_access_txt = "7"},/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/turf/simulated/floor/plating,/area/toxins/observatory) "bIx" = (/obj/structure/cable{d2 = 2; icon_state = "4-8"; pixel_y = 1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bIy" = (/obj/machinery/camera{c_tag = "Toxins Lab Southeast"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"; pixel_y = 1},/obj/machinery/power/apc{dir = 2; name = "Toxins Lab Observatory APC"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) -"bIz" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) +"bIz" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/observatory) "bIA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/toxins/observatory) "bIB" = (/turf/simulated/floor/airless{dir = 4; icon_state = "warning"},/area/toxins/test_area) "bIC" = (/turf/simulated/floor/airless{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/toxins/test_area) @@ -4532,13 +4532,13 @@ "bJh" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bJi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "bJj" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Office"; departmentType = 5; name = "CMO RC"; pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/keycard_auth{pixel_x = -25; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bJk" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark/start{name = "Chief Medical Officer"},/obj/structure/stool/chair,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bJk" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark/start{name = "Chief Medical Officer"},/obj/structure/stool/bed/chair,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bJl" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bJm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/cmo) "bJn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bJo" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bJp" = (/obj/machinery/firealarm{pixel_y = 25},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Surgery Observation"; dir = 2; network = "Medbay"; pixel_x = 22},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"bJq" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) +"bJq" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bJr" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/surgery) "bJs" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bJt" = (/obj/machinery/computer/operating{id = "medbay"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Operating Theatre"; dir = 2; network = "Medbay"; pixel_x = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4604,7 +4604,7 @@ "bKB" = (/obj/structure/closet/extinguisher{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bKC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/surgery) "bKD" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"bKE" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) +"bKE" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bKF" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/surgery) "bKG" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/scalpel,/obj/item/weapon/autopsy_scanner,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bKH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4618,7 +4618,7 @@ "bKP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/sign/biohazard{pixel_x = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bKQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/requests_console{department = "Xenobiology"; departmentType = 0; pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bKR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bKS" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"bKS" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bKT" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bKU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bKV" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/simulated/floor/plating,/area/toxins/observatory) @@ -4660,12 +4660,12 @@ "bLF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bLG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 4},/turf/simulated/wall,/area/medical/cmo) "bLH" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bLI" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bLI" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bLJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/cmo) "bLK" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bLL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Surgery Observation"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bLM" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"bLN" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) +"bLN" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bLO" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/surgery) "bLP" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bLQ" = (/obj/machinery/optable{id = "medbay"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4725,7 +4725,7 @@ "bMS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bMT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/surgery) "bMU" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"bMV" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) +"bMV" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bMW" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/medical/surgery) "bMX" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bMY" = (/obj/machinery/requests_console{department = "Operating Theatre"; departmentType = 0; name = "OR RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4783,7 +4783,7 @@ "bNY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/cmo) "bNZ" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bOa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"bOb" = (/obj/structure/stool/chair{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) +"bOb" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bOc" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Observation Shutters"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/surgery) "bOd" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bOe" = (/obj/structure/table,/obj/machinery/light,/obj/item/device/radio/intercom{pixel_y = -25},/obj/item/weapon/cleaner,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4805,7 +4805,7 @@ "bOu" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hallway/primary/aft) "bOv" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 10; icon_state = "intact-r"; initialize_directions = 10; level = 2},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "bOw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor,/area/atmos) -"bOx" = (/obj/structure/stool/chair,/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/atmos) +"bOx" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/atmos) "bOy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor,/area/atmos) "bOz" = (/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmos"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/atmos) "bOA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/atmos) @@ -4869,8 +4869,8 @@ "bPG" = (/obj/structure/stool/bed/roller,/obj/machinery/camera{c_tag = "Surgery Recovery Room"; dir = 2; network = "Medbay"; pixel_x = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bPH" = (/obj/machinery/firealarm{pixel_y = 25},/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bPI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) -"bPJ" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bPK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bPJ" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bPK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bPL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virology) "bPM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -23; pixel_y = -8; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bPN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -4952,8 +4952,8 @@ "bRl" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bRm" = (/obj/structure/stool/bed,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bRn" = (/obj/item/device/radio/intercom{pixel_y = -25},/obj/structure/stool/bed,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"bRo" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bRp" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 23; pixel_y = 8; req_access_txt = "39"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bRo" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bRp" = (/obj/structure/disposalpipe/segment{dir = 1},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 23; pixel_y = 8; req_access_txt = "39"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -8; pixel_y = -19; req_access_txt = "39"},/obj/machinery/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bRs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5054,9 +5054,9 @@ "bTj" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/assembly/assembly_line) "bTk" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Assembly Line APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor,/area/assembly/assembly_line) "bTl" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor,/area/assembly/assembly_line) -"bTm" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/assembly/assembly_line) +"bTm" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/assembly/assembly_line) "bTn" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/assembly/assembly_line) -"bTo" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/assembly/assembly_line) +"bTo" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/assembly/assembly_line) "bTp" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westright{name = "Assembly Line Desk"; req_access_txt = "29"},/obj/machinery/door/window/eastleft{name = "Reception Window"},/turf/simulated/floor,/area/assembly/assembly_line) "bTq" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/aft) "bTr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) @@ -5120,7 +5120,7 @@ "bUx" = (/obj/machinery/atmospherics/portables_connector{dir = 2; name = "Gas Input"},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bUy" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bUz" = (/obj/structure/table,/obj/item/device/radio/intercom{pixel_x = -25},/obj/item/weapon/virusdish/random{pixel_x = -6; pixel_y = 5},/obj/item/weapon/virusdish/random{pixel_x = 3; pixel_y = 2},/obj/item/weapon/virusdish/random,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bUA" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bUA" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bUD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/virology) @@ -5496,8 +5496,8 @@ "cbJ" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area) "cbK" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cbL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"cbM" = (/obj/structure/stool/chair,/obj/item/weapon/cigpacket,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"cbN" = (/obj/structure/stool/chair,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cbM" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigpacket,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cbN" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cbO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cbP" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/engine/engineering) "cbQ" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engineering) @@ -5757,9 +5757,9 @@ "cgK" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma3"},/area/alien) "cgL" = (/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cgM" = (/turf/unsimulated/wall{icon = 'mineral_walls.dmi'; icon_state = "plasma1"},/area/alien) -"cgN" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) +"cgN" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "cgO" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) -"cgP" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) +"cgP" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "cgQ" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cgR" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor5"},/area/alien) "cgS" = (/turf/space,/area/syndicate_mothership/elite_squad) @@ -5815,7 +5815,7 @@ "chQ" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom) "chR" = (/turf/unsimulated/floor{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/centcom) "chS" = (/turf/unsimulated/floor{name = "plating"},/area/centcom) -"chT" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) +"chT" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "chU" = (/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "chV" = (/obj/machinery/door/poddoor{id = "syndicate"; name = "Outer Airlock"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor4"},/area/syndicate_station/start) "chW" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) @@ -6042,7 +6042,7 @@ "cmj" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cmk" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cml" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cmm" = (/obj/structure/stool/chair{name = "Judge"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cmm" = (/obj/structure/stool/bed/chair{name = "Judge"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cmn" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cmo" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cmp" = (/obj/machinery/door/window/northleft,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) @@ -6055,13 +6055,13 @@ "cmw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cmx" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access_txt = "107"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "cmy" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) -"cmz" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) -"cmA" = (/obj/structure/stool/chair{name = "Bailiff"},/obj/machinery/door/window/northleft,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cmz" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) +"cmA" = (/obj/structure/stool/bed/chair{name = "Bailiff"},/obj/machinery/door/window/northleft,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cmB" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cmC" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cmD" = (/obj/structure/stool/chair{name = "Witness"},/obj/machinery/door/window/northleft,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cmD" = (/obj/structure/stool/bed/chair{name = "Witness"},/obj/machinery/door/window/northleft,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cmE" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"cmF" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) +"cmF" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cmG" = (/turf/unsimulated/wall,/area/centcom/specops) "cmH" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control) "cmI" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control) @@ -6089,16 +6089,16 @@ "cne" = (/obj/structure/closet/secure_closet/anaesthetic{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "cnf" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "cng" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) -"cnh" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) +"cnh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cni" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cnj" = (/obj/structure/rack,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/gun/energy/taser,/obj/item/weapon/storage/backpack/medic/full,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/head/helmet/space/syndicate/black/med,/obj/item/weapon/paper{info = "Each Medical ERT Memeber has: One Taser, OPne Medic pack with Anasthetic, a hypo-injector and an assortment of meds: Combat, QuikHeal and Cryo-in-a-syringe. Only Cryo heals without side effects, but it will put you to sleep. Combat will make you faster and temp resistant but mutate you, and the QuikHeal is very disoreintating."; name = "Medical ERT information"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"cnk" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"cnk" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "cnl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cnm" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnn" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) "cno" = (/mob/living/silicon/decoy{name = "A.L.I.C.E."},/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) "cnp" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) -"cnq" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) +"cnq" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cnr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cns" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cnt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) @@ -6107,14 +6107,14 @@ "cnw" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control) "cnx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cny" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"cnz" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"cnz" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnB" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) "cnC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"cnD" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"cnD" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnE" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnF" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control) -"cnG" = (/obj/structure/stool/chair,/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/control) +"cnG" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/control) "cnH" = (/obj/structure/closet/bombcloset,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/specops) "cnI" = (/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/specops) "cnJ" = (/obj/machinery/optable/portable,/obj/machinery/camera{c_tag = "ERT Armoury Left"; dir = 4; network = "CREED"},/obj/item/weapon/storage/briefcase/surgery,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/centcom/specops) @@ -6130,7 +6130,7 @@ "cnT" = (/obj/machinery/door/airlock/secure/centcom{name = "Special Operations"; req_access_txt = "108"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/specops) "cnU" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cnV" = (/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) -"cnW" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) +"cnW" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "circuit"},/area/centcom/control) "cnX" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cnY" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ERTSEC"; name = "ERT Security Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "cnZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) @@ -6150,7 +6150,7 @@ "con" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "coo" = (/turf/unsimulated/floor{dir = 6; icon_state = "asteroid8"; name = "sand"; tag = "icon-asteroid8 (SOUTHEAST)"},/area/centcom/specops) "cop" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"coq" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"coq" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cor" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) "cos" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) "cot" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) @@ -6169,11 +6169,11 @@ "coG" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "coH" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "coI" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"coJ" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) +"coJ" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) "coK" = (/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) -"coL" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) +"coL" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "coM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"coN" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"coN" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "coO" = (/obj/structure/rack,/obj/item/weapon/pinpointer,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/obj/item/weapon/storage/belt/security/full,/obj/effect/landmark{name = "nukecode"},/obj/item/weapon/zippo,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "coP" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "ERTIN"; name = "ERT-Shuttle Airlock"; opacity = 0},/turf/unsimulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/centcom/specops) "coQ" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -6183,12 +6183,12 @@ "coU" = (/obj/structure/bookcase{name = "bookcase (Reports)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "coV" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) "coW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"coX" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"coY" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"coX" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"coY" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "coZ" = (/turf/unsimulated/floor{tag = "icon-loadingarea"; icon_state = "loadingarea"},/area/centcom/specops) "cpa" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (General)"; pixel_x = -28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpb" = (/obj/structure/closet/secure_closet/injection,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) -"cpc" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) +"cpc" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) "cpd" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cpe" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/specops/centcom) "cpf" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "ERTIN"; name = "ERT-Shuttle Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -6197,12 +6197,12 @@ "cpi" = (/obj/structure/table,/obj/item/assembly/shock_kit{icon = 'assemblies.dmi'},/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/centcom/control) "cpj" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cpk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) -"cpl" = (/obj/machinery/computer/security/telescreen{name = "ERT Monitor"; network = "CREED"; pixel_y = 26},/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cpl" = (/obj/machinery/computer/security/telescreen{name = "ERT Monitor"; network = "CREED"; pixel_y = 26},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpm" = (/obj/machinery/computer/specops_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpn" = (/obj/machinery/camera{c_tag = "ERT Shuttle"; dir = 2; network = "CREED"},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpo" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cpp" = (/obj/machinery/door_control{id = "ERTIN"; pixel_y = 26},/obj/structure/stool/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cpq" = (/obj/structure/stool/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cpp" = (/obj/machinery/door_control{id = "ERTIN"; pixel_y = 26},/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cpq" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpr" = (/obj/structure/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/cigarette/cigar/havanian,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cps" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = "CREED"},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpt" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -6210,17 +6210,17 @@ "cpv" = (/turf/unsimulated/floor{tag = "icon-warning"; icon_state = "warning"},/area/centcom/control) "cpw" = (/obj/machinery/door/airlock/external{name = "Entrylock"},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ERTOUT"; name = "Entrylock"; p_open = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpx" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/door_control{name = "Spec Ops Ready Room"; desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; pixel_y = 15; req_access_txt = "11"; id = "CREED"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cpy" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"cpy" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpz" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpA" = (/obj/machinery/door/airlock/secure/centcom{name = "General Access"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cpB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"cpC" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cpC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cpD" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpE" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpF" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpG" = (/obj/machinery/computer/curer,/obj/item/weapon/storage/syringes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cpH" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cpI" = (/obj/machinery/door_control{desc = "A remote control switch for the Entrylock."; id = "ERTOUT"; name = "Entrylock Control"; pixel_x = 26},/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cpH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cpI" = (/obj/machinery/door_control{desc = "A remote control switch for the Entrylock."; id = "ERTOUT"; name = "Entrylock Control"; pixel_x = 26},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cpJ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "cpK" = (/obj/machinery/telecomms/allinone,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cpL" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) @@ -6247,25 +6247,25 @@ "cqg" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) "cqh" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom) "cqi" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cqj" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"cqj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cqk" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cql" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqm" = (/obj{anchored = 1; icon = 'shuttle.dmi'; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom) -"cqn" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) +"cqn" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "cqo" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom) "cqp" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cqq" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cqq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqr" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"cqs" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cqs" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqt" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqu" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon = 'rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/ferry) "cqv" = (/turf/unsimulated/floor{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/centcom/ferry) "cqw" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "cqx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "cqy" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control) -"cqz" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) +"cqz" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "cqA" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) -"cqB" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) +"cqB" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) "cqC" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqD" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqE" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/transport1/centcom) @@ -6281,7 +6281,7 @@ "cqO" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cqP" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom) "cqQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/shuttle/transport1/centcom) -"cqR" = (/obj/structure/stool/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"cqR" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cqS" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) "cqT" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom) "cqU" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) @@ -6289,23 +6289,23 @@ "cqW" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/evac) "cqX" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cqY" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"cqZ" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"cqZ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cra" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "crb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "crc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "crd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) -"cre" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cre" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "crf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/shuttle/escape/centcom) "crg" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/shuttle/transport1/centcom) "crh" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom) "cri" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom) -"crj" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) +"crj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "crk" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/transport1/centcom) "crl" = (/turf/unsimulated/floor{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/centcom/ferry) "crm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "crn" = (/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/unsimulated/wall,/area/centcom/ferry) -"cro" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/control) -"crp" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/control) +"cro" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/control) +"crp" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/control) "crq" = (/obj/effect/sign/securearea{name = "EXTERNAL AIRLOCK"; desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; pixel_x = -1},/turf/unsimulated/wall,/area/centcom/evac) "crr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "crs" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) @@ -6350,7 +6350,7 @@ "csf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "csg" = (/turf/unsimulated/floor{dir = 6; icon_state = "warning"},/area/centcom/control) "csh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) -"csi" = (/obj/structure/stool/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"csi" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "csj" = (/obj/structure/table,/obj/machinery/blender{pixel_y = 11},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "csk" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "csl" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) @@ -6382,10 +6382,10 @@ "csL" = (/obj/machinery/vending/coffee,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "csM" = (/obj/effect/overlay{anchored = 1; icon = 'beach.dmi'; icon_state = "crab"; name = "crab"},/turf/unsimulated/floor{icon = 'icons/misc/beach2.dmi'; icon_state = "sandwater"},/area/centcom/holding) "csN" = (/turf/unsimulated/floor{icon = 'icons/misc/beach2.dmi'; icon_state = "sandwater"},/area/centcom/holding) -"csO" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) +"csO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "csP" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "csQ" = (/obj/structure/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) -"csR" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) +"csR" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "csS" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "csT" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "csU" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -6396,9 +6396,9 @@ "csZ" = (/turf/unsimulated/floor{icon = 'beach.dmi'; icon_state = "water"; name = "water"},/area/centcom/holding) "cta" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "ctb" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"ctc" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) +"ctc" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "ctd" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) -"cte" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) +"cte" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "ctf" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "ctg" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cth" = (/obj/machinery/vending/cola,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) @@ -6433,7 +6433,7 @@ "ctK" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctL" = (/obj/structure/closet/secure_closet/meat,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "ctM" = (/obj/structure/closet/secure_closet/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"ctN" = (/obj/structure/stool/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"ctN" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctO" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctP" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctQ" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/donkpocket_kit{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) @@ -6442,7 +6442,7 @@ "ctT" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctU" = (/obj/item/weapon/camera_test,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctV" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"ctW" = (/obj/structure/stool/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"ctW" = (/obj/structure/stool/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "ctX" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/melee/energy/axe,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "ctY" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/floor,/area/tdome) "ctZ" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/tdome) @@ -6481,15 +6481,15 @@ "cuG" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "cuH" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/tdome) "cuI" = (/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"cuJ" = (/obj/structure/stool/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"cuJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuK" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuL" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"cuM" = (/obj/structure/stool/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"cuM" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuN" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuO" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent{pixel_x = 1},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuP" = (/obj/item/weapon/wrench,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuQ" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"cuR" = (/obj/structure/stool/chair,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"cuR" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuS" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuT" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/obj/item/weapon/chem_grenade/cleaner,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "cuU" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -6530,7 +6530,7 @@ "cvD" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station) "cvE" = (/turf/unsimulated/wall{icon = 'walls.dmi'; icon_state = "rock"; name = "grass"},/area/planet/clown) "cvF" = (/turf/unsimulated/wall{icon = 'floors.dmi'; icon_state = "grass3"; name = "grass"},/area/planet/clown) -"cvG" = (/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) +"cvG" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) "cvH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "cvI" = (/obj/effect/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) "cvJ" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station) @@ -6608,7 +6608,7 @@ "cxd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cxe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/derelict/ship) "cxf" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"cxg" = (/obj/structure/stool/chair{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cxg" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cxh" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cxi" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/derelict/ship) "cxj" = (/obj/item/device/multitool,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) @@ -6636,7 +6636,7 @@ "cxF" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area) "cxG" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area) "cxH" = (/obj/structure/table,/obj/item/device/analyzer,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cxI" = (/obj/structure/stool/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cxI" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cxJ" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cxK" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "cxL" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) @@ -6660,8 +6660,8 @@ "cyd" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area) "cye" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area) "cyf" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cyg" = (/obj/item/weapon/shard,/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) -"cyh" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cyg" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) +"cyh" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cyi" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cyj" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) "cyk" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/unsimulated/floor{icon = 'shuttle.dmi'; icon_state = "floor3"},/area/derelict/ship) @@ -6749,10 +6749,10 @@ "czO" = (/obj/structure/table,/obj/item/device/radio,/turf/simulated/floor,/area/tcommsat/computer) "czP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor,/area/tcommsat/computer) "czQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor,/area/tcommsat/computer) -"czR" = (/obj/structure/stool/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) +"czR" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "czS" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/simulated/floor,/area/tcommsat/computer) "czT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/tcommsat/lounge) -"czU" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/tcommsat/lounge) +"czU" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/tcommsat/lounge) "czV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/tcommsat/lounge) "czW" = (/obj/machinery/light{dir = 8},/turf/space,/area/turret_protected/tcomwest) "czX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/turret_protected/tcomwest) @@ -6766,9 +6766,9 @@ "cAf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall/r_wall,/area/tcommsat/lounge) "cAg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) "cAh" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) -"cAi" = (/obj/structure/stool/chair{dir = 4},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) +"cAi" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) "cAj" = (/obj/structure/table,/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/obj/item/weapon/cigpacket,/turf/simulated/floor,/area/tcommsat/lounge) -"cAk" = (/obj/structure/stool/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) +"cAk" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/floor,/area/tcommsat/lounge) "cAl" = (/obj/structure/cable{tag = "Streight"; icon_state = "4-8"; pixel_x = 1; d1 = 4; d2 = 8},/turf/simulated/wall/r_wall,/area/tcommsat/lounge) "cAm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest) "cAn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomwest) @@ -6785,7 +6785,7 @@ "cAy" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/tcommsat/lounge) "cAz" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/tcommsat/lounge) "cAA" = (/obj/item/weapon/cigbutt,/obj/machinery/light,/turf/simulated/floor,/area/tcommsat/lounge) -"cAB" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/tcommsat/lounge) +"cAB" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/tcommsat/lounge) "cAC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/tcommsat/lounge) "cAD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/lounge) "cAE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) @@ -6932,9 +6932,9 @@ "cDp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/effect/sign/securearea,/turf/simulated/floor/plating,/area/turret_protected/tcomfoyer) "cDq" = (/obj/machinery/turret{id = "tcommfoyer"},/turf/simulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/turret_protected/tcomfoyer) "cDr" = (/obj/machinery/turretid{icon_state = "motion1"; id = "tcommwest"; lethal = 1; name = "West Wing Turret deactivation control"; pixel_y = 29; req_access = list(61); req_access_txt = "0"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"cDs" = (/obj/structure/stool/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"cDt" = (/obj/structure/stool/chair,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/turret_protected/tcomfoyer) -"cDu" = (/obj/structure/stool/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) +"cDs" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/turret_protected/tcomfoyer) +"cDt" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/turret_protected/tcomfoyer) +"cDu" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) "cDv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/turretid{icon_state = "motion1"; id = "tcommeast"; lethal = 1; name = "East Wing Turret deactivation control"; pixel_y = 29; req_access = list(61); req_access_txt = "0"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) "cDw" = (/obj/machinery/turret{id = "tcommfoyer"},/turf/simulated/floor{tag = "icon-warningcorner"; icon_state = "warningcorner"; dir = 2},/area/turret_protected/tcomfoyer) "cDx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/effect/sign/securearea,/turf/simulated/floor/plating,/area/turret_protected/tcomfoyer) @@ -7107,25 +7107,25 @@ "cGI" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/djstation) "cGJ" = (/obj/machinery/door/airlock/glass{name = "Kitchen"},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cGK" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; freerange = 1; listening = 1; name = "Pirate Radio Listening Channel"; pixel_x = 0},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) -"cGL" = (/obj/structure/stool/chair,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) +"cGL" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cGM" = (/obj/machinery/door/airlock{name = "Cabin"},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cGN" = (/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) "cGO" = (/obj/machinery/sleeper,/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) "cGP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/djstation) "cGQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/djstation) "cGR" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/djstation) -"cGS" = (/obj/structure/stool/chair{dir = 1},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/djstation) +"cGS" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/djstation) "cGT" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cGU" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; freerange = 1; listening = 0; name = "Pirate Radio Broadcast Channel"; pixel_x = 0},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cGV" = (/obj/structure/computerframe{anchored = 1},/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) -"cGW" = (/obj/structure/stool/chair{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) +"cGW" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) "cGX" = (/obj/machinery/light,/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) "cGY" = (/obj/structure/closet,/turf/unsimulated/floor{dir = 2; icon_state = "grimy"},/area/djstation) "cGZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/djstation) "cHa" = (/obj/machinery/door/airlock{name = "Restroom"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "white"},/area/djstation) "cHb" = (/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cHc" = (/turf/unsimulated/floor{icon_state = "white"},/area/djstation) -"cHd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/stool/chair{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) +"cHd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cHe" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cHf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/rack{dir = 4},/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/djstation) "cHg" = (/obj/machinery/disposal/toilet{tag = "icon-toilet (WEST)"; icon_state = "toilet"; dir = 8},/obj/structure/disposalpipe/trunk,/turf/unsimulated/floor{icon_state = "white"},/area/djstation) @@ -7271,7 +7271,7 @@ "cJQ" = (/obj/item/weapon/paper{name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "cJR" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/derelict/bridge/access) "cJS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/derelict/bridge) -"cJT" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/derelict/bridge) +"cJT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/derelict/bridge) "cJU" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge) "cJV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge) "cJW" = (/obj/item/stack/rods,/turf/space,/area) @@ -7377,11 +7377,11 @@ "cLS" = (/obj/machinery/light/small,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) "cLT" = (/obj/structure/window/basic{dir = 5},/turf/space,/area) "cLU" = (/obj/structure/table,/turf/simulated/floor,/area/derelict/arrival) -"cLV" = (/obj/structure/stool/chair,/turf/simulated/floor,/area/derelict/arrival) +"cLV" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/derelict/arrival) "cLW" = (/turf/simulated/floor,/area/derelict/arrival) "cLX" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/derelict/arrival) -"cLY" = (/obj/structure/stool/chair{dir = 8},/obj/item/weapon/pen,/turf/simulated/floor,/area/derelict/arrival) -"cLZ" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor,/area/derelict/arrival) +"cLY" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/weapon/pen,/turf/simulated/floor,/area/derelict/arrival) +"cLZ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/derelict/arrival) "cMa" = (/turf/simulated/wall,/area/derelict/medical/chapel) "cMb" = (/obj/item/weapon/shard,/turf/space,/area) "cMc" = (/obj/structure/grille,/turf/space,/area/derelict/singularity_engine) @@ -7423,8 +7423,8 @@ "cMM" = (/obj/item/weapon/storage/lightbox/bulbs,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "cMN" = (/obj/item/weapon/disk/data/demo,/turf/simulated/floor/plating/airless,/area) "cMO" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area) -"cMP" = (/obj/structure/stool/chair{dir = 1},/turf/simulated/floor,/area/derelict/arrival) -"cMQ" = (/obj/structure/stool/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/arrival) +"cMP" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/derelict/arrival) +"cMQ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/arrival) "cMR" = (/obj/machinery/door{icon = 'icons/obj/doors/doormorgue.dmi'; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) "cMS" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "dark"},/area/derelict/medical/chapel) "cMT" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical) @@ -7989,7 +7989,7 @@ "cXG" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cXH" = (/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cXI" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) -"cXJ" = (/obj/structure/stool/chair,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"cXJ" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cXK" = (/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cXL" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cXM" = (/obj/machinery/door/airlock{name = "Room 3"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) @@ -8008,9 +8008,9 @@ "cXZ" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) "cYa" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cYb" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) -"cYc" = (/obj/structure/stool/chair{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"cYc" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cYd" = (/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) -"cYe" = (/obj/structure/stool/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) +"cYe" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "cYf" = (/turf/simulated/floor,/area/mine/storage) "cYg" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/mine/storage) "cYh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/storage) diff --git a/sound/effects/pageturn1.ogg b/sound/effects/pageturn1.ogg new file mode 100644 index 00000000000..0fe537cd1da Binary files /dev/null and b/sound/effects/pageturn1.ogg differ diff --git a/sound/effects/pageturn2.ogg b/sound/effects/pageturn2.ogg new file mode 100644 index 00000000000..e34f7fdd507 Binary files /dev/null and b/sound/effects/pageturn2.ogg differ diff --git a/sound/effects/pageturn3.ogg b/sound/effects/pageturn3.ogg new file mode 100644 index 00000000000..8b2d61fdc6d Binary files /dev/null and b/sound/effects/pageturn3.ogg differ