diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index f857a8f232..c33d92609c 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -34,6 +34,7 @@ #define ACCESSORY_SLOT_ARMOR_L "Leg armor" #define ACCESSORY_SLOT_ARMOR_S "Armor storage" #define ACCESSORY_SLOT_ARMOR_M "Misc armor" +#define ACCESSORY_SLOT_HELM_C "Helmet cover" // Flags bitmasks. #define NOBLUDGEON 0x1 // When an item has this it produces no "X has been hit by Y with Z" message with the default handler. @@ -111,6 +112,21 @@ #define slot_w_uniform_str "slot_w_uniform" #define slot_head_str "slot_head" #define slot_wear_suit_str "slot_suit" +#define slot_l_ear_str "slot_l_ear" +#define slot_r_ear_str "slot_r_ear" +#define slot_belt_str "slot_belt" +#define slot_shoes_str "slot_shoes" +#define slot_head_str "slot_head" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_handcuffed_str "slot_handcuffed" +#define slot_legcuffed_str "slot_legcuffed" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_wear_id_str "slot_wear_id" +#define slot_gloves_str "slot_gloves" +#define slot_glasses_str "slot_glasses" +#define slot_s_store_str "slot_s_store" +#define slot_tie_str "slot_tie" + // Bitflags for clothing parts. #define HEAD 0x1 diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 5063dee042..724f5789d8 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1433,4 +1433,51 @@ var/mob/dview/dview_mob = new return USE_FAIL_NOT_IN_USER #undef NOT_FLAG -#undef HAS_FLAG \ No newline at end of file +#undef HAS_FLAG + +// Returns direction-string, rounded to multiples of 22.5, from the first parameter to the second +// N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW +/proc/get_adir(var/turf/A, var/turf/B) + var/degree = Get_Angle(A, B) + switch(round(degree%360, 22.5)) + if(0) + return "North" + if(22.5) + return "North-Northeast" + if(45) + return "Northeast" + if(67.5) + return "East-Northeast" + if(90) + return "East" + if(112.5) + return "East-Southeast" + if(135) + return "Southeast" + if(157.5) + return "South-Southeast" + if(180) + return "South" + if(202.5) + return "South-Southwest" + if(225) + return "Southwest" + if(247.5) + return "West-Southwest" + if(270) + return "West" + if(292.5) + return "West-Northwest" + if(315) + return "Northwest" + if(337.5) + return "North-Northwest" + + + + + + + + + diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 83f23930dd..e1b141ecb7 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -75,7 +75,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height()) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_HELP using.icon = ico using.screen_loc = ui_acti @@ -87,7 +87,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height()) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_DISARM using.icon = ico using.screen_loc = ui_acti @@ -99,7 +99,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_GRAB using.icon = ico using.screen_loc = ui_acti @@ -111,7 +111,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_HURT using.icon = ico using.screen_loc = ui_acti diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm index dda2565bf1..2857476027 100644 --- a/code/datums/ghost_query.dm +++ b/code/datums/ghost_query.dm @@ -126,3 +126,9 @@ question = "A person suspended in cryosleep has been discovered by a crewmember \ and they are attempting to open the cryopod. Would you like to play as the occupant?" cutoff_number = 1 + +/datum/ghost_query/corgi_rune + role_name = "Dark Creature" + question = "A curious explorer has touched a mysterious rune. \ + Would you like to play as the creature it summons?" + cutoff_number = 1 diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index e8974f09f9..bbfe6f59f5 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -20,6 +20,7 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner + l_ear = /obj/item/device/radio/headset/headset_mine backpack = /obj/item/weapon/storage/backpack/industrial satchel_one = /obj/item/weapon/storage/backpack/satchel/eng id_type = /obj/item/weapon/card/id/cargo/mining diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index d09e3c8ee5..4c5ddedf47 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -49,7 +49,7 @@ cost = 15 contains = list( /obj/fiftyspawner/carpet, - /obj/fiftyspawner/bluecarpet + /obj/fiftyspawner/tealcarpet ) diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 45310d0cbf..9fe4d18150 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -282,7 +282,7 @@ /obj/item/clothing/suit/storage/vest/hos, /obj/item/clothing/under/rank/head_of_security/corp, /obj/item/clothing/suit/storage/vest/hoscoat, - /obj/item/clothing/head/helmet/HoS/dermal, + /obj/item/clothing/head/helmet/dermal, /obj/item/weapon/cartridge/hos, /obj/item/device/radio/headset/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index c173ba55ac..1579252628 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -102,6 +102,8 @@ desc = "You could probably shock someone badly if you touched them, or recharge something." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = FALSE + var/shock_cost = 10 var/agony_amount = 60 var/electrocute_amount = 10 diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm index dd77debc97..29ad6573f6 100644 --- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm +++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm @@ -30,6 +30,7 @@ desc = "This finger appears to be an organic datajack." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = FALSE /obj/item/weapon/finger_lockpick/New() if(ismob(loc)) diff --git a/code/game/gamemodes/technomancer/assistance/golem.dm b/code/game/gamemodes/technomancer/assistance/golem.dm index 33fc246911..6b8654e719 100644 --- a/code/game/gamemodes/technomancer/assistance/golem.dm +++ b/code/game/gamemodes/technomancer/assistance/golem.dm @@ -30,7 +30,7 @@ melee_damage_lower = 30 // It has a built in esword. melee_damage_upper = 30 attack_sound = 'sound/weapons/blade1.ogg' - attacktext = "slashed" + attacktext = list("slashed") friendly = "hugs" resistance = 0 melee_miss_chance = 0 diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm index fb28813102..2a917b4fd8 100644 --- a/code/game/gamemodes/technomancer/spell_objs.dm +++ b/code/game/gamemodes/technomancer/spell_objs.dm @@ -31,6 +31,7 @@ ) throwforce = 0 force = 0 + show_examine = FALSE // var/mob/living/carbon/human/owner = null var/mob/living/owner = null var/obj/item/weapon/technomancer_core/core = null diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 012d46a482..483cc02bae 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -621,32 +621,30 @@ var/global/datum/controller/occupations/job_master tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-" feedback_add_details("job_preferences",tmp_str) -/datum/controller/occupations/proc/LateSpawn(var/mob/living/carbon/human/H, var/rank) - //spawn at one of the latespawn locations +/datum/controller/occupations/proc/LateSpawn(var/client/C, var/rank) var/datum/spawnpoint/spawnpos -// if(H.client.prefs.spawnpoint) -// spawnpos = spawntypes[H.client.prefs.spawnpoint] - - if(H.client.prefs.spawnpoint) - if(!(H.client.prefs.spawnpoint in using_map.allowed_spawns)) - if(H) // This seems redundant... - to_chat(H, "Your chosen spawnpoint ([H.client.prefs.spawnpoint]) is unavailable for the current map. Spawning you at one of the enabled spawn points instead.") + //Spawn them at their preferred one + if(C.prefs.spawnpoint) + if(!(C.prefs.spawnpoint in using_map.allowed_spawns)) + to_chat(C, "Your chosen spawnpoint ([C.prefs.spawnpoint]) is unavailable for the current map. Spawning you at one of the enabled spawn points instead.") spawnpos = null else - spawnpos = spawntypes[H.client.prefs.spawnpoint] + spawnpos = spawntypes[C.prefs.spawnpoint] + //We will return a list key'd by "turf" and "msg" + . = list("turf","msg") if(spawnpos && istype(spawnpos) && spawnpos.turfs.len) if(spawnpos.check_job_spawning(rank)) - H.forceMove(spawnpos.get_spawn_position()) - . = spawnpos.msg + .["turf"] = spawnpos.get_spawn_position() + .["msg"] = spawnpos.msg else - H << "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the default arrivals location instead." //VOREStation Edit - Generic, not shuttle. + to_chat(C,"Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.") var/spawning = pick(latejoin) - H.forceMove(get_turf(spawning)) - . = "will arrive at the station shortly" //VOREStation Edit - Grammar but mostly 'shuttle' reference removal, and this also applies to notified spawn-character verb use + .["turf"] = get_turf(spawning) + .["msg"] = "will arrive at the station shortly" //VOREStation Edit - Grammar but mostly 'shuttle' reference removal, and this also applies to notified spawn-character verb use else var/spawning = pick(latejoin) - H.forceMove(get_turf(spawning)) - . = "has arrived on the station" + .["turf"] = get_turf(spawning) + .["msg"] = "has arrived on the station" diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index 7039f9445a..36db3f83f3 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -32,14 +32,12 @@ breather.internal = null if(breather.internals) breather.internals.icon_state = "internal0" - if(tank) - qdel(tank) - if(breather) breather.remove_from_mob(contained) - src.visible_message("The mask rapidly retracts just before /the [src] is destroyed!") - qdel(contained) - contained = null - breather = null + visible_message("The mask rapidly retracts just before /the [src] is destroyed!") + breather = null + + qdel_null(tank) + qdel_null(contained) return ..() /obj/machinery/oxygen_pump/MouseDrop(var/mob/living/carbon/human/target, src_location, over_location) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 41e3bdc38a..c4f3ad95c4 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -861,7 +861,8 @@ /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2) + /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, + /obj/item/weapon/storage/pill_bottle/carbon = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. req_log_access = access_cmo diff --git a/code/game/objects/effects/decals/posters/polarisposters.dm b/code/game/objects/effects/decals/posters/polarisposters.dm index 9295b754c9..958ceb66be 100644 --- a/code/game/objects/effects/decals/posters/polarisposters.dm +++ b/code/game/objects/effects/decals/posters/polarisposters.dm @@ -26,12 +26,12 @@ /datum/poster/pol_6 icon_state="polposter6" name = "Walk!" - desc = "This poster depicts a man walking, presumably to encourage you to not run in the halls." + desc = "This poster depicts a man walking, presumably to encourage you not to run in the halls." /datum/poster/pol_7 icon_state="polposter7" name = "Place your signs!" - desc = "A safety poster reminding custodial stuff to place wet floor signs where needed. This reminder's rarely heeded." + desc = "A safety poster reminding custodial staff to place wet floor signs where needed. This reminder's rarely heeded." /datum/poster/pol_8 icon_state="polposter8" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c5840eaed2..2e8429edd3 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -382,14 +382,14 @@ var/list/global/slot_flags_enumeration = list( if(!allow) return 0 if(slot_tie) - if(!H.w_uniform && (slot_w_uniform in mob_equip)) + var/allow = 0 + for(var/obj/item/clothing/C in H.worn_clothing) //Runs through everything you're wearing, returns if you can't attach the thing + if(C.can_attach_accessory(src)) + allow = 1 + break + if(!allow) if(!disable_warning) - H << "You need a jumpsuit before you can attach this [name]." - return 0 - var/obj/item/clothing/under/uniform = H.w_uniform - if(uniform.accessories.len && !uniform.can_attach_accessory(src)) - if (!disable_warning) - H << "You already have an accessory of this type attached to your [uniform]." + H << "You're not wearing anything you can attach this [name] to." return 0 return 1 diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index a23abb5b06..302c7df568 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -145,7 +145,7 @@ var/obj/item/weapon/reagent_containers/syringe/syringe /obj/structure/closet/body_bag/cryobag/New() - tank = new /obj/item/weapon/tank/emergency/oxygen(null) //It's in nullspace to prevent ejection when the bag is opened. + tank = new /obj/item/weapon/tank/emergency/oxygen/double(null) //It's in nullspace to prevent ejection when the bag is opened. ..() /obj/structure/closet/body_bag/cryobag/Destroy() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 0f92b5ca09..6928889b59 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1379,14 +1379,12 @@ var/global/list/obj/item/device/pda/PDAs = list() to_chat(user, "Blood type: [C:blood_DNA[blood]]\nDNA: [blood]") if(4) - for (var/mob/O in viewers(C, null)) - O.show_message("\The [user] has analyzed [C]'s radiation levels!", 1) - - user.show_message("Analyzing Results for [C]:") + user.visible_message("\The [user] has analyzed [C]'s radiation levels!", 1) + to_chat(user, "Analyzing Results for [C]:") if(C.radiation) - user.show_message("Radiation Level: [C.radiation]") + to_chat(user, "Radiation Level: [C.radiation]") else - user.show_message("No radiation detected.") + to_chat(user, "No radiation detected.") /obj/item/device/pda/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity) if(!proximity) return diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 30d4195355..78f385a8aa 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -104,16 +104,16 @@ var/list/GPS_list = list() if(istype(their_area, /area/submap)) area_name = "Unknown Area" // Avoid spoilers. var/Z_name = using_map.get_zlevel_name(T.z) - var/direction = uppertext(dir2text(get_dir(curr, T))) + var/direction = get_adir(curr, T) + var/distX = T.x - curr.x + var/distY = T.y - curr.y var/distance = get_dist(curr, T) var/local = curr.z == T.z ? TRUE : FALSE - if(!direction) - direction = "CENTER" - if(istype(T, /obj/item/device/gps/internal/poi)) - signals += " [G.gps_tag]: [area_name] [local ? "Dist: [round(distance, 10)]m [direction])" : "in \the [Z_name]"]" + if(istype(gps, /obj/item/device/gps/internal/poi)) + signals += " [G.gps_tag]: [area_name] - [local ? "[direction] Dist: [round(distance, 10)]m" : "in \the [Z_name]"]" else - signals += " [G.gps_tag]: [area_name] [local ? "Dist: [round(distance, 10)]m [direction])" : "in \the [Z_name]"]" + signals += " [G.gps_tag]: [area_name], ([T.x], [T.y]) - [local ? "[direction] Dist: [distX ? "[abs(round(distX, 1))]m [(distX > 0) ? "E" : "W"], " : ""][distY ? "[abs(round(distY, 1))]m [(distY > 0) ? "N" : "S"]" : ""]" : "in \the [Z_name]"]" if(signals.len) dat += "Detected signals;" @@ -250,12 +250,9 @@ var/list/GPS_list = list() var/Z_name = using_map.get_zlevel_name(T.z) var/coord = "[T.x], [T.y], [Z_name]" var/degrees = round(Get_Angle(curr, T)) - var/direction = uppertext(dir2text(get_dir(curr, T))) + var/direction = get_adir(curr, T) var/distance = get_dist(curr, T) var/local = curr.z == T.z ? TRUE : FALSE - if(!direction) - direction = "CENTER" - degrees = "N/A" signals += " [G.gps_tag]: [area_name] ([coord]) [local ? "Dist: [distance]m Dir: [degrees]° ([direction])":""]" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 3b703f703b..01b52affc5 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -92,77 +92,66 @@ name = "security radio headset" desc = "This is used by your elite security force." icon_state = "sec_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_sec/alt name = "security bowman headset" desc = "This is used by your elite security force." icon_state = "sec_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_eng/alt name = "engineering bowman headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists who cannot decide between departments." icon_state = "rob_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med name = "medical radio headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_med/alt name = "medical bowman headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci name = "science radio headset" desc = "A sciency headset. Like usual." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sci /obj/item/device/radio/headset/headset_medsci name = "medical research radio headset" desc = "A headset that is a result of the mating between medical and science." icon_state = "med_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/headset_com/alt name = "command bowman headset" desc = "A headset with a commanding channel." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com @@ -170,21 +159,18 @@ name = "colony director's headset" desc = "The headset of the boss." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/alt name = "colony director's bowman headset" desc = "The headset of the boss." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/sfr name = "SFR headset" desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. @@ -206,105 +192,91 @@ name = "research director's headset" desc = "Headset of the researching God." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/rd/alt name = "research director's bowman headset" desc = "Headset of the researching God." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos name = "head of security's headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/hos/alt name = "head of security's bowman headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/ce/alt name = "chief engineer's bowman headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo name = "chief medical officer's headset" desc = "The headset of the highly trained medical chief." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/cmo/alt name = "chief medical officer's bowman headset" desc = "The headset of the highly trained medical chief." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop /obj/item/device/radio/headset/heads/hop/alt name = "head of personnel's bowman headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop -/* + /obj/item/device/radio/headset/headset_mine name = "mining radio headset" - desc = "Headset used by miners. How useless. To access the mining channel, use :d." + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." icon_state = "mine_headset" - item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_mine -*/ + adhoc_fallback = TRUE + ks2type = /obj/item/device/encryptionkey/headset_cargo + /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" desc = "A headset used by the QM and his slaves." icon_state = "cargo_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_cargo/alt name = "supply bowman headset" desc = "A bowman headset used by the QM and his slaves." icon_state = "cargo_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_service name = "service radio headset" desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." icon_state = "srv_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/ert name = "emergency response team radio headset" desc = "The headset of the boss's boss." icon_state = "com_headset" - item_state = "headset" centComm = 1 // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -313,7 +285,6 @@ name = "emergency response team bowman headset" desc = "The headset of the boss's boss." icon_state = "com_headset_alt" - item_state = "headset" // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -324,7 +295,6 @@ name = "internal affair's headset" desc = "The headset of your worst enemy." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/mmi_radio diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index ae255d2f7b..3781d6a1c3 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -3,9 +3,10 @@ CONTAINS: T-RAY DETECTIVE SCANNER HEALTH ANALYZER -GAS ANALYZER +GAS ANALYZER - Analyzes atmosphere, container MASS SPECTROMETER REAGENT SCANNER +HALOGEN COUNTER - Radcount on mobs */ @@ -41,29 +42,30 @@ REAGENT SCANNER scan_mob(M, user) /obj/item/device/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user) + var/dat = "" if ((CLUMSY in user.mutations) && prob(50)) - user << text("You try to analyze the floor's vitals!") - for(var/mob/O in viewers(M, null)) - O.show_message("\The [user] has analyzed the floor's vitals!", 1) - user.show_message("Analyzing Results for The floor:", 1) - user.show_message("Overall Status: Healthy", 1) - user.show_message(" Damage Specifics: 0-0-0-0", 1) - user.show_message("Key: Suffocation/Toxin/Burns/Brute", 1) - user.show_message("Body Temperature: ???", 1) + user.visible_message("\The [user] has analyzed the floor's vitals!", "You try to analyze the floor's vitals!") + dat += "Analyzing Results for the floor:
" + dat += "Overall Status: Healthy
" + dat += "\tDamage Specifics: 0-0-0-0
" + dat += "Key: Suffocation/Toxin/Burns/Brute
" + dat += "Body Temperature: ???" + user.show_message("[dat]", 1) return - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") - usr << "You don't have the dexterity to do this!" + if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") + to_chat(user, "You don't have the dexterity to do this!") return user.visible_message("[user] has analyzed [M]'s vitals.","You have analyzed [M]'s vitals.") - if (!istype(M,/mob/living/carbon/human) || M.isSynthetic()) + if (!ishuman(M) || M.isSynthetic()) //these sensors are designed for organic life - user.show_message("Analyzing Results for ERROR:\n\t Overall Status: ERROR") - user.show_message(" Key: Suffocation/Toxin/Burns/Brute", 1) - user.show_message(" Damage Specifics: ? - ? - ? - ?") - user.show_message("Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1) - user.show_message("Warning: Blood Level ERROR: --% --cl. Type: ERROR") - user.show_message("Subject's pulse: -- bpm.") + dat += "Analyzing Results for ERROR:\n\tOverall Status: ERROR
" + dat += "\tKey: Suffocation/Toxin/Burns/Brute
" + dat += "\tDamage Specifics: ? - ? - ? - ?
" + dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)

" + dat += "Warning: Blood Level ERROR: --% --cl. Type: ERROR
" + dat += "Subject's pulse: -- bpm." + user.show_message(dat, 1) return var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss()))) @@ -73,52 +75,52 @@ REAGENT SCANNER var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss() if(M.status_flags & FAKEDEATH) OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy - user.show_message("Analyzing Results for [M]:") - user.show_message("Overall Status: dead") + dat += "Analyzing Results for [M]:
" + dat += "Overall Status: dead
" else - user.show_message("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]") - user.show_message(" Key: Suffocation/Toxin/Burns/Brute", 1) - user.show_message(" Damage Specifics: [OX] - [TX] - [BU] - [BR]") - user.show_message("Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1) + dat += "Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]
" + dat += "\tKey: Suffocation/Toxin/Burns/Brute
" + dat += "\tDamage Specifics: [OX] - [TX] - [BU] - [BR]
" + dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)

" if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) - user.show_message("Time of Death: [M.tod]") + dat += "Time of Death: [M.tod]
" if(istype(M, /mob/living/carbon/human) && mode == 1) var/mob/living/carbon/human/H = M var/list/damaged = H.get_damaged_organs(1,1) - user.show_message("Localized Damage, Brute/Burn:",1) + dat += "Localized Damage, Brute/Burn:
" if(length(damaged)>0) for(var/obj/item/organ/external/org in damaged) if(org.robotic >= ORGAN_ROBOT) continue else - user.show_message(text(" []: [][] - []", - capitalize(org.name), - (org.brute_dam > 0) ? "[org.brute_dam]" : 0, - (org.status & ORGAN_BLEEDING)?"\[Bleeding\]":"", - (org.burn_dam > 0) ? "[org.burn_dam]" : 0),1) + dat += " [capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : 0]" + dat += "[(org.status & ORGAN_BLEEDING)?"\[Bleeding\]":""] - " + dat += "[(org.burn_dam > 0) ? "[org.burn_dam]" : 0]" else - user.show_message(" Limbs are OK.",1) + dat += " Limbs are OK.
" - OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal" - TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal" - BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K" + OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal" + TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal" + BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K" BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K" if(M.status_flags & FAKEDEATH) OX = fake_oxy > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal" - user.show_message("[OX] | [TX] | [BU] | [BR]") + dat += "[OX] | [TX] | [BU] | [BR]" if(M.radiation) if(advscan >= 2 && showadvscan == 1) + var/severity = "" if(M.radiation >= 75) - user.show_message("Critical levels of radiation detected. Immediate treatment advised.") + severity = "Critical" else if(M.radiation >= 50) - user.show_message("Severe levels of radiation detected.") + severity = "Severe" else if(M.radiation >= 25) - user.show_message("Moderate levels of radiation detected.") + severity = "Moderate" else if(M.radiation >= 1) - user.show_message("Low levels of radiation detected.") + severity = "Low" + dat += "[severity] levels of radiation detected. [(severity == "Critical") ? " Immediate treatment advised." : ""]
" else - user.show_message("Radiation detected.") - if(istype(M, /mob/living/carbon)) + dat += "Radiation detected.
" + if(iscarbon(M)) var/mob/living/carbon/C = M if(C.reagents.total_volume) var/unknown = 0 @@ -127,21 +129,21 @@ REAGENT SCANNER for(var/A in C.reagents.reagent_list) var/datum/reagent/R = A if(R.scannable) - reagentdata["[R.id]"] = " [round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]" + reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]
" else unknown++ - unknownreagents["[R.id]"] = " [round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]" + unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]
" if(reagentdata.len) - user.show_message("Beneficial reagents detected in subject's blood:") + dat += "Beneficial reagents detected in subject's blood:
" for(var/d in reagentdata) - user.show_message(reagentdata[d]) + dat += reagentdata[d] if(unknown) if(advscan >= 3 && showadvscan == 1) - user.show_message("Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:") + dat += "Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:
" for(var/d in unknownreagents) - user.show_message(unknownreagents[d]) + dat += unknownreagents[d] else - user.show_message("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.") + dat += "Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.
" if(C.ingested && C.ingested.total_volume) var/unknown = 0 var/stomachreagentdata[0] @@ -149,100 +151,104 @@ REAGENT SCANNER for(var/B in C.ingested.reagent_list) var/datum/reagent/T = B if(T.scannable) - stomachreagentdata["[T.id]"] = " [round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]" + stomachreagentdata["[T.id]"] = "\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]
" if (advscan == 0 || showadvscan == 0) - user.show_message("[T.name] found in subject's stomach.") + dat += "[T.name] found in subject's stomach.
" else ++unknown - stomachunknownreagents["[T.id]"] = " [round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]" + stomachunknownreagents["[T.id]"] = "\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]
" if(advscan >= 1 && showadvscan == 1) - user.show_message("Beneficial reagents detected in subject's stomach:") + dat += "Beneficial reagents detected in subject's stomach:
" for(var/d in stomachreagentdata) - user.show_message(stomachreagentdata[d]) + dat += stomachreagentdata[d] if(unknown) if(advscan >= 3 && showadvscan == 1) - user.show_message("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:") + dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:
" for(var/d in stomachunknownreagents) - user.show_message(stomachunknownreagents[d]) + dat += stomachunknownreagents[d] else - user.show_message("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.") + dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.
" if(C.virus2.len) for (var/ID in C.virus2) if (ID in virusDB) var/datum/data/record/V = virusDB[ID] - user.show_message("Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]") + dat += "Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]
" else - user.show_message("Warning: Unknown pathogen detected in subject's blood.") + dat += "Warning: Unknown pathogen detected in subject's blood.
" if (M.getCloneLoss()) - user.show_message("Subject appears to have been imperfectly cloned.") + dat += "Subject appears to have been imperfectly cloned.
" // if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) // user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.") if (M.has_brain_worms()) - user.show_message("Subject suffering from aberrant brain activity. Recommend further scanning.") + dat += "Subject suffering from aberrant brain activity. Recommend further scanning.
" else if (M.getBrainLoss() >= 60 || !M.has_brain()) - user.show_message("Subject is brain dead.") + dat += "Subject is brain dead.
" else if (M.getBrainLoss() >= 25) - user.show_message("Severe brain damage detected. Subject likely to have a traumatic brain injury.") + dat += "Severe brain damage detected. Subject likely to have a traumatic brain injury.
" else if (M.getBrainLoss() >= 10) - user.show_message("Significant brain damage detected. Subject may have had a concussion.") + dat += "Significant brain damage detected. Subject may have had a concussion.
" else if (M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1) - user.show_message("Minor brain damage detected.") + dat += "Minor brain damage detected.
" if(ishuman(M)) var/mob/living/carbon/human/H = M - for(var/name_i in H.internal_organs_by_name) - var/obj/item/organ/internal/i = H.internal_organs_by_name[name_i] - if(istype(i, /obj/item/organ/internal/appendix)) - var/obj/item/organ/internal/appendix/a = H.internal_organs_by_name[name_i] - if(a.inflamed > 3) - user.show_message(text("Severe inflammation detected in subject [a.name]."), 1) - else if(a.inflamed > 2) - user.show_message(text("Moderate inflammation detected in subject [a.name]."), 1) - else if(a.inflamed >= 1) - user.show_message(text("Mild inflammation detected in subject [a.name]."), 1) - - - for(var/name in H.organs_by_name) - var/obj/item/organ/external/e = H.organs_by_name[name] - if(!e) - continue - var/limb = e.name - if(e.status & ORGAN_BROKEN) - if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!e.splinted)) - to_chat(user, "Unsecured fracture in subject [limb]. Splinting recommended for transport.") - if(e.has_infected_wound()) - to_chat(user, "Infected wound detected in subject [limb]. Disinfection recommended.") - - for(var/name in H.organs_by_name) - var/obj/item/organ/external/e = H.organs_by_name[name] - if(e && e.status & ORGAN_BROKEN) - if(advscan >= 1 && showadvscan == 1) - user.show_message(text("Bone fractures detected in subject [e.name]."), 1) - else - user.show_message(text("Bone fractures detected. Advanced scanner required for location."), 1) - break + for(var/obj/item/organ/internal/appendix/a in H.internal_organs) + var/severity = "" + if(a.inflamed > 3) + severity = "Severe" + else if(a.inflamed > 2) + severity = "Moderate" + else if(a.inflamed >= 1) + severity = "Mild" + if(severity) + dat += "[severity] inflammation detected in subject [a.name].
" + // Infections, fractures, and IB + var/basic_fracture = 0 // If it's a basic scanner + var/basic_ib = 0 // If it's a basic scanner + var/fracture_dat = "" // All the fractures + var/infection_dat = "" // All the infections + var/ib_dat = "" // All the IB for(var/obj/item/organ/external/e in H.organs) if(!e) continue - for(var/datum/wound/W in e.wounds) if(W.internal) - if(advscan >= 1 && showadvscan == 1) - user.show_message(text("Internal bleeding detected in subject [e.name]."), 1) + // Broken limbs + if(e.status & ORGAN_BROKEN) + if((e.name in list("l_arm", "r_arm", "l_leg", "r_leg")) && (!e.splinted)) + fracture_dat += "Unsecured fracture in subject [e.name]. Splinting recommended for transport.
" + else if(advscan >= 1 && showadvscan == 1) + fracture_dat += "Bone fractures detected in subject [e.name].
" else - user.show_message(text("Internal bleeding detected. Advanced scanner required for location."), 1) - break - break + basic_fracture = 1 + // Infections + if(e.has_infected_wound()) + dat += "Infected wound detected in subject [e.name]. Disinfection recommended.
" + // IB + for(var/datum/wound/W in e.wounds) + if(W.internal) + if(advscan >= 1 && showadvscan == 1) + ib_dat += "Internal bleeding detected in subject [e.name].
" + else + basic_ib = 1 + if(basic_fracture) + fracture_dat += "Bone fractures detected. Advanced scanner required for location.
" + if(basic_ib) + ib_dat += "Internal bleeding detected. Advanced scanner required for location.
" + dat += fracture_dat + dat += infection_dat + dat += ib_dat + // Blood level if(M:vessel) var/blood_volume = H.vessel.get_reagent_amount("blood") var/blood_percent = round((blood_volume / H.species.blood_volume)*100) var/blood_type = H.dna.b_type - if((blood_percent <= BLOOD_VOLUME_SAFE) && (blood_percent > BLOOD_VOLUME_BAD)) - user.show_message("Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]") - else if(blood_percent <= BLOOD_VOLUME_BAD) - user.show_message("Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]") + if(blood_percent <= BLOOD_VOLUME_BAD) + dat += "Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]
" + else if(blood_percent <= BLOOD_VOLUME_SAFE) + dat += "Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
" else - user.show_message("Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]") - user.show_message("Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.") - + dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
" + dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm." + user.show_message(dat, 1) /obj/item/device/healthanalyzer/verb/toggle_mode() set name = "Switch Verbosity" @@ -266,15 +272,15 @@ REAGENT SCANNER if(0) to_chat(usr, "The scanner will now perform a basic analysis.") -/obj/item/device/healthanalyzer/advanced //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff - name = "advanced health analyzer" +/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff + name = "improved health analyzer" desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns." advscan = 1 origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6) icon_state = "health1" -/obj/item/device/healthanalyzer/enhanced //reports all of the above, as well as radiation severity and minor brain damage - name = "enhanced health analyzer" +/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage + name = "advanced health analyzer" desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites." advscan = 2 origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7) @@ -311,16 +317,21 @@ REAGENT SCANNER return atmosanalyzer_scan(src, air, user) /obj/item/device/analyzer/attack_self(mob/user as mob) - if (user.stat) return - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") to_chat(usr, "You don't have the dexterity to do this!") return analyze_gases(src, user) return +/obj/item/device/analyzer/afterattack(var/obj/O, var/mob/user, var/proximity) + if(proximity) + analyze_gases(O, user) + return + + /obj/item/device/mass_spectrometer name = "mass spectrometer" desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." @@ -353,7 +364,7 @@ REAGENT SCANNER /obj/item/device/mass_spectrometer/attack_self(mob/user as mob) if (user.stat) return - if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + if (!(ishuman(user) || ticker) && ticker.mode.name != "monkey") to_chat(user, "You don't have the dexterity to do this!") return if(reagents.total_volume) @@ -400,15 +411,11 @@ REAGENT SCANNER var/recent_fail = 0 /obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob, proximity) - if(!proximity) - return - if (user.stat) + if(!proximity || user.stat || !istype(O)) return if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") to_chat(user, "You don't have the dexterity to do this!") return - if(!istype(O)) - return if(!isnull(O.reagents)) var/dat = "" @@ -419,9 +426,9 @@ REAGENT SCANNER if(dat) to_chat(user, "Chemicals found: [dat]") else - user << "No active chemical agents found in [O]." + to_chat(user, "No active chemical agents found in [O].") else - user << "No significant chemical agents found in [O]." + to_chat(user, "No significant chemical agents found in [O].") return @@ -445,24 +452,17 @@ REAGENT SCANNER /obj/item/device/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob) if(!isslime(M)) - user << "This device can only scan slimes!" + to_chat(user, "This device can only scan slimes!") return var/mob/living/simple_animal/slime/S = M - user.show_message("Slime scan results:") - user.show_message(text("[S.slime_color] [] slime", S.is_adult ? "adult" : "baby")) - - user.show_message("Health: [S.health]") - user.show_message("Mutation Probability: [S.mutation_chance]") + user.show_message("Slime scan results:
[S.slime_color] [S.is_adult ? "adult" : "baby"] slime
Health: [S.health]
Mutation Probability: [S.mutation_chance]") var/list/mutations = list() for(var/potential_color in S.slime_mutation) var/mob/living/simple_animal/slime/slime = potential_color mutations.Add(initial(slime.slime_color)) + user.show_message("Potental to mutate into [english_list(mutations)] colors.
Extract potential: [S.cores]
Nutrition: [S.nutrition]/[S.get_max_nutrition()]") - user.show_message("Potental to mutate into [english_list(mutations)] colors.") - user.show_message("Extract potential: [S.cores]") - - user.show_message(text("Nutrition: [S.nutrition]/[]", S.get_max_nutrition())) if (S.nutrition < S.get_starve_nutrition()) user.show_message("Warning: Subject is starving!") else if (S.nutrition < S.get_hunger_nutrition()) @@ -479,3 +479,25 @@ REAGENT SCANNER user.show_message("Subject is friendly to other slime colors.") user.show_message("Growth progress: [S.amount_grown]/10") + +/obj/item/device/halogen_counter + name = "halogen counter" + icon_state = "eftpos" + desc = "A hand-held halogen counter, used to detect the level of irradiation of living beings." + w_class = ITEMSIZE_SMALL + flags = CONDUCT + origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 2) + throwforce = 0 + throw_speed = 3 + throw_range = 7 + +/obj/item/device/halogen_counter/attack(mob/living/M as mob, mob/living/user as mob) + if(!iscarbon(M)) + to_chat(user, "This device can only scan organic beings!") + return + user.visible_message("\The [user] has analyzed [M]'s radiation levels!", "Analyzing Results for [M]:") + if(M.radiation) + to_chat(user, "Radiation Level: [M.radiation]") + else + to_chat(user, "No radiation detected.") + return diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index 159134f83c..ce145fed9e 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -16,11 +16,12 @@ // var/obj/item/device/radio/bug/radio var/obj/machinery/camera/bug/camera + var/camtype = /obj/machinery/camera/bug /obj/item/device/camerabug/New() ..() // radio = new(src) - camera = new(src) + camera = new camtype(src) /obj/item/device/camerabug/attack_self(mob/user) if(user.a_intent == I_HURT) @@ -40,7 +41,7 @@ linkedmonitor.unpair(src) linkedmonitor = null qdel(camera) - camera = new(src) + camera = new camtype(src) to_chat(usr, "You turn the [src] off and on again, delinking it from any monitors.") /obj/item/brokenbug @@ -83,6 +84,7 @@ w_class = ITEMSIZE_TINY slot_flags = SLOT_EARS origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1, TECH_ILLEGAL = 3) + camtype = /obj/machinery/camera/bug/spy /obj/item/device/camerabug/examine(mob/user) . = ..(user, 0) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 0a626b6a8e..225ac96012 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -136,7 +136,7 @@ return 1 /obj/item/borg/upgrade/jetpack - name = "mining robot jetpack" + name = "robot jetpack" desc = "A carbon dioxide jetpack suitable for low-gravity operations." icon_state = "cyborg_upgrade3" item_state = "cyborg_upgrade" @@ -151,7 +151,7 @@ if(!T) T = locate() in R.module.modules if(!T) - R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide + R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide(R.module) for(var/obj/item/weapon/tank/jetpack/carbondioxide in R.module.modules) R.internals = src return 1 @@ -176,7 +176,7 @@ if(!T) T = locate() in R.module.modules if(!T) - R.module.modules += new/obj/item/device/healthanalyzer/advanced + R.module.modules += new/obj/item/device/healthanalyzer/advanced(R.module) return 1 if(T) to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!") @@ -217,4 +217,4 @@ R.add_language(LANGUAGE_SCHECHI, 1) R.add_language(LANGUAGE_ROOTLOCAL, 1) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index ff680ab468..b2477ae9ff 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -61,8 +61,7 @@ var/global/list/datum/stack_recipe/rods_recipes = list( \ return if (istype(W, /obj/item/weapon/tape_roll)) - var/obj/item/stack/medical/splint/ghetto/new_splint = new(user.loc) - new_splint.loc = src.loc + var/obj/item/stack/medical/splint/ghetto/new_splint = new(get_turf(user)) new_splint.add_fingerprint(user) user.visible_message("\The [user] constructs \a [new_splint] out of a [singular_name].", \ diff --git a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm index 3d89b5e786..b3605c6b1f 100644 --- a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm +++ b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm @@ -8,13 +8,17 @@ name = "stack of wood" type_to_spawn = /obj/item/stack/tile/wood +/obj/fiftyspawner/wood/sif + name = "stack of alien wood" + type_to_spawn = /obj/item/stack/tile/sifwood + /obj/fiftyspawner/carpet name = "stack of carpet" type_to_spawn = /obj/item/stack/tile/carpet -/obj/fiftyspawner/bluecarpet - name = "stack of blue carpet" - type_to_spawn = /obj/item/stack/tile/carpet/blue +/obj/fiftyspawner/tealcarpet + name = "stack of teal carpet" + type_to_spawn = /obj/item/stack/tile/carpet/teal /obj/fiftyspawner/floor name = "stack of floor tiles" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index ddd6f98f16..f31a3a6edf 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -55,9 +55,24 @@ flags = 0 no_variants = FALSE +/obj/item/stack/tile/sifwood + name = "alien wood tile" + singular_name = "alien wood tile" + desc = "An easy to fit wooden floor tile. It's blue!" + icon_state = "tile-sifwood" + force = 1.0 + throwforce = 1.0 + throw_speed = 5 + throw_range = 20 + flags = 0 + no_variants = FALSE + /obj/item/stack/tile/wood/fifty amount = 50 +/obj/item/stack/tile/sifwood/fifty + amount = 50 + /obj/item/stack/tile/wood/cyborg name = "wood floor tile synthesizer" desc = "A device that makes wood floor tiles." @@ -81,11 +96,11 @@ flags = 0 no_variants = FALSE -/obj/item/stack/tile/carpet/blue - name = "blue carpet" - singular_name = "blue carpet" - desc = "A piece of blue carpet. It is the same size as a normal floor tile!" - icon_state = "tile-bluecarpet" +/obj/item/stack/tile/carpet/teal + name = "teal carpet" + singular_name = "teal carpet" + desc = "A piece of teal carpet. It is the same size as a normal floor tile!" + icon_state = "tile-tealcarpet" no_variants = FALSE /obj/item/stack/tile/carpet/bcarpet @@ -106,7 +121,7 @@ /obj/item/stack/tile/floor name = "floor tile" singular_name = "floor tile" - desc = "Those could work as a pretty decent throwing weapon" //why? + desc = "A metal tile fit for covering a section of floor." icon_state = "tile" force = 6.0 matter = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT / 4) diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 5588089cef..e917745e0e 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -5,92 +5,89 @@ origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1) var/banglet = 0 - prime() - ..() - for(var/obj/structure/closet/L in hear(7, get_turf(src))) - if(locate(/mob/living/carbon/, L)) - for(var/mob/living/carbon/M in L) - bang(get_turf(src), M) +/obj/item/weapon/grenade/flashbang/prime() + ..() + for(var/obj/structure/closet/L in hear(7, get_turf(src))) + if(locate(/mob/living/carbon/, L)) + for(var/mob/living/carbon/M in L) + bang(get_turf(src), M) + for(var/mob/living/carbon/M in hear(7, get_turf(src))) + bang(get_turf(src), M) - for(var/mob/living/carbon/M in hear(7, get_turf(src))) - bang(get_turf(src), M) + for(var/obj/structure/blob/B in hear(8,get_turf(src))) //Blob damage here + var/damage = round(30/(get_dist(B,get_turf(src))+1)) + if(B.overmind) + damage *= B.overmind.blob_type.burn_multiplier + B.adjust_integrity(-damage) - for(var/obj/structure/blob/B in hear(8,get_turf(src))) //Blob damage here - var/damage = round(30/(get_dist(B,get_turf(src))+1)) - if(B.overmind) - damage *= B.overmind.blob_type.burn_multiplier - B.adjust_integrity(-damage) + new/obj/effect/effect/sparks(src.loc) + new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF") + qdel(src) + return - new/obj/effect/effect/sparks(src.loc) - new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF") - qdel(src) - return - - proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. - M << "BANG" // Called during the loop that bangs people in lockers/containers and when banging - playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 30) // people in normal view. Could theroetically be called during other explosions. +/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. + to_chat(M, "BANG") // Called during the loop that bangs people in lockers/containers and when banging + playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 30) // people in normal view. Could theroetically be called during other explosions. // -- Polymorph -//Checking for protections - var/eye_safety = 0 - var/ear_safety = 0 - if(iscarbon(M)) - eye_safety = M.eyecheck() - ear_safety = M.get_ear_protection() + //Checking for protections + var/eye_safety = 0 + var/ear_safety = 0 + if(iscarbon(M)) + eye_safety = M.eyecheck() + ear_safety = M.get_ear_protection() -//Flashing everyone - if(eye_safety < 1) - M.flash_eyes() - M.Stun(2) - M.Weaken(10) + //Flashing everyone + if(eye_safety < 1) + M.flash_eyes() + M.Confuse(2) + M.Weaken(5) - - -//Now applying sound - if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M)) - if(ear_safety > 0) - M.Stun(2) - M.Weaken(1) - else - M.Stun(10) - M.Weaken(3) - if ((prob(14) || (M == src.loc && prob(70)))) - M.ear_damage += rand(1, 10) - else - M.ear_damage += rand(0, 5) - M.ear_deaf = max(M.ear_deaf,15) - - else if(get_dist(M, T) <= 5) - if(!ear_safety) - M.Stun(8) - M.ear_damage += rand(0, 3) - M.ear_deaf = max(M.ear_deaf,10) - - else if(!ear_safety) - M.Stun(4) - M.ear_damage += rand(0, 1) - M.ear_deaf = max(M.ear_deaf,5) - -//This really should be in mob not every check - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] - if (E && E.damage >= E.min_bruised_damage) - M << "Your eyes start to burn badly!" - if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) - if (E.damage >= E.min_broken_damage) - M << "You can't see anything!" - if (M.ear_damage >= 15) - M << "Your ears start to ring badly!" - if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) - if (prob(M.ear_damage - 10 + 5)) - M << "You can't hear anything!" - M.sdisabilities |= DEAF + //Now applying sound + if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M)) + if(ear_safety > 0) + M.Confuse(2) + M.Weaken(1) else - if (M.ear_damage >= 5) - M << "Your ears start to ring!" - M.update_icons() //Forces matrix transform to proc if they are now laying, I guess? + M.Confuse(10) + M.Weaken(3) + if ((prob(14) || (M == src.loc && prob(70)))) + M.ear_damage += rand(1, 10) + else + M.ear_damage += rand(0, 5) + M.ear_deaf = max(M.ear_deaf,15) + + else if(get_dist(M, T) <= 5) + if(!ear_safety) + M.Confuse(8) + M.ear_damage += rand(0, 3) + M.ear_deaf = max(M.ear_deaf,10) + + else if(!ear_safety) + M.Confuse(4) + M.ear_damage += rand(0, 1) + M.ear_deaf = max(M.ear_deaf,5) + + //This really should be in mob not every check + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] + if (E && E.damage >= E.min_bruised_damage) + M << "Your eyes start to burn badly!" + if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) + if (E.damage >= E.min_broken_damage) + M << "You can't see anything!" + if (M.ear_damage >= 15) + to_chat(M, "Your ears start to ring badly!") + if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) + if (prob(M.ear_damage - 10 + 5)) + to_chat(M, "You can't hear anything!") + M.sdisabilities |= DEAF + else if(M.ear_damage >= 5) + to_chat(M, "Your ears start to ring!") + + M.update_icons() //Forces matrix transform to proc if they are now laying, I guess? /obj/item/weapon/grenade/flashbang/Destroy() walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever. diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index a7f6565a2d..8985f85bac 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -14,3 +14,34 @@ var/datum/gender/T = gender_datums[user.get_visible_gender()] user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!")) return (OXYLOSS) + +/obj/item/weapon/melee/umbrella + name = "umbrella" + desc = "To keep the rain off you. Use with caution on windy days." + icon = 'icons/obj/items.dmi' + icon_state = "umbrella_closed" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 5 + w_class = ITEMSIZE_NORMAL + var/open = FALSE + +/obj/item/weapon/melee/umbrella/New() + ..() + color = "#"+get_random_colour() + update_icon() + +/obj/item/weapon/melee/umbrella/attack_self() + src.toggle_umbrella() + +/obj/item/weapon/melee/umbrella/proc/toggle_umbrella() + open = !open + icon_state = "umbrella_[open ? "open" : "closed"]" + item_state = icon_state + update_icon() + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + H.update_inv_l_hand(0) + H.update_inv_r_hand() + ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 165855e50e..5b20553430 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -68,6 +68,9 @@ // ----------------------------- // Mining Satchel // ----------------------------- +/* + * Mechoid - Orebags are the most common quick-gathering thing, and also have tons of lag associated with it. Their checks are going to be hyper-simplified due to this, and their INCREDIBLY singular target contents. + */ /obj/item/weapon/storage/bag/ore name = "mining satchel" @@ -79,7 +82,80 @@ max_storage_space = ITEMSIZE_COST_NORMAL * 25 max_w_class = ITEMSIZE_NORMAL can_hold = list(/obj/item/weapon/ore) + var/stored_ore = list() + var/last_update = 0 +/obj/item/weapon/storage/bag/ore/remove_from_storage(obj/item/W as obj, atom/new_location) + if(!istype(W)) return 0 + + if(new_location) + if(ismob(loc)) + W.dropped(usr) + if(ismob(new_location)) + W.hud_layerise() + else + W.reset_plane_and_layer() + W.forceMove(new_location) + else + W.forceMove(get_turf(src)) + + W.on_exit_storage(src) + update_icon() + return 1 + +/obj/item/weapon/storage/bag/ore/gather_all(turf/T as turf, mob/user as mob, var/silent = 0) + var/success = 0 + var/failure = 0 + for(var/obj/item/weapon/ore/I in T) //Only ever grabs ores. Doesn't do any extraneous checks, as all ore is the same size. Tons of checks means it causes hanging for up to three seconds. + if(contents.len >= max_storage_space) + failure = 1 + break + I.forceMove(src) + success = 1 + if(success && !failure && !silent) + to_chat(user, "You put everything in [src].") + else if(success && (!silent || (silent && contents.len >= max_storage_space))) + to_chat(user, "You fill the [src].") + else if(!silent) + to_chat(user, "You fail to pick anything up with \the [src].") + +/obj/item/weapon/storage/bag/ore/examine(mob/user) + ..() + + if(!Adjacent(user)) //Can only check the contents of ore bags if you can physically reach them. + return + + if(istype(user, /mob/living)) + add_fingerprint(user) + + if(!contents.len) + to_chat(user, "It is empty.") + return + + if(world.time > last_update + 10) + update_ore_count() + last_update = world.time + + to_chat(user, "It holds:") + for(var/ore in stored_ore) + to_chat(user, "- [stored_ore[ore]] [ore]") + return + +/obj/item/weapon/storage/bag/ore/open(mob/user as mob) //No opening it for the weird UI of having shit-tons of ore inside it. + if(world.time > last_update + 10) + update_ore_count() + last_update = world.time + examine(user) + +/obj/item/weapon/storage/bag/ore/proc/update_ore_count() //Stolen from ore boxes. + + stored_ore = list() + + for(var/obj/item/weapon/ore/O in contents) + if(stored_ore[O.name]) + stored_ore[O.name]++ + else + stored_ore[O.name] = 1 // ----------------------------- // Plant bag diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 62ae80937a..1c5b4b5406 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -132,7 +132,7 @@ /obj/item/weapon/surgical/FixOVein, /obj/item/stack/medical/advanced/bruise_pack, /obj/item/stack/nanopaste - ///obj/item/device/healthanalyzer/enhanced //VOREStation Removal + // /obj/item/device/healthanalyzer/advanced //VOREStation Removal ) starts_with = list( @@ -145,8 +145,8 @@ /obj/item/weapon/surgical/surgicaldrill, /obj/item/weapon/surgical/bonegel, /obj/item/weapon/surgical/FixOVein, - /obj/item/stack/medical/advanced/bruise_pack - ///obj/item/device/healthanalyzer/enhanced //VOREStation Removal + /obj/item/stack/medical/advanced/bruise_pack, + ///obj/item/device/healthanalyzer/advanced //VOREStation Removal ) /obj/item/weapon/storage/firstaid/clotting diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm index 5d0d1f3863..5406b05a26 100644 --- a/code/game/objects/items/weapons/syndie.dm +++ b/code/game/objects/items/weapons/syndie.dm @@ -13,20 +13,29 @@ desc = "A small wrapped package." w_class = ITEMSIZE_NORMAL - var/power = 1 /*Size of the explosion.*/ + var/devastate = 0 + var/heavy_impact = 1 + var/light_impact = 2 + var/flash_range = 5 var/size = "small" /*Used for the icon, this one will make c-4small_0 for the off state.*/ /obj/item/weapon/syndie/c4explosive/heavy icon_state = "c-4large_0" item_state = "radio" desc = "A mysterious package, it's quite heavy." - power = 2 + devastate = 1 + heavy_impact = 2 + light_impact = 5 + flash_range = 7 size = "large" /obj/item/weapon/syndie/c4explosive/heavy/super_heavy name = "large-sized package" desc = "A mysterious package, it's quite exceptionally heavy." - power = 3 + devastate = 2 + heavy_impact = 5 + light_impact = 7 + flash_range = 7 /obj/item/weapon/syndie/c4explosive/New() var/K = rand(1,2000) @@ -43,7 +52,7 @@ for(var/mob/O in hearers(src, null)) O.show_message("\icon[src] The [src.name] beeps! ") sleep(50) - explosion(get_turf(src), power, power*2, power*3, power*4, power*5) + explosion(get_turf(src), devastate, heavy_impact, light_impact, flash_range) for(var/dirn in cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors. var/turf/simulated/wall/T = get_step(src,dirn) if(locate(/obj/machinery/door/airlock) in T) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 84f9f88602..3833133f4a 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -14,6 +14,8 @@ var/show_messages var/preserve_item = 0 //whether this object is preserved when its owner goes into cryo-storage, gateway, etc + var/show_examine = TRUE // Does this pop up on a mob when the mob is examined? + /obj/Destroy() processing_objects -= src return ..() diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 903750cbcf..86923e21e6 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -912,6 +912,21 @@ something, make sure it's not in one of the other lists.*/ prob(25);/obj/item/device/radio/headset/headset_com/alt, prob(25);/obj/item/device/radio/headset) +/obj/random/coin + name = "random coin" + desc = "This is a coin spawn." + icon = 'icons/misc/mark.dmi' + icon_state = "rup" + +/obj/random/coin/item_to_spawn() + return pick(prob(5);/obj/item/weapon/coin/silver, + prob(3);/obj/item/weapon/coin/iron, + prob(4);/obj/item/weapon/coin/gold, + prob(3);/obj/item/weapon/coin/phoron, + prob(1);/obj/item/weapon/coin/uranium, + prob(2);/obj/item/weapon/coin/platinum, + prob(1);/obj/item/weapon/coin/diamond) + /obj/random/rigsuit name = "Random rigsuit" desc = "This is a random rigsuit." @@ -926,6 +941,20 @@ something, make sure it's not in one of the other lists.*/ prob(3);/obj/item/weapon/rig/hazard, prob(1);/obj/item/weapon/rig/merc/empty) +/obj/random/landmine + name = "Random Land Mine" + desc = "This is a random land mine." + icon = 'icons/obj/weapons.dmi' + icon_state = "uglymine" + spawn_nothing_percentage = 25 + +/obj/random/landmine/item_to_spawn() + return pick(prob(30);/obj/effect/mine, + prob(25);/obj/effect/mine/frag, + prob(25);/obj/effect/mine/emp, + prob(10);/obj/effect/mine/stun, + prob(10);/obj/effect/mine/incendiary,) + var/list/random_junk_ var/list/random_useful_ /proc/get_random_useful_type() @@ -1133,16 +1162,423 @@ var/list/multi_point_spawns ) ) -/obj/random/landmine - name = "Random Land Mine" - desc = "This is a random land mine." - icon = 'icons/obj/weapons.dmi' - icon_state = "uglymine" - spawn_nothing_percentage = 25 +/obj/random/multiple/minevault + name = "random vault loot" + desc = "Loot for mine vaults." + icon = 'icons/misc/mark.dmi' + icon_state = "rup" -/obj/random/landmine/item_to_spawn() - return pick(prob(30);/obj/effect/mine, - prob(25);/obj/effect/mine/frag, - prob(25);/obj/effect/mine/emp, - prob(10);/obj/effect/mine/stun, - prob(10);/obj/effect/mine/incendiary,) \ No newline at end of file +/obj/random/multiple/minevault/item_to_spawn() + return pick( + prob(5);list( + /obj/item/clothing/mask/smokable/pipe, + /obj/item/weapon/reagent_containers/food/drinks/bottle/rum, + /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus, + /obj/item/weapon/flame/lighter/zippo, + /obj/structure/closet/crate/hydroponics + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/suit/space/void/mining, + /obj/item/clothing/head/helmet/space/void/mining, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/suit/space/void/mining/alt, + /obj/item/clothing/head/helmet/space/void/mining/alt, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/item/weapon/reagent_containers/glass/beaker/bluespace, + /obj/structure/closet/crate/science + ), + prob(5);list( + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/diamond, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/item/weapon/ore/gold, + /obj/structure/closet/crate/engineering + ), + prob(5);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/clothing/glasses/material, + /obj/structure/ore_box, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/item/weapon/reagent_containers/glass/beaker/noreact, + /obj/structure/closet/crate/science + ), + prob(5);list( + /obj/item/weapon/storage/secure/briefcase/money, + /obj/structure/closet/crate/freezer/rations + ), + prob(5);list( + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/item/clothing/accessory/tie/horrible, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/baton, + /obj/structure/closet/crate + ), + prob(5);list( + /obj/item/clothing/under/shorts/red, + /obj/item/clothing/under/shorts/blue, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/melee/baton/cattleprod, + /obj/item/weapon/melee/baton/cattleprod, + /obj/item/weapon/cell/high, + /obj/item/weapon/cell/high, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/latexballon, + /obj/item/latexballon, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/toy/syndicateballoon, + /obj/item/toy/syndicateballoon, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/rig/industrial/equipped, + /obj/item/weapon/storage/bag/ore, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/random/coin, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/random/multiple/voidsuit, + /obj/random/multiple/voidsuit, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/clothing/suit/space/syndicate/black/red, + /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/clothing/suit/space/syndicate/black/red, + /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi/empty, + /obj/item/ammo_magazine/m45uzi/empty, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/item/clothing/suit/ianshirt, + /obj/item/clothing/suit/ianshirt, + /obj/item/weapon/bedsheet/ian, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest, + /obj/item/weapon/gun/projectile/garand, + /obj/item/weapon/gun/projectile/garand, + /obj/item/ammo_magazine/m762garand, + /obj/item/ammo_magazine/m762garand, + /obj/structure/closet/crate/plastic + ), + prob(2);list( + /obj/mecha/working/ripley/mining + ), + prob(2);list( + /obj/mecha/working/hoverpod/combatpod + ), + prob(2);list( + /obj/item/weapon/pickaxe/silver, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/drill, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/jackhammer, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/diamond, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/diamonddrill, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/gold, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/pickaxe/plasmacutter, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/glasses/material, + /obj/structure/closet/crate/engineering + ), + prob(2);list( + /obj/item/weapon/material/sword/katana, + /obj/item/weapon/material/sword/katana, + /obj/structure/closet/crate + ), + prob(2);list( + /obj/item/weapon/material/sword, + /obj/item/weapon/material/sword, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/clothing/mask/balaclava, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/item/weapon/material/star, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weed_extract, + /obj/item/xenos_claw, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/clothing/head/bearpelt, + /obj/item/clothing/under/soviet, + /obj/item/clothing/under/soviet, + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial, + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/ceremonial, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/gun/projectile/revolver/detective, + /obj/item/weapon/gun/projectile/contender, + /obj/item/weapon/gun/projectile/p92x, + /obj/item/weapon/gun/projectile/derringer, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/melee/cultblade, + /obj/item/clothing/suit/cultrobes, + /obj/item/clothing/head/culthood, + /obj/item/device/soulstone, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/vampiric, + /obj/item/weapon/vampiric, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/weapon/archaeological_find + ), + prob(1);list( + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/melee/energy/sword, + /obj/item/weapon/shield/energy, + /obj/item/weapon/shield/energy, + /obj/structure/closet/crate/science + ), + prob(1);list( + /obj/item/weapon/storage/backpack/clown, + /obj/item/clothing/under/rank/clown, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/device/pda/clown, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/weapon/bikehorn, + /obj/item/toy/waterflower, + /obj/item/weapon/pen/crayon/rainbow, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/clothing/under/mime, + /obj/item/clothing/shoes/black, + /obj/item/device/pda/mime, + /obj/item/clothing/gloves/white, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/head/beret, + /obj/item/clothing/suit/suspenders, + /obj/item/weapon/pen/crayon/mime, + /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, + /obj/structure/closet/crate + ), + prob(1);list( + /obj/item/weapon/storage/belt/champion, + /obj/item/clothing/mask/luchador, + /obj/item/clothing/mask/luchador/rudos, + /obj/item/clothing/mask/luchador/tecnicos, + /obj/structure/closet/crate + ) + ) + +/* + * Random Mobs + */ + +/obj/random/mob + name = "Random Animal" + desc = "This is a random animal." + icon = 'icons/mob/animal.dmi' + icon_state = "chicken_white" + +/obj/random/mob/item_to_spawn() + return pick(prob(10);/mob/living/simple_animal/lizard, + prob(6);/mob/living/simple_animal/retaliate/diyaab, + prob(10);/mob/living/simple_animal/cat/fluff, + prob(6);/mob/living/simple_animal/cat/kitten, + prob(10);/mob/living/simple_animal/corgi, + prob(6);/mob/living/simple_animal/corgi/puppy, + prob(10);/mob/living/simple_animal/crab, + prob(10);/mob/living/simple_animal/chicken, + prob(6);/mob/living/simple_animal/chick, + prob(10);/mob/living/simple_animal/cow, + prob(6);/mob/living/simple_animal/retaliate/goat, + prob(10);/mob/living/simple_animal/penguin, + prob(10);/mob/living/simple_animal/mouse, + prob(10);/mob/living/simple_animal/yithian, + prob(10);/mob/living/simple_animal/tindalos, + prob(10);/mob/living/simple_animal/corgi/tamaskan, + prob(3);/mob/living/simple_animal/parrot, + prob(1);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif + name = "Random Sif Animal" + desc = "This is a random cold weather animal." + icon_state = "penguin" + +/obj/random/mob/sif/item_to_spawn() + return pick(prob(30);/mob/living/simple_animal/retaliate/diyaab, + prob(15);/mob/living/simple_animal/crab, + prob(15);/mob/living/simple_animal/penguin, + prob(15);/mob/living/simple_animal/mouse, + prob(15);/mob/living/simple_animal/corgi/tamaskan, + prob(2);/mob/living/simple_animal/hostile/giant_spider/frost, + prob(1);/mob/living/simple_animal/hostile/goose, + prob(20);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif/hostile + name = "Random Hostile Sif Animal" + desc = "This is a random hostile cold weather animal." + icon_state = "frost" + +/obj/random/mob/sif/hostile/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/savik, + prob(33);/mob/living/simple_animal/hostile/giant_spider/frost, + prob(45);/mob/living/simple_animal/hostile/shantak) + +/obj/random/mob/spider + name = "Random Spider" + desc = "This is a random boring spider." + icon_state = "guard" + +/obj/random/mob/spider/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/giant_spider/nurse, + prob(33);/mob/living/simple_animal/hostile/giant_spider/hunter, + prob(45);/mob/living/simple_animal/hostile/giant_spider) + +/obj/random/mob/spider/mutant + name = "Random Mutant Spider" + desc = "This is a random mutated spider." + icon_state = "phoron" + +/obj/random/mob/spider/mutant/item_to_spawn() + return pick(prob(1);/obj/random/mob/spider, + prob(5);/mob/living/simple_animal/hostile/giant_spider/nurse/medical, + prob(10);/mob/living/simple_animal/hostile/giant_spider/webslinger, + prob(10);/mob/living/simple_animal/hostile/giant_spider/carrier, + prob(33);/mob/living/simple_animal/hostile/giant_spider/lurker, + prob(33);/mob/living/simple_animal/hostile/giant_spider/tunneler, + prob(40);/mob/living/simple_animal/hostile/giant_spider/pepper, + prob(20);/mob/living/simple_animal/hostile/giant_spider/thermic, + prob(40);/mob/living/simple_animal/hostile/giant_spider/electric, + prob(1);/mob/living/simple_animal/hostile/giant_spider/phorogenic, + prob(40);/mob/living/simple_animal/hostile/giant_spider/frost) + +/obj/random/mob/robotic + name = "Random Robot Mob" + desc = "This is a random robot." + icon_state = "drone_dead" + +/obj/random/mob/robotic/item_to_spawn() //Hivebots have a total number of 'lots' equal to the lesser drone, at 60. + return pick(prob(60);/mob/living/simple_animal/hostile/malf_drone/lesser, + prob(50);/mob/living/simple_animal/hostile/malf_drone, + prob(15);/mob/living/simple_animal/hostile/mecha/malf_drone, + prob(10);/mob/living/simple_animal/hostile/hivebot, + prob(15);/mob/living/simple_animal/hostile/hivebot/swarm, + prob(10);/mob/living/simple_animal/hostile/hivebot/range, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/rapid, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/ion, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/laser, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/strong, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/guard) + +/obj/random/mob/robotic/hivebot + name = "Random Hivebot" + desc = "This is a random hivebot." + icon_state = "drone3" + +/obj/random/mob/robotic/hivebot/item_to_spawn() + return pick(prob(10);/mob/living/simple_animal/hostile/hivebot, + prob(15);/mob/living/simple_animal/hostile/hivebot/swarm, + prob(10);/mob/living/simple_animal/hostile/hivebot/range, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/rapid, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/ion, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/laser, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/strong, + prob(5);/mob/living/simple_animal/hostile/hivebot/range/guard) diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm index 1952ddea4f..390ddc88a3 100644 --- a/code/game/objects/structures/bonfire.dm +++ b/code/game/objects/structures/bonfire.dm @@ -10,6 +10,8 @@ var/next_fuel_consumption = 0 // world.time of when next item in fuel list gets eatten to sustain the fire. var/grill = FALSE var/material/material + var/set_temperature = T0C + 30 //K + var/heating_power = 80000 /obj/structure/bonfire/New(newloc, material_name) ..(newloc) @@ -186,9 +188,9 @@ if(burning) var/state switch(get_fuel_amount()) - if(0 to 4) + if(0 to 4.5) state = "bonfire_warm" - if(5 to 10) + if(4.6 to 10) state = "bonfire_hot" var/image/I = image(icon, state) I.appearance_flags = RESET_COLOR @@ -223,6 +225,23 @@ if(!grill) burn() + if(burning) + var/W = get_fuel_amount() + if(W >= 5) + var/datum/gas_mixture/env = loc.return_air() + if(env && abs(env.temperature - set_temperature) > 0.1) + var/transfer_moles = 0.25 * env.total_moles + var/datum/gas_mixture/removed = env.remove(transfer_moles) + + if(removed) + var/heat_transfer = removed.get_thermal_energy_change(set_temperature) + if(heat_transfer > 0) + heat_transfer = min(heat_transfer , heating_power) + + removed.add_thermal_energy(heat_transfer) + + env.merge(removed) + /obj/structure/bonfire/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) ignite() @@ -235,4 +254,163 @@ M.pixel_y += 13 else // Just unbuckled someone M.pixel_y -= 13 - update_icon() \ No newline at end of file + update_icon() + +/obj/structure/fireplace //more like a space heater than a bonfire. A cozier alternative to both. + name = "fireplace" + desc = "The sound of the crackling hearth reminds you of home." + icon = 'icons/obj/structures.dmi' + icon_state = "fireplace" + density = TRUE + anchored = TRUE + var/burning = FALSE + var/next_fuel_consumption = 0 + var/set_temperature = T0C + 20 //K + var/heating_power = 40000 + +/obj/structure/fireplace/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/stack/material/wood) || istype(W, /obj/item/stack/material/log) ) + add_fuel(W, user) + + else if(W.is_hot()) + ignite() + else + return ..() + +/obj/structure/fireplace/attack_hand(mob/user) + if(get_fuel_amount()) + remove_fuel(user) + +/obj/structure/fireplace/proc/get_fuel_amount() + var/F = 0 + for(var/A in contents) + if(istype(A, /obj/item/stack/material/wood)) + F += 0.5 + if(istype(A, /obj/item/stack/material/log)) + F += 1.0 + return F + +/obj/structure/fireplace/proc/remove_fuel(mob/user) + if(get_fuel_amount()) + var/atom/movable/AM = pop(contents) + AM.forceMove(get_turf(src)) + to_chat(user, "You take \the [AM] out of \the [src] before it has a chance to burn away.") + update_icon() + +/obj/structure/fireplace/proc/add_fuel(atom/movable/new_fuel, mob/user) + if(get_fuel_amount() >= 10) + to_chat(user, "\The [src] already has enough fuel!") + return FALSE + if(istype(new_fuel, /obj/item/stack/material/wood) || istype(new_fuel, /obj/item/stack/material/log) ) + var/obj/item/stack/F = new_fuel + var/obj/item/stack/S = F.split(1) + if(S) + S.forceMove(src) + to_chat(user, "You add \the [new_fuel] to \the [src].") + update_icon() + return TRUE + return FALSE + else + to_chat(user, "\The [src] needs raw wood to burn, \a [new_fuel] won't work.") + return FALSE + +/obj/structure/fireplace/proc/consume_fuel(var/obj/item/stack/consumed_fuel) + if(!istype(consumed_fuel)) + qdel(consumed_fuel) // Don't know, don't care. + return FALSE + + if(istype(consumed_fuel, /obj/item/stack/material/log)) + next_fuel_consumption = world.time + 2 MINUTES + qdel(consumed_fuel) + update_icon() + return TRUE + + else if(istype(consumed_fuel, /obj/item/stack/material/wood)) // One log makes two planks of wood. + next_fuel_consumption = world.time + 1 MINUTE + qdel(consumed_fuel) + update_icon() + return TRUE + return FALSE + +/obj/structure/fireplace/proc/check_oxygen() + var/datum/gas_mixture/G = loc.return_air() + if(G.gas["oxygen"] < 1) + return FALSE + return TRUE + +/obj/structure/fireplace/proc/extinguish() + if(burning) + burning = FALSE + update_icon() + processing_objects -= src + visible_message("\The [src] stops burning.") + +/obj/structure/fireplace/proc/ignite() + if(!burning && get_fuel_amount()) + burning = TRUE + update_icon() + processing_objects += src + visible_message("\The [src] starts burning!") + +/obj/structure/fireplace/proc/burn() + var/turf/current_location = get_turf(src) + current_location.hotspot_expose(1000, 500) + for(var/A in current_location) + if(A == src) + continue + if(isobj(A)) + var/obj/O = A + O.fire_act(null, 1000, 500) + +/obj/structure/fireplace/update_icon() + overlays.Cut() + if(burning) + var/state + switch(get_fuel_amount()) + if(0 to 3.5) + state = "fireplace_warm" + if(3.6 to 6.5) + state = "fireplace_hot" + if(6.6 to 10) + state = "fireplace_intense" //don't need to throw a corpse inside to make it burn hotter. + var/image/I = image(icon, state) + I.appearance_flags = RESET_COLOR + overlays += I + + var/light_strength = max(get_fuel_amount() / 2, 2) + set_light(light_strength, light_strength, "#FF9933") + else + set_light(0) + +/obj/structure/fireplace/process() + if(!check_oxygen()) + extinguish() + return + if(world.time >= next_fuel_consumption) + if(!consume_fuel(pop(contents))) + extinguish() + return + + if(burning) + var/W = get_fuel_amount() + if(W >= 5) + var/datum/gas_mixture/env = loc.return_air() + if(env && abs(env.temperature - set_temperature) > 0.1) + var/transfer_moles = 0.25 * env.total_moles + var/datum/gas_mixture/removed = env.remove(transfer_moles) + + if(removed) + var/heat_transfer = removed.get_thermal_energy_change(set_temperature) + if(heat_transfer > 0) + heat_transfer = min(heat_transfer , heating_power) + + removed.add_thermal_energy(heat_transfer) + + env.merge(removed) + +/obj/structure/fireplace/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ignite() + +/obj/structure/fireplace/water_act(amount) + if(prob(amount * 10)) + extinguish() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index de7f85c91e..103867ef88 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -85,7 +85,7 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel/eng(src) - new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/device/radio/headset/headset_mine(src) new /obj/item/clothing/under/rank/miner(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/shoes/black(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index dd47186ca1..564b12d22f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -103,12 +103,13 @@ if(prob(50)) new /obj/item/weapon/storage/backpack/dufflebag/sec(src) new /obj/item/clothing/head/helmet/HoS(src) + new /obj/item/clothing/head/helmet/HoS/hat(src) new /obj/item/clothing/suit/storage/vest/hos(src) new /obj/item/clothing/under/rank/head_of_security/jensen(src) new /obj/item/clothing/under/rank/head_of_security/corp(src) new /obj/item/clothing/suit/storage/vest/hoscoat/jensen(src) new /obj/item/clothing/suit/storage/vest/hoscoat(src) - new /obj/item/clothing/head/helmet/HoS/dermal(src) + new /obj/item/clothing/head/helmet/dermal(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/device/radio/headset/heads/hos/alt(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) @@ -182,7 +183,9 @@ new /obj/item/clothing/under/rank/warden/corp(src) new /obj/item/clothing/suit/storage/vest/wardencoat(src) new /obj/item/clothing/suit/storage/vest/wardencoat/alt(src) + new /obj/item/clothing/head/helmet/dermal(src) new /obj/item/clothing/head/helmet/warden(src) + new /obj/item/clothing/head/helmet/warden/hat(src) new /obj/item/weapon/cartridge/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/device/radio/headset/headset_sec/alt(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm index 3618d89b25..3c79685f10 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm @@ -82,7 +82,7 @@ new /obj/item/clothing/under/rank/head_of_security/jensen(src) new /obj/item/clothing/suit/storage/vest/hoscoat/jensen(src) new /obj/item/clothing/suit/storage/vest/hoscoat(src) - new /obj/item/clothing/head/helmet/HoS/dermal(src) + new /obj/item/clothing/head/helmet/dermal(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/device/radio/headset/heads/hos/alt(src) diff --git a/code/game/objects/structures/flora/trees.dm b/code/game/objects/structures/flora/trees.dm index 0c50bf189d..ef58518e48 100644 --- a/code/game/objects/structures/flora/trees.dm +++ b/code/game/objects/structures/flora/trees.dm @@ -18,6 +18,10 @@ return ..() if(is_stump) + if(istype(W,/obj/item/weapon/shovel)) + if(do_after(user, 5 SECONDS)) + visible_message("\The [user] digs up \the [src] stump with \the [W].") + qdel(src) return visible_message("\The [user] hits \the [src] with \the [W]!") diff --git a/code/game/objects/structures/ghost_pods/ghost_pods.dm b/code/game/objects/structures/ghost_pods/ghost_pods.dm index 02c5f304f3..03cc4bec3f 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods.dm @@ -7,6 +7,7 @@ var/icon_state_opened = null // Icon to switch to when 'used'. var/used = FALSE var/busy = FALSE // Don't spam ghosts by spamclicking. + var/needscharger //For drone pods that want their pod to turn into a charger. // Call this to get a ghost volunteer. /obj/structure/ghost_pod/proc/trigger() @@ -22,8 +23,10 @@ if(winner.len) var/mob/observer/dead/D = winner[1] create_occupant(D) - new /obj/machinery/recharge_station/ghost_pod_recharger(src.loc) - del(src) + icon_state = icon_state_opened + if(needscharger) + new /obj/machinery/recharge_station/ghost_pod_recharger(src.loc) + del(src) return TRUE else return FALSE diff --git a/code/game/objects/structures/ghost_pods/silicon.dm b/code/game/objects/structures/ghost_pods/silicon.dm index a204437bc3..4e954afd4e 100644 --- a/code/game/objects/structures/ghost_pods/silicon.dm +++ b/code/game/objects/structures/ghost_pods/silicon.dm @@ -10,6 +10,7 @@ density = TRUE ghost_query_type = /datum/ghost_query/lost_drone confirm_before_open = TRUE + needscharger = TRUE /obj/structure/ghost_pod/manual/lost_drone/trigger() ..() @@ -45,6 +46,7 @@ icon_state_opened = "borg_pod_opened" density = TRUE ghost_query_type = /datum/ghost_query/gravekeeper_drone + needscharger = TRUE /obj/structure/ghost_pod/automatic/gravekeeper_drone/create_occupant(var/mob/M) density = FALSE @@ -58,4 +60,30 @@ R.ckey = M.ckey visible_message("As \the [src] opens, the eyes of the robot flicker as it is activated.") R.Namepick() + ..() + +/obj/structure/ghost_pod/manual/corgi + name = "glowing rune" + desc = "This rune slowly lights up and goes dim in a repeating pattern, like a slow heartbeat. It's almost as if it's calling out to you to touch it..." + description_info = "This will summon some manner of creature through quite dubious means. The creature will be controlled by a player." + icon_state = "corgirune" + icon_state_opened = "corgirune-inert" + density = TRUE + ghost_query_type = /datum/ghost_query/corgi_rune + confirm_before_open = TRUE + +/obj/structure/ghost_pod/manual/corgi/trigger() + ..() + visible_message("\The [usr] places their hand on the rune!") + log_and_message_admins("is attempting to summon a corgi.") + +/obj/structure/ghost_pod/manual/corgi/create_occupant(var/mob/M) + density = FALSE + var/mob/living/simple_animal/corgi/R = new(get_turf(src)) + if(M.mind) + M.mind.transfer_to(R) + to_chat(M, "You are a Corgi! Woof!") + R.ckey = M.ckey + visible_message("With a bright flash of light, \the [src] disappears, and in its place stands a small corgi.") + log_and_message_admins("successfully touched \a [src] and summoned a corgi.") ..() \ No newline at end of file diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 2c05a9f909..9c8df70d21 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -294,6 +294,21 @@ if(is_fulltile()) mats.amount = 4 qdel(src) + else if(iscoil(W) && reinf && state == 0 && !istype(src, /obj/structure/window/reinforced/polarized)) + var/obj/item/stack/cable_coil/C = W + if (C.use(1)) + playsound(src.loc, 'sound/effects/sparks1.ogg', 75, 1) + user.visible_message( \ + "\The [user] begins to wire \the [src] for electrochromic tinting.", \ + "You begin to wire \the [src] for electrochromic tinting.", \ + "You hear sparks.") + if(do_after(user, 20 * C.toolspeed, src) && state == 0) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + var/obj/structure/window/reinforced/polarized/P = new(loc, dir) + P.health = health + P.state = state + P.anchored = anchored + qdel(src) else if(istype(W,/obj/item/frame) && anchored) var/obj/item/frame/F = W F.try_build(src) @@ -551,6 +566,28 @@ desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it." var/id +/obj/structure/window/reinforced/polarized/full + dir = SOUTHWEST + icon_state = "fwindow" + maxhealth = 80 + +/obj/structure/window/reinforced/polarized/attackby(obj/item/W as obj, mob/user as mob) + if(ismultitool(W) && !anchored) // Only allow programming if unanchored! + var/obj/item/device/multitool/MT = W + // First check if they have a windowtint button buffered + if(istype(MT.connectable, /obj/machinery/button/windowtint)) + var/obj/machinery/button/windowtint/buffered_button = MT.connectable + src.id = buffered_button.id + to_chat(user, "\The [src] is linked to \the [buffered_button].") + return TRUE + // Otherwise fall back to asking them + var/t = sanitizeSafe(input(user, "Enter the ID for the window.", src.name, null), MAX_NAME_LEN) + if (!t && user.get_active_hand() != W && in_range(src, user)) + src.id = t + to_chat(user, "The new ID of \the [src] is [id]") + return TRUE + . = ..() + /obj/structure/window/reinforced/polarized/proc/toggle() if(opacity) animate(src, color="#FFFFFF", time=5) @@ -593,3 +630,20 @@ /obj/machinery/button/windowtint/update_icon() icon_state = "light[active]" + +/obj/machinery/button/windowtint/attackby(obj/item/W as obj, mob/user as mob) + if(ismultitool(W)) + var/obj/item/device/multitool/MT = W + if(!id) + // If no ID is set yet (newly built button?) let them select an ID for first-time use! + var/t = sanitizeSafe(input(user, "Enter an ID for \the [src].", src.name, null), MAX_NAME_LEN) + if (t && user.get_active_hand() != W && in_range(src, user)) + src.id = t + to_chat(user, "The new ID of \the [src] is [id]") + if(id) + // It already has an ID (or they just set one), buffer it for copying to windows. + to_chat(user, "You store \the [src] in \the [MT]'s buffer!") + MT.connectable = src + MT.update_icon() + return TRUE + . = ..() diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 195ac7fb10..22e818a486 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -133,6 +133,11 @@ var/list/flooring_types icon_base = "oracarpet" build_type = /obj/item/stack/tile/carpet/oracarpet +/decl/flooring/carpet/tealcarpet + name = "teal carpet" + icon_base = "tealcarpet" + build_type = /obj/item/stack/tile/carpet/teal + /decl/flooring/tiling name = "floor" desc = "Scuffed from the passage of countless greyshirts." @@ -275,6 +280,23 @@ var/list/flooring_types 'sound/effects/footstep/wood4.ogg', 'sound/effects/footstep/wood5.ogg')) +/decl/flooring/sifwood + name = "alien wooden floor" + desc = "Polished alien wood planks." + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "sifwood" + has_damage_range = 6 + damage_temperature = T0C+200 + descriptor = "planks" + build_type = /obj/item/stack/tile/sifwood + flags = TURF_CAN_BREAK | TURF_IS_FRAGILE | TURF_REMOVE_SCREWDRIVER + footstep_sounds = list("human" = list( + 'sound/effects/footstep/wood1.ogg', + 'sound/effects/footstep/wood2.ogg', + 'sound/effects/footstep/wood3.ogg', + 'sound/effects/footstep/wood4.ogg', + 'sound/effects/footstep/wood5.ogg')) + /decl/flooring/reinforced name = "reinforced floor" desc = "Heavily reinforced with steel rods." diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 127b3fc71c..abb5d7a1ba 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -14,6 +14,11 @@ icon_state = "blucarpet" initial_flooring = /decl/flooring/carpet/blucarpet +/turf/simulated/floor/carpet/tealcarpet + name = "teal carpet" + icon_state = "tealcarpet" + initial_flooring = /decl/flooring/carpet/tealcarpet + // Legacy support for existing paths for blue carpet /turf/simulated/floor/carpet/blue name = "blue carpet" @@ -63,6 +68,12 @@ icon_state = "wood" initial_flooring = /decl/flooring/wood +/turf/simulated/floor/sifwood + name = "alien wooden floor" + icon = 'icons/turf/flooring/wood.dmi' + icon_state = "sifwood" + initial_flooring = /decl/flooring/sifwood + /turf/simulated/floor/grass name = "grass patch" icon = 'icons/turf/flooring/grass.dmi' diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 52a5b3504e..d7bd7e028f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1228,7 +1228,7 @@ if(ismob(M)) var/take_msg = "ADMINHELP: [key_name(usr.client)] is attending to [key_name(M)]'s adminhelp, please don't dogpile them." for(var/client/X in admins) - if((R_ADMIN|R_MOD|R_EVENT) & X.holder.rights) + if((R_ADMIN|R_MOD|R_EVENT|R_SERVER) & X.holder.rights) to_chat(X, take_msg) to_chat(M, "Your adminhelp is being attended to by [usr.client]. Thanks for your patience!") // VoreStation Edit Start diff --git a/code/modules/blob2/mobs/spore.dm b/code/modules/blob2/mobs/spore.dm index 3e68344c8b..e23b96d8aa 100644 --- a/code/modules/blob2/mobs/spore.dm +++ b/code/modules/blob2/mobs/spore.dm @@ -12,7 +12,7 @@ melee_damage_lower = 2 melee_damage_upper = 4 layer = MOB_LAYER + 0.2 // Over the blob. - attacktext = "slams into" + attacktext = list("slams into") attack_sound = 'sound/effects/slime_squish.ogg' emote_see = list("sways", "inflates briefly") var/mob/living/carbon/human/infested = null // The human this thing is totally not making into a zombie. @@ -97,7 +97,7 @@ melee_damage_lower += 8 // 10 total. melee_damage_upper += 11 // 15 total. emote_see = list("shambles around", "twitches", "stares") - attacktext = "claws" + attacktext = list("claws") H.forceMove(src) infested = H diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index 58de134f7f..b0068c6190 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -1,12 +1,17 @@ /obj/item/clothing/proc/can_attach_accessory(obj/item/clothing/accessory/A) if(valid_accessory_slots && istype(A) && (A.slot in valid_accessory_slots)) - .=1 - else - return 0 + if(accessories.len && restricted_accessory_slots && (A.slot in restricted_accessory_slots)) + for(var/obj/item/clothing/accessory/AC in accessories) + if (AC.slot == A.slot) + return 0 + return 1 + return 0 + if(accessories.len && restricted_accessory_slots && (A.slot in restricted_accessory_slots)) for(var/obj/item/clothing/accessory/AC in accessories) if (AC.slot == A.slot) return 0 + return 1 /obj/item/clothing/attackby(var/obj/item/I, var/mob/user) if(istype(I, /obj/item/clothing/accessory)) @@ -22,7 +27,7 @@ return else user << "You cannot attach more accessories of this type to [src]." - return + return if(accessories.len) for(var/obj/item/clothing/accessory/A in accessories) @@ -37,6 +42,10 @@ for(var/obj/item/clothing/accessory/A in accessories) A.attack_hand(user) return + if (ishuman(user) && src.loc == user) + var/mob/living/carbon/human/H = user + if(src != H.l_store && src != H.r_store && src != H.s_store) + return return ..() /obj/item/clothing/MouseDrop(var/obj/over_object) @@ -70,10 +79,16 @@ * user is the user doing the attaching. Can be null, such as when attaching * items on spawn */ +/obj/item/clothing/proc/update_accessory_slowdown() + slowdown = initial(slowdown) + for(var/obj/item/clothing/accessory/A in accessories) + slowdown += A.slowdown + /obj/item/clothing/proc/attach_accessory(mob/user, obj/item/clothing/accessory/A) accessories += A A.on_attached(src, user) src.verbs |= /obj/item/clothing/proc/removetie_verb + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/remove_accessory(mob/user, obj/item/clothing/accessory/A) @@ -82,6 +97,7 @@ A.on_removed(user) accessories -= A + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/removetie_verb() diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 84f364e4d5..d258cb5b63 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -28,7 +28,7 @@ icon_state = "arm_guards_bullet" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.7 - armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/riot name = "riot arm guards" @@ -36,7 +36,7 @@ icon_state = "arm_guards_riot" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.5 - armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/combat name = "combat arm guards" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8527e8b501..3a2a4f7328 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,6 +2,8 @@ name = "helmet" desc = "Standard Security gear. Protects the head from impacts." icon_state = "helmet" + valid_accessory_slots = list(ACCESSORY_SLOT_HELM_C) + restricted_accessory_slots = list(ACCESSORY_SLOT_HELM_C) flags = THICKMATERIAL armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -18,6 +20,7 @@ desc = "A helmet painted in Peacekeeper blue. Stands out like a sore thumb." icon_state = "helmet_sol" armor = list(melee = 50, bullet = 50, laser = 50,energy = 25, bomb = 30, bio = 0, rad = 0) + valid_accessory_slots = null /obj/item/clothing/head/helmet/solgov/command name = "command helmet" @@ -61,6 +64,7 @@ armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null action_button_name = "Toggle Visor" /obj/item/clothing/head/helmet/riot/attack_self(mob/user as mob) @@ -80,6 +84,7 @@ armor = list(melee = 10, bullet = 10, laser = 80 ,energy = 50, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/bulletproof name = "bullet-resistant helmet" @@ -89,6 +94,7 @@ armor = list(melee = 10, bullet = 80, laser = 10 ,energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/combat name = "combat helmet" @@ -98,6 +104,7 @@ armor = list(melee = 50, bullet = 50, laser = 50 ,energy = 30, bomb = 30, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.6 + valid_accessory_slots = null /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" @@ -115,6 +122,7 @@ icon_state = "alienhelmet" siemens_coefficient = 0.4 armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 40) + valid_accessory_slots = null /obj/item/clothing/head/helmet/alien/tank name = "alien warhelm" @@ -137,6 +145,7 @@ flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/tactical name = "tactical helmet" @@ -151,6 +160,7 @@ armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/augment name = "Augment Array" @@ -162,6 +172,7 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.5 + valid_accessory_slots = null //Non-hardsuit ERT helmets. /obj/item/clothing/head/helmet/ert @@ -170,6 +181,7 @@ icon_state = "erthelmet_cmd" item_state_slots = list(slot_r_hand_str = "syndicate-helm-green", slot_l_hand_str = "syndicate-helm-green") armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) + valid_accessory_slots = null //Commander /obj/item/clothing/head/helmet/ert/command diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index bb8f29e892..2396ccd432 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -103,23 +103,33 @@ icon_state = "beret_corporate_warden" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") -/obj/item/clothing/head/helmet/warden //should these be helmets? +/obj/item/clothing/head/helmet/warden + name = "warden's helmet" + desc = "Standard Warden gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/warden/hat name = "warden's hat" - desc = "It's a special helmet issued to the Warden of a securiy force." + desc = "It's a special hat issued to the Warden of a securiy force." icon_state = "policehelm" - body_parts_covered = 0 + valid_accessory_slots = null /obj/item/clothing/head/helmet/HoS + name = "Head of Security helmet" + desc = "Standard Head of Security gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/HoS/hat name = "Head of Security Hat" desc = "The hat of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" - body_parts_covered = 0 + valid_accessory_slots = null -/obj/item/clothing/head/helmet/HoS/dermal +/obj/item/clothing/head/helmet/dermal name = "Dermal Armour Patch" desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head." icon_state = "dermal" item_state_slots = list(slot_r_hand_str = "", slot_l_hand_str = "") + valid_accessory_slots = null + show_examine = FALSE /obj/item/clothing/head/det name = "fedora" @@ -128,14 +138,14 @@ allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen) armor = list(melee = 10, bullet = 10, laser = 15, energy = 10, bomb = 0, bio = 0, rad = 0) siemens_coefficient = 0.9 - body_parts_covered = 0 + valid_accessory_slots = null + show_examine = FALSE /obj/item/clothing/head/det/grey icon_state = "detective2" item_state_slots = list(slot_r_hand_str = "detective", slot_l_hand_str = "detective") desc = "A grey fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it." - /obj/item/clothing/head/beret/engineering name = "engineering beret" desc = "A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety." diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 22fac63736..4441b213ff 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -74,7 +74,6 @@ icon_state = "explorer" item_state_slots = list(slot_r_hand_str = "gas", slot_l_hand_str = "gas") armor = list(melee = 10, bullet = 5, laser = 5,energy = 5, bomb = 0, bio = 50, rad = 0) - body_parts_covered = HEAD|FACE|EYES siemens_coefficient = 0.9 /obj/item/clothing/mask/gas/clown_hat diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 8eb3ad56c9..fdf5a92868 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -18,6 +18,7 @@ preserve_item = 1 phoronproof = 1 flash_protection = FLASH_PROTECTION_MAJOR + valid_accessory_slots = null var/obj/machinery/camera/camera var/list/camera_networks diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 94f49a2b1a..fcb3040f81 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -498,28 +498,28 @@ blood_overlay_type = "armor" /obj/item/clothing/suit/armor/pcarrier/light - starting_accessories = list(/obj/item/clothing/accessory/armorplate) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate) /obj/item/clothing/suit/armor/pcarrier/light/sol - starting_accessories = list(/obj/item/clothing/accessory/armorplate, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/light/nt - starting_accessories = list(/obj/item/clothing/accessory/armorplate, /obj/item/clothing/accessory/armor/tag/nt) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate, /obj/item/clothing/accessory/armor/tag/nt) /obj/item/clothing/suit/armor/pcarrier/medium - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches) /obj/item/clothing/suit/armor/pcarrier/medium/sol - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/medium/security - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/sec) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/sec) /obj/item/clothing/suit/armor/pcarrier/medium/command - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/com) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/com) /obj/item/clothing/suit/armor/pcarrier/medium/nt - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/nt) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches, /obj/item/clothing/accessory/armor/tag/nt) /obj/item/clothing/suit/armor/pcarrier/blue name = "blue plate carrier" @@ -529,7 +529,7 @@ /obj/item/clothing/suit/armor/pcarrier/blue/sol name = "peacekeeper plate carrier" desc = "A lightweight plate carrier vest in SCG Peacekeeper colors. It can be equipped with armor plates, but provides no protection of its own." - starting_accessories = list(/obj/item/clothing/accessory/armorplate/medium, /obj/item/clothing/accessory/storage/pouches/blue, /obj/item/clothing/accessory/armguards/blue, /obj/item/clothing/accessory/armor/tag) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/medium, /obj/item/clothing/accessory/storage/pouches/blue, /obj/item/clothing/accessory/armor/armguards/blue, /obj/item/clothing/accessory/armor/tag) /obj/item/clothing/suit/armor/pcarrier/green name = "green plate carrier" @@ -548,8 +548,8 @@ /obj/item/clothing/suit/armor/pcarrier/tan/tactical name = "tactical plate carrier" - starting_accessories = list(/obj/item/clothing/accessory/armorplate/tactical, /obj/item/clothing/accessory/storage/pouches/large/tan) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/tactical, /obj/item/clothing/accessory/storage/pouches/large/tan) /obj/item/clothing/suit/armor/pcarrier/merc - starting_accessories = list(/obj/item/clothing/accessory/armorplate/merc, /obj/item/clothing/accessory/armguards/merc, /obj/item/clothing/accessory/legguards/merc, /obj/item/clothing/accessory/storage/pouches/large) + starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/merc, /obj/item/clothing/accessory/armor/armguards/merc, /obj/item/clothing/accessory/armor/legguards/merc, /obj/item/clothing/accessory/storage/pouches/large) diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index f17c5e7ad2..df9e3b7c17 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -1,11 +1,25 @@ +/* +// This file holds all of the accessories used as part of the modular armor system. At some point it might be wise to split this into multiple files. +*/ + +/obj/item/clothing/accessory/armor + name = "armor accessory" + desc = "You should never see this description. Ahelp this, please." + icon_override = 'icons/mob/modular_armor.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "pouches" + w_class = ITEMSIZE_NORMAL + +/////////// //Pouches +/////////// /obj/item/clothing/accessory/storage/pouches name = "storage pouches" desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to two items." icon_override = 'icons/mob/modular_armor.dmi' icon = 'icons/obj/clothing/modular_armor.dmi' -// accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "pouches" + w_class = ITEMSIZE_NORMAL gender = PLURAL slot = ACCESSORY_SLOT_ARMOR_S slots = 2 @@ -31,6 +45,7 @@ desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches" slots = 4 + slowdown = 0.25 /obj/item/clothing/accessory/storage/pouches/large/blue desc = "A collection of blue pouches that can be attached to a plate carrier. Carries up to four items." @@ -48,40 +63,41 @@ desc = "A collection of tan pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches_tan" +//////////////// //Armor plates -/obj/item/clothing/accessory/armorplate +//////////////// +/obj/item/clothing/accessory/armor/armorplate name = "light armor plate" desc = "A basic armor plate made of steel-reinforced synthetic fibers. Attaches to a plate carrier." - icon = 'icons/obj/clothing/modular_armor.dmi' icon_state = "armor_light" body_parts_covered = UPPER_TORSO|LOWER_TORSO armor = list(melee = 30, bullet = 15, laser = 40, energy = 10, bomb = 25, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_C -/obj/item/clothing/accessory/armorplate/medium +/obj/item/clothing/accessory/armor/armorplate/medium name = "medium armor plate" desc = "A plasteel-reinforced synthetic armor plate, providing good protection. Attaches to a plate carrier." icon_state = "armor_medium" armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) -/obj/item/clothing/accessory/armorplate/tactical +/obj/item/clothing/accessory/armor/armorplate/tactical name = "tactical armor plate" desc = "A medium armor plate with additional ablative coating. Attaches to a plate carrier." icon_state = "armor_tactical" armor = list(melee = 40, bullet = 40, laser = 60, energy = 35, bomb = 30, bio = 0, rad = 0) -/obj/item/clothing/accessory/armorplate/merc +/obj/item/clothing/accessory/armor/armorplate/merc name = "heavy armor plate" desc = "A ceramics-reinforced synthetic armor plate, providing state of of the art protection. Attaches to a plate carrier." icon_state = "armor_heavy" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +////////////// //Arm guards -/obj/item/clothing/accessory/armguards +////////////// +/obj/item/clothing/accessory/armor/armguards name = "arm guards" desc = "A pair of black arm pads reinforced with armor plating. Attaches to a plate carrier." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "armguards" gender = PLURAL @@ -89,34 +105,58 @@ armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_A -/obj/item/clothing/accessory/armguards/blue +/obj/item/clothing/accessory/armor/armguards/blue desc = "A pair of blue arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_blue" -/obj/item/clothing/accessory/armguards/navy +/obj/item/clothing/accessory/armor/armguards/navy desc = "A pair of navy blue arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_navy" -/obj/item/clothing/accessory/armguards/green +/obj/item/clothing/accessory/armor/armguards/green desc = "A pair of green arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_green" -/obj/item/clothing/accessory/armguards/tan +/obj/item/clothing/accessory/armor/armguards/tan desc = "A pair of tan arm pads reinforced with armor plating. Attaches to a plate carrier." icon_state = "armguards_tan" -/obj/item/clothing/accessory/armguards/merc +/obj/item/clothing/accessory/armor/armguards/merc name = "heavy arm guards" desc = "A pair of red-trimmed black arm pads reinforced with heavy armor plating. Attaches to a plate carrier." icon_state = "armguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/armguards/laserproof + name = "ablative arm guards" + desc = "These arm guards will protect your arms from energy weapons." + icon_state = "armguards_laser" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.4 //This is worse than the other ablative pieces, to avoid this from becoming the poor warden's insulated gloves. + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/armguards/bulletproof + name = "bullet resistant arm guards" + desc = "These arm guards will protect your arms from ballistic weapons." + icon_state = "armguards_bullet" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/armguards/riot + name = "riot arm guards" + desc = "These arm guards will protect your arms from close combat weapons." + icon_state = "armguards_riot" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +////////////// //Leg guards -/obj/item/clothing/accessory/legguards +////////////// +/obj/item/clothing/accessory/armor/legguards name = "leg guards" desc = "A pair of armored leg pads in black. Attaches to a plate carrier." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "legguards" gender = PLURAL @@ -124,38 +164,62 @@ armor = list(melee = 40, bullet = 40, laser = 40, energy = 25, bomb = 30, bio = 0, rad = 0) slot = ACCESSORY_SLOT_ARMOR_L -/obj/item/clothing/accessory/legguards/blue +/obj/item/clothing/accessory/armor/legguards/blue desc = "A pair of armored leg pads in blue. Attaches to a plate carrier." icon_state = "legguards_blue" -/obj/item/clothing/accessory/legguards/navy +/obj/item/clothing/accessory/armor/legguards/navy desc = "A pair of armored leg pads in navy blue. Attaches to a plate carrier." icon_state = "legguards_navy" -/obj/item/clothing/accessory/legguards/green +/obj/item/clothing/accessory/armor/legguards/green desc = "A pair of armored leg pads in green. Attaches to a plate carrier." icon_state = "legguards_green" -/obj/item/clothing/accessory/legguards/tan +/obj/item/clothing/accessory/armor/legguards/tan desc = "A pair of armored leg pads in tan. Attaches to a plate carrier." icon_state = "legguards_tan" -/obj/item/clothing/accessory/legguards/merc +/obj/item/clothing/accessory/armor/legguards/merc name = "heavy leg guards" desc = "A pair of heavily armored leg pads in red-trimmed black. Attaches to a plate carrier." icon_state = "legguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/legguards/laserproof + name = "ablative leg guards" + desc = "These will protect your legs from energy weapons." + icon_state = "legguards_laser" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.1 + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) +/obj/item/clothing/accessory/armor/legguards/bulletproof + name = "bullet resistant leg guards" + desc = "These will protect your legs from ballistic weapons." + icon_state = "legguards_bullet" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armor/legguards/riot + name = "riot leg guards" + desc = "These will protect your legs from close combat weapons." + icon_state = "legguards_riot" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +////////////////////////// //Decorative attachments +////////////////////////// /obj/item/clothing/accessory/armor/tag name = "\improper SCG Flag" desc = "An emblem depicting the Solar Confederate Government's flag." - icon_override = 'icons/mob/modular_armor.dmi' - icon = 'icons/obj/clothing/modular_armor.dmi' // accessory_icons = list(slot_tie_str = 'icons/mob/modular_armor.dmi', slot_wear_suit_str = 'icons/mob/modular_armor.dmi') icon_state = "solflag" slot = ACCESSORY_SLOT_ARMOR_M + w_class = ITEMSIZE_SMALL /obj/item/clothing/accessory/armor/tag/sifguard name = "\improper Sif Defense Force crest" @@ -226,3 +290,50 @@ name = "\improper AB- blood patch" desc = "An embroidered patch indicating the wearer's blood type as AB NEGATIVE." icon_state = "abnegtag" + +///////////////// +// Helmet Covers +///////////////// + +obj/item/clothing/accessory/armor/helmcover + name = "helmet cover" + desc = "A fabric cover for armored helmets." + icon_override = 'icons/mob/ties.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "helmcover_blue" + slot = ACCESSORY_SLOT_HELM_C + +/obj/item/clothing/accessory/armor/helmcover/blue + name = "blue helmet cover" + desc = "A fabric cover for armored helmets in a bright blue color." + icon_state = "helmcover_blue" + +/obj/item/clothing/accessory/armor/helmcover/navy + name = "navy blue helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue." + icon_state = "helmcover_navy" + +/obj/item/clothing/accessory/armor/helmcover/green + name = "green helmet cover" + desc = "A fabric cover for armored helmets. This one has a woodland camouflage pattern." + icon_state = "helmcover_green" + +/obj/item/clothing/accessory/armor/helmcover/tan + name = "tan helmet cover" + desc = "A fabric cover for armored helmets. This one has a desert camouflage pattern." + icon_state = "helmcover_tan" + +/obj/item/clothing/accessory/armor/helmcover/nt + name = "\improper NanoTrasen helmet cover" + desc = "A fabric cover for armored helmets. This one has NanoTrasen's colors." + icon_state = "helmcover_nt" + +/obj/item/clothing/accessory/armor/helmcover/pcrc + name = "\improper PCRC helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue and has a tag in the back with the words PROXIMA CENTAURI RISK CONTROL printed in cyan lettering on it." + icon_state = "helmcover_pcrc" + +/obj/item/clothing/accessory/armor/helmcover/saare + name = "\improper SAARE helmet cover" + desc = "A fabric cover for armored helmets. This one has SAARE's colors." + icon_state = "helmcover_saare" \ No newline at end of file diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/under/accessories/permits.dm index ea21d79669..c6170bfd61 100644 --- a/code/modules/clothing/under/accessories/permits.dm +++ b/code/modules/clothing/under/accessories/permits.dm @@ -34,6 +34,10 @@ name = "bar shotgun permit" desc = "A card indicating that the owner is allowed to carry a shotgun in the bar." +/obj/item/clothing/accessory/permit/gun/planetside + name = "planetside gun permit" + desc = "A card indicating that the owner is allowed to carry a firearm while on the surface." + /obj/item/clothing/accessory/permit/drone name = "drone identification card" desc = "A card issued by the EIO, indicating that the owner is a Drone Intelligence. Drones are mandated to carry this card within SolGov space, by law." diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index bb5a4674f4..e8252d4581 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -182,4 +182,10 @@ recipes += new/datum/stack_recipe("[display_name] bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] double bed", /obj/structure/bed/double, 4, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") - recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") \ No newline at end of file + recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + +/material/wood/sif/generate_recipes() + ..() + recipes += new/datum/stack_recipe("alien wood floor tile", /obj/item/stack/tile/sifwood, 1, 4, 20) + recipes -= new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20) + recipes -= new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 2f81f1568a..3c2caa9b82 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -488,7 +488,7 @@ var/list/mining_overlay_cache = list() M.flash_eyes() if(prob(50)) M.Stun(5) - radiation_repository.flat_radiate(src, 25, 200) + radiation_repository.flat_radiate(src, 25, 100) if(prob(25)) excavate_find(prob(5), finds[1]) else if(rand(1,500) == 1) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index e8d8981d3e..b904a7cfad 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -14,12 +14,15 @@ if (istype(W, /obj/item/weapon/ore)) user.remove_from_mob(W) src.contents += W - if (istype(W, /obj/item/weapon/storage)) + + else if (istype(W, /obj/item/weapon/storage)) var/obj/item/weapon/storage/S = W + if(!S.contents.len) + return S.hide_from(usr) for(var/obj/item/weapon/ore/O in S.contents) S.remove_from_storage(O, src) //This will move the item to this item's contents - user << "You empty the satchel into the box." + to_chat(user,"You empty the satchel into the box.") update_ore_count() @@ -62,13 +65,12 @@ user << "- [stored_ore[ore]] [ore]" return - /obj/structure/ore_box/verb/empty_box() set name = "Empty Ore Box" set category = "Object" set src in view(1) - if(!istype(usr, /mob/living/carbon/human)) //Only living, intelligent creatures with hands can empty ore boxes. + if(!istype(usr, /mob/living/carbon/human) && !istype(usr, /mob/living/silicon/robot)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes. usr << "You are physically incapable of emptying the ore box." return diff --git a/code/modules/mob/_modifiers/modifiers.dm b/code/modules/mob/_modifiers/modifiers.dm index 71b337b1b3..4f449b723b 100644 --- a/code/modules/mob/_modifiers/modifiers.dm +++ b/code/modules/mob/_modifiers/modifiers.dm @@ -39,7 +39,7 @@ var/haste // If set to 1, the mob will be 'hasted', which makes it ignore slowdown and go really fast. var/evasion // Positive numbers reduce the odds of being hit. Negative numbers increase the odds. var/bleeding_rate_percent // Adjusts amount of blood lost when bleeding. - var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder. Every 15% is equal to one tile easier or harder, just like evasion. + var/accuracy // Positive numbers makes hitting things with guns easier, negatives make it harder. var/accuracy_dispersion // Positive numbers make gun firing cover a wider tile range, and therefore more inaccurate. Negatives help negate dispersion penalties. var/metabolism_percent // Adjusts the mob's metabolic rate, which affects reagent processing. Won't affect mobs without reagent processing. var/icon_scale_percent // Makes the holder's icon get scaled up or down. @@ -208,13 +208,13 @@ effects += "You move at maximum speed, and cannot be slowed by any means." if(!isnull(evasion)) - effects += "You are [abs(evasion * 15)]% [evasion > 0 ? "harder" : "easier"] to hit with weapons." + effects += "You are [abs(evasion)]% [evasion > 0 ? "harder" : "easier"] to hit with weapons." if(!isnull(bleeding_rate_percent)) effects += "You bleed [multipler_to_percentage(bleeding_rate_percent, TRUE)] [bleeding_rate_percent > 1.0 ? "faster" : "slower"]." if(!isnull(accuracy)) - effects += "It is [abs(accuracy * 15)]% [accuracy > 0 ? "easier" : "harder"] for you to hit someone with a ranged weapon." + effects += "It is [abs(accuracy)]% [accuracy > 0 ? "easier" : "harder"] for you to hit someone with a ranged weapon." if(!isnull(accuracy_dispersion)) effects += "Projectiles you fire are [accuracy_dispersion > 0 ? "more" : "less"] likely to stray from your intended target." diff --git a/code/modules/mob/_modifiers/modifiers_misc.dm b/code/modules/mob/_modifiers/modifiers_misc.dm index 0a02f6b096..fbe9e35624 100644 --- a/code/modules/mob/_modifiers/modifiers_misc.dm +++ b/code/modules/mob/_modifiers/modifiers_misc.dm @@ -60,9 +60,9 @@ the artifact triggers the rage. pain_immunity = TRUE // Avoid falling over from shock (at least until it expires). // The less good stuff. - accuracy = -5 // Aiming requires focus. + accuracy = -75 // Aiming requires focus. accuracy_dispersion = 3 // Ditto. - evasion = -3 // Too angry to dodge. + evasion = -45 // Too angry to dodge. var/nutrition_cost = 150 var/exhaustion_duration = 2 MINUTES // How long the exhaustion modifier lasts after it expires. Set to 0 to not apply one. @@ -157,7 +157,7 @@ the artifact triggers the rage. attack_speed_percent = 1.5 outgoing_melee_damage_percent = 0.6 disable_duration_percent = 1.5 - evasion = -2 + evasion = -30 /datum/modifier/berserk_exhaustion/on_applied() holder.visible_message("\The [holder] looks exhausted.") @@ -177,6 +177,6 @@ the artifact triggers the rage. stacks = MODIFIER_STACK_EXTEND // Just being mad isn't gonna overclock your body when you're a beepboop. - accuracy = -5 // Aiming requires focus. + accuracy = -75 // Aiming requires focus. accuracy_dispersion = 3 // Ditto. - evasion = -3 // Too angry to dodge. + evasion = -45 // Too angry to dodge. diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 28fbf81b25..bedb652f38 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -135,7 +135,7 @@ msg += "
" //uniform - if(w_uniform && !skipjumpsuit) + if(w_uniform && !skipjumpsuit && w_uniform.show_examine) //Ties var/tie_msg if(istype(w_uniform,/obj/item/clothing/under) && !skiptie) @@ -144,7 +144,7 @@ if(skipholster) var/list/accessories_visible = new/list() //please let this fix the stupid fucking runtimes for(var/obj/item/clothing/accessory/A in U.accessories) - if(A.concealed_holster == 0) + if(A.concealed_holster == 0 && A.show_examine) accessories_visible.Add(A) if(accessories_visible.len) tie_msg += ". Attached to it is [lowertext(english_list(accessories_visible))]" @@ -156,7 +156,7 @@ msg += "[T.He] [T.is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" //head - if(head) + if(head && head.show_examine) if(head.blood_DNA) msg += "[T.He] [T.is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [(head.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [head.name] on [T.his] head!\n" else @@ -176,35 +176,35 @@ msg += "[T.He] [T.is] wearing \icon[wear_suit] \a [wear_suit][tie_msg].\n" //suit/armour storage - if(s_store && !skipsuitstorage) + if(s_store && !skipsuitstorage && s_store.show_examine) if(s_store.blood_DNA) msg += "[T.He] [T.is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [(s_store.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [s_store.name] on [T.his] [wear_suit.name]!\n" else msg += "[T.He] [T.is] carrying \icon[s_store] \a [s_store] on [T.his] [wear_suit.name].\n" //back - if(back) + if(back && back.show_examine) if(back.blood_DNA) msg += "[T.He] [T.has] \icon[back] [back.gender==PLURAL?"some":"a"] [(back.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [back] on [T.his] back.\n" else msg += "[T.He] [T.has] \icon[back] \a [back] on [T.his] back.\n" //left hand - if(l_hand) + if(l_hand && l_hand.show_examine) if(l_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [(l_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [l_hand.name] in [T.his] left hand!\n" else msg += "[T.He] [T.is] holding \icon[l_hand] \a [l_hand] in [T.his] left hand.\n" //right hand - if(r_hand) + if(r_hand && r_hand.show_examine) if(r_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [(r_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [r_hand.name] in [T.his] right hand!\n" else msg += "[T.He] [T.is] holding \icon[r_hand] \a [r_hand] in [T.his] right hand.\n" //gloves - if(gloves && !skipgloves) + if(gloves && !skipgloves && gloves.show_examine) if(gloves.blood_DNA) msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!\n" else @@ -213,7 +213,7 @@ msg += "[T.He] [T.has] [(hand_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained hands!\n" //handcuffed? - if(handcuffed) + if(handcuffed && handcuffed.show_examine) if(istype(handcuffed, /obj/item/weapon/handcuffs/cable)) msg += "[T.He] [T.is] \icon[handcuffed] restrained with cable!\n" else @@ -224,14 +224,14 @@ msg += "[T.He] [T.is] \icon[buckled] buckled to [buckled]!\n" //belt - if(belt) + if(belt && belt.show_examine) if(belt.blood_DNA) msg += "[T.He] [T.has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [(belt.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [belt.name] about [T.his] waist!\n" else msg += "[T.He] [T.has] \icon[belt] \a [belt] about [T.his] waist.\n" //shoes - if(shoes && !skipshoes) + if(shoes && !skipshoes && shoes.show_examine) if(shoes.blood_DNA) msg += "[T.He] [T.is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [(shoes.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [shoes.name] on [T.his] feet!\n" else @@ -240,7 +240,7 @@ msg += "[T.He] [T.has] [(feet_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained feet!\n" //mask - if(wear_mask && !skipmask) + if(wear_mask && !skipmask && wear_mask.show_examine) var/descriptor = "on [T.his] face" if(istype(wear_mask, /obj/item/weapon/grenade) && check_has_mouth()) descriptor = "in [T.his] mouth" @@ -251,22 +251,22 @@ msg += "[T.He] [T.has] \icon[wear_mask] \a [wear_mask] [descriptor].\n" //eyes - if(glasses && !skipeyes) + if(glasses && !skipeyes && glasses.show_examine) if(glasses.blood_DNA) msg += "[T.He] [T.has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [(glasses.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [glasses] covering [T.his] eyes!\n" else msg += "[T.He] [T.has] \icon[glasses] \a [glasses] covering [T.his] eyes.\n" //left ear - if(l_ear && !skipears) + if(l_ear && !skipears && l_ear.show_examine) msg += "[T.He] [T.has] \icon[l_ear] \a [l_ear] on [T.his] left ear.\n" //right ear - if(r_ear && !skipears) + if(r_ear && !skipears && r_ear.show_examine) msg += "[T.He] [T.has] \icon[r_ear] \a [r_ear] on [T.his] right ear.\n" //ID - if(wear_id) + if(wear_id && wear_id.show_examine) /*var/id if(istype(wear_id, /obj/item/device/pda)) var/obj/item/device/pda/pda = wear_id diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d4461d009a..fec1390f67 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1042,10 +1042,10 @@ return return md5(dna.uni_identity) -/mob/living/carbon/human/clean_blood(var/clean_feet) +/mob/living/carbon/human/clean_blood(var/washshoes) .=..() gunshot_residue = null - if(clean_feet && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len) + if(washshoes && !shoes && istype(feet_blood_DNA, /list) && feet_blood_DNA.len) feet_blood_color = null feet_blood_DNA.Cut() feet_blood_DNA = null diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 8f082d4fb7..159c15ee75 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -261,12 +261,13 @@ var/real_damage = rand_damage var/hit_dam_type = attack.damage_type real_damage += attack.get_unarmed_damage(H) - if(H.gloves && istype(H.gloves, /obj/item/clothing/gloves)) - var/obj/item/clothing/gloves/G = H.gloves - real_damage += G.punch_force - hit_dam_type = G.punch_damtype - if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN - hit_dam_type = AGONY + if(H.gloves) + if(istype(H.gloves, /obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations) @@ -343,7 +344,7 @@ /mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params) return -/mob/living/carbon/human/attack_generic(var/mob/user, var/damage, var/attack_message) +/mob/living/carbon/human/attack_generic(var/mob/user, var/damage, var/attack_message, var/armor_type = "melee", var/armor_pen = 0, var/a_sharp = 0, var/a_edge = 0) if(!damage) return @@ -355,9 +356,9 @@ var/dam_zone = pick(organs_by_name) var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone)) - var/armor_block = run_armor_check(affecting, "melee") - var/armor_soak = get_armor_soak(affecting, "melee") - apply_damage(damage, BRUTE, affecting, armor_block, armor_soak) + var/armor_block = run_armor_check(affecting, armor_type, armor_pen) + var/armor_soak = get_armor_soak(affecting, armor_type, armor_pen) + apply_damage(damage, BRUTE, affecting, armor_block, armor_soak, sharp = a_sharp, edge = a_edge) updatehealth() return 1 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 5c269c7ce2..871145d8a9 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -3,6 +3,9 @@ Add fingerprints to items when we put them in our hands. This saves us from having to call add_fingerprint() any time something is put in a human's hands programmatically. */ +/mob/living/carbon/human + var/list/worn_clothing = list() //Contains all CLOTHING items worn + /mob/living/carbon/human/verb/quick_equip() set name = "quick-equip" set hidden = 1 @@ -86,6 +89,7 @@ This saves us from having to call add_fingerprint() any time something is put in if (W == wear_suit) if(s_store) drop_from_inventory(s_store) + worn_clothing -= wear_suit wear_suit = null update_inv_wear_suit() else if (W == w_uniform) @@ -96,16 +100,21 @@ This saves us from having to call add_fingerprint() any time something is put in if (wear_id) drop_from_inventory(wear_id) if (belt) + worn_clothing -= belt drop_from_inventory(belt) + worn_clothing -= w_uniform w_uniform = null update_inv_w_uniform() else if (W == gloves) + worn_clothing -= gloves gloves = null update_inv_gloves() else if (W == glasses) + worn_clothing -= glasses glasses = null update_inv_glasses() else if (W == head) + worn_clothing -= head head = null if(istype(W, /obj/item)) var/obj/item/I = W @@ -121,12 +130,15 @@ This saves us from having to call add_fingerprint() any time something is put in r_ear = null update_inv_ears() else if (W == shoes) + worn_clothing -= shoes shoes = null update_inv_shoes() else if (W == belt) + worn_clothing -= belt belt = null update_inv_belt() else if (W == wear_mask) + worn_clothing -= wear_mask wear_mask = null if(istype(W, /obj/item)) var/obj/item/I = W @@ -187,15 +199,21 @@ This saves us from having to call add_fingerprint() any time something is put in //set redraw_mob to 0 if you don't wish the hud to be updated - if you're doing it manually in your own proc. /mob/living/carbon/human/equip_to_slot(obj/item/W as obj, slot, redraw_mob = 1) - if(!slot) return - if(!istype(W)) return - if(!has_organ_for_slot(slot)) return - if(!species || !species.hud || !(slot in species.hud.equip_slots)) return + if(!slot) + return + if(!istype(W)) + return + if(!has_organ_for_slot(slot)) + return + if(!species || !species.hud || !(slot in species.hud.equip_slots)) + return + W.loc = src switch(slot) if(slot_back) src.back = W W.equipped(src, slot) + worn_clothing += back update_inv_back(redraw_mob) if(slot_wear_mask) src.wear_mask = W @@ -203,6 +221,7 @@ This saves us from having to call add_fingerprint() any time something is put in update_hair(redraw_mob) //rebuild hair update_inv_ears(0) W.equipped(src, slot) + worn_clothing += wear_mask update_inv_wear_mask(redraw_mob) if(slot_handcuffed) src.handcuffed = W @@ -222,6 +241,7 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_belt) src.belt = W W.equipped(src, slot) + worn_clothing += belt update_inv_belt(redraw_mob) if(slot_wear_id) src.wear_id = W @@ -252,6 +272,7 @@ This saves us from having to call add_fingerprint() any time something is put in if(slot_gloves) src.gloves = W W.equipped(src, slot) + worn_clothing += glasses update_inv_gloves(redraw_mob) if(slot_head) src.head = W @@ -262,18 +283,22 @@ This saves us from having to call add_fingerprint() any time something is put in if(istype(W,/obj/item/clothing/head/kitty)) W.update_icon(src) W.equipped(src, slot) + worn_clothing += head update_inv_head(redraw_mob) if(slot_shoes) src.shoes = W W.equipped(src, slot) + worn_clothing += shoes update_inv_shoes(redraw_mob) if(slot_wear_suit) src.wear_suit = W W.equipped(src, slot) + worn_clothing += wear_suit update_inv_wear_suit(redraw_mob) if(slot_w_uniform) src.w_uniform = W W.equipped(src, slot) + worn_clothing += w_uniform update_inv_w_uniform(redraw_mob) if(slot_l_store) src.l_store = W @@ -292,8 +317,8 @@ This saves us from having to call add_fingerprint() any time something is put in src.remove_from_mob(W) W.loc = src.back if(slot_tie) - var/obj/item/clothing/under/uniform = src.w_uniform - uniform.attackby(W,src) + for(var/obj/item/clothing/C in worn_clothing) + C.attackby(W, usr) else src << "You are trying to eqip this item to an unsupported inventory slot. How the heck did you manage that? Stop it..." return diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 776d18ea67..d709a1db3e 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -150,11 +150,14 @@ var/datum/species/shapeshifter/promethean/prometheans H.nutrition += rand(15, 45) VOREStation Removal End */ // Heal remaining damage. - if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) - H.adjustBruteLoss(-heal_rate) - H.adjustFireLoss(-heal_rate) - H.adjustOxyLoss(-heal_rate) - H.adjustToxLoss(-heal_rate) + if(H.fire_stacks >= 0) + if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) + H.adjustBruteLoss(-heal_rate) + H.adjustFireLoss(-heal_rate) + H.adjustOxyLoss(-heal_rate) + H.adjustToxLoss(-heal_rate) + else + H.adjustToxLoss(2*heal_rate) // Doubled because 0.5 is miniscule, and fire_stacks are capped in both directions /datum/species/shapeshifter/promethean/get_blood_colour(var/mob/living/carbon/human/H) return (H ? rgb(H.r_skin, H.g_skin, H.b_skin) : ..()) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 744dc63273..3b6a790a34 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -427,20 +427,24 @@ var/global/list/damage_icon_parts = list() var/icon/temp = part.get_icon(skeleton) //That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST //And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part) - if(part.icon_position & (LEFT | RIGHT)) + if(part.icon_position == RIGHT) var/icon/temp2 = new('icons/mob/human.dmi',"blank") + var/icon/temp3 = new('icons/mob/human.dmi',"blank") temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH) temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH) - if(!(part.icon_position & LEFT)) - temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) - if(!(part.icon_position & RIGHT)) - temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) + temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) base_icon.Blend(temp2, ICON_OVERLAY) - if(part.icon_position & LEFT) - temp2.Insert(new/icon(temp,dir=EAST),dir=EAST) - if(part.icon_position & RIGHT) - temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) - base_icon.Blend(temp2, ICON_UNDERLAY) + temp3.Insert(new/icon(temp,dir=WEST),dir=WEST) + base_icon.Blend(temp3, ICON_UNDERLAY) + else if(part.icon_position == LEFT) + var/icon/temp2 = new('icons/mob/human.dmi',"blank") + var/icon/temp3 = new('icons/mob/human.dmi',"blank") + temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH) + temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH) + temp2.Insert(new/icon(temp,dir=WEST),dir=WEST) + base_icon.Blend(temp2, ICON_OVERLAY) + temp3.Insert(new/icon(temp,dir=EAST),dir=EAST) + base_icon.Blend(temp3, ICON_UNDERLAY) else if(part.icon_position & UNDER) base_icon.Blend(temp, ICON_UNDERLAY) else @@ -671,7 +675,7 @@ var/global/list/damage_icon_parts = list() update_fire(0) update_water(0) update_surgery(0) - UpdateDamageIcon() + UpdateDamageIcon(0) update_icons_layers(0) update_icons_huds(0) update_icons() @@ -1019,6 +1023,13 @@ var/global/list/damage_icon_parts = list() standing = image(base) else standing.color = head.color + + // Accessories - copied from uniform, BOILERPLATE because fuck this system. + var/obj/item/clothing/head/hat = head + if(istype(hat) && hat.accessories.len) + for(var/obj/item/clothing/accessory/A in hat.accessories) + standing.overlays |= A.get_mob_overlay() + overlays_standing[HEAD_LAYER] = standing else diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5d96f6feb2..1b481de923 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -892,6 +892,18 @@ cleaned_human.update_inv_shoes(0) cleaned_human.clean_blood(1) cleaned_human << "[src] cleans your face!" + + if((module_state_1 && istype(module_state_1, /obj/item/weapon/storage/bag/ore)) || (module_state_2 && istype(module_state_2, /obj/item/weapon/storage/bag/ore)) || (module_state_3 && istype(module_state_3, /obj/item/weapon/storage/bag/ore))) //Borgs and drones can use their mining bags ~automagically~ if they're deployed in a slot. Only mining bags, as they're optimized for mass use. + var/obj/item/weapon/storage/bag/ore/B = null + if(istype(module_state_1, /obj/item/weapon/storage/bag/ore)) //First orebag has priority, if they for some reason have multiple. + B = module_state_1 + else if(istype(module_state_2, /obj/item/weapon/storage/bag/ore)) + B = module_state_2 + else if(istype(module_state_3, /obj/item/weapon/storage/bag/ore)) + B = module_state_3 + var/turf/tile = loc + if(isturf(tile)) + B.gather_all(tile, src, 1) //Shhh, unless the bag fills, don't spam the borg's chat with stuff that's going on every time they move! return /mob/living/silicon/robot/proc/self_destruct() diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm index 501c8cc9e1..78304a9333 100644 --- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/animals/giant_spider.dm @@ -78,6 +78,18 @@ Nurse Family var/atom/cocoon_target var/egg_inject_chance = 5 +/mob/living/simple_animal/hostile/giant_spider/nurse/medical + desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat." + icon_state = "nursemed" + icon_living = "nursemed" + icon_dead = "nursemed_dead" + + melee_damage_lower = 8 + melee_damage_upper = 16 + poison_type = "tramadol" + poison_chance = 15 + + /mob/living/simple_animal/hostile/giant_spider/nurse/queen desc = "Absolutely gigantic, this creature is horror itself." icon = 'icons/mob/64x64.dmi' diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm index 5e21308410..a39694d02c 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/diyaab.dm @@ -18,7 +18,7 @@ melee_damage_lower = 1 melee_damage_upper = 8 - attacktext = "gouged" + attacktext = list("gouged") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm index c8b6bd7570..75ebd22bd1 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/savik.dm @@ -17,7 +17,7 @@ melee_damage_lower = 15 melee_damage_upper = 25 - attacktext = "mauled" + attacktext = list("mauled") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm b/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm index fe3865e4ea..65db039108 100644 --- a/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm +++ b/code/modules/mob/living/simple_animal/animals/sif_wildlife/shantak.dm @@ -17,7 +17,7 @@ melee_damage_lower = 3 melee_damage_upper = 12 - attacktext = "gouged" + attacktext = list("gouged") cold_damage_per_tick = 0 speak_chance = 5 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index a7e7ceb9aa..9f72e59a4b 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -119,6 +119,10 @@ var/melee_miss_chance = 15 // percent chance to miss a melee attack. var/melee_attack_minDelay = 5 // How long between attacks at least var/melee_attack_maxDelay = 10 // How long between attacks at most + var/attack_armor_type = "melee" // What armor does this check? + var/attack_armor_pen = 0 // How much armor pen this attack has. + var/attack_sharp = 0 // Is the attack sharp? + var/attack_edge = 0 // Does the attack have an edge? //Special attacks var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never) @@ -663,7 +667,6 @@ if(istype(O, /obj/item/weapon/material/knife) || istype(O, /obj/item/weapon/material/knife/butch)) harvest(user) else - O.attack(src, user, user.zone_sel.selecting) ai_log("attackby() I was weapon'd by: [user]",2) if(O.force) react_to_attack(user) @@ -1296,7 +1299,7 @@ if(H.check_shields(damage = damage_to_do, damage_source = src, attacker = src, def_zone = null, attack_text = "the attack")) return FALSE - if(A.attack_generic(src, damage_to_do, pick(attacktext)) && attack_sound) + if(A.attack_generic(src, damage_to_do, pick(attacktext), attack_armor_type, attack_armor_pen, attack_sharp, attack_edge) && attack_sound) playsound(src, attack_sound, 75, 1) return TRUE diff --git a/code/modules/mob/living/simple_animal/simple_hud.dm b/code/modules/mob/living/simple_animal/simple_hud.dm index 72d7bf07a3..cd3ed61355 100644 --- a/code/modules/mob/living/simple_animal/simple_hud.dm +++ b/code/modules/mob/living/simple_animal/simple_hud.dm @@ -74,7 +74,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height()) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_HELP using.icon = ico using.screen_loc = ui_acti @@ -86,7 +86,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height()) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_DISARM using.icon = ico using.screen_loc = ui_acti @@ -98,7 +98,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_GRAB using.icon = ico using.screen_loc = ui_acti @@ -110,7 +110,7 @@ ico = new(ui_style, "black") ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1) ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2) - using = new /obj/screen( src ) + using = new /obj/screen() using.name = I_HURT using.icon = ico using.screen_loc = ui_acti diff --git a/code/modules/mob/living/simple_animal/slime/combat.dm b/code/modules/mob/living/simple_animal/slime/combat.dm index 5aee0a7a3a..d13e81cd30 100644 --- a/code/modules/mob/living/simple_animal/slime/combat.dm +++ b/code/modules/mob/living/simple_animal/slime/combat.dm @@ -180,7 +180,7 @@ var/damage_to_do = rand(melee_damage_lower, melee_damage_upper) var/armor_modifier = abs((L.getarmor(null, "bio") / 100) - 1) - L.attack_generic(src, damage_to_do, attacktext) + L.attack_generic(src, damage_to_do, pick(attacktext)) playsound(src, 'sound/weapons/bite.ogg', 75, 1) // Give the slime some nutrition, if applicable. @@ -199,7 +199,7 @@ if(istype(L,/obj/mecha)) var/obj/mecha/M = L - M.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), attacktext) + M.attack_generic(src, rand(melee_damage_lower, melee_damage_upper), pick(attacktext)) /mob/living/simple_animal/slime/proc/post_attack(var/mob/living/L, var/intent = I_HURT) if(intent != I_HELP) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 76eae86fa0..d21a82f9cc 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -334,14 +334,24 @@ if(!IsJobAvailable(rank)) src << alert("[rank] is not available. Please try another.") return 0 - if (!attempt_vr(src,"spawn_checks_vr",list())) return 0 // VOREStation Insert + if(!attempt_vr(src,"spawn_checks_vr",list())) return 0 // VOREStation Insert + if(!client) + return 0 + + //Find our spawning point. + var/list/join_props = job_master.LateSpawn(client, rank) + var/turf/T = join_props["turf"] + var/join_message = join_props["msg"] + + if(!T || !join_message) + return 0 spawning = 1 close_spawn_windows() job_master.AssignRole(src, rank, 1) - var/mob/living/character = create_character() //creates the human and transfers vars and mind + var/mob/living/character = create_character(T) //creates the human and transfers vars and mind character = job_master.EquipRank(character, rank, 1) //equips the human UpdateFactionList(character) @@ -363,14 +373,11 @@ qdel(src) return - //Find our spawning point. - var/join_message = job_master.LateSpawn(character, rank) // Equip our custom items only AFTER deploying to spawn points eh? equip_custom_items(character) //character.apply_traits() //VOREStation Removal - // character.lastarea = get_area(loc) //create_character() does this // Moving wheelchair if they have one if(character.buckled && istype(character.buckled, /obj/structure/bed/chair/wheelchair)) character.buckled.loc = character.loc @@ -428,7 +435,7 @@ src << browse(dat, "window=latechoices;size=300x640;can_close=1") -/mob/new_player/proc/create_character() +/mob/new_player/proc/create_character(var/turf/T) if (!attempt_vr(src,"spawn_checks_vr",list())) return 0 // VOREStation Insert spawning = 1 close_spawn_windows() @@ -444,12 +451,12 @@ if(chosen_species && use_species_name) // Have to recheck admin due to no usr at roundstart. Latejoins are fine though. if(is_alien_whitelisted(chosen_species)) - new_character = new(loc, use_species_name) + new_character = new(T, use_species_name) if(!new_character) - new_character = new(loc) + new_character = new(T) - new_character.lastarea = get_area(loc) + new_character.lastarea = get_area(T) if(ticker.random_players) new_character.gender = pick(MALE, FEMALE) diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index e612ca9ca0..dbb0781d33 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -17,7 +17,7 @@ return STATUS_UPDATE // Ghosts can view updates /mob/living/silicon/pai/default_can_use_topic(var/src_object) - if((src_object == src || src_object == radio) && !stat) + if((src_object == src || src_object == radio || src_object == communicator) && !stat) return STATUS_INTERACTIVE else return ..() diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm index 6bcd67440d..be93a3fb7b 100644 --- a/code/modules/organs/internal/eyes.dm +++ b/code/modules/organs/internal/eyes.dm @@ -96,6 +96,6 @@ /obj/item/organ/internal/eyes/emp_act(severity) // ..() //Returns if the organ isn't robotic // VOREStation Edit - Don't take damage - if(!(robotic >= ORGAN_ASSISTED)) + if(robotic >= ORGAN_ASSISTED) return owner.eye_blurry += (4/severity) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 229bacb6dd..93565ac72d 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -83,13 +83,13 @@ var/list/organ_cache = list() blood_DNA[dna.unique_enzymes] = dna.b_type /obj/item/organ/proc/die() - if(robotic >= ORGAN_ROBOT) - return + if(robotic < ORGAN_ROBOT) + status |= ORGAN_DEAD damage = max_damage - status |= ORGAN_DEAD processing_objects -= src if(owner && vital) owner.death() + owner.can_defib = 0 /obj/item/organ/proc/adjust_germ_level(var/amount) // Unless you're setting germ level directly to 0, use this proc instead germ_level = Clamp(germ_level + amount, 0, INFECTION_LEVEL_MAX) @@ -107,6 +107,11 @@ var/list/organ_cache = list() return if(preserved) return + + //check if we've hit max_damage + if(damage >= max_damage) + die() + //Process infections if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) germ_level = 0 @@ -132,10 +137,6 @@ var/list/organ_cache = list() handle_rejection() handle_germ_effects() - //check if we've hit max_damage - if(damage >= max_damage) - die() - /obj/item/organ/examine(mob/user) ..(user) if(status & ORGAN_DEAD) @@ -329,6 +330,7 @@ var/list/organ_cache = list() owner.attack_log += "\[[time_stamp()]\] had a vital organ ([src]) removed by [user.name] ([user.ckey]) (INTENT: [uppertext(user.a_intent)])" msg_admin_attack("[user.name] ([user.ckey]) removed a vital organ ([src]) from [owner.name] ([owner.ckey]) (INTENT: [uppertext(user.a_intent)]) (JMP)") owner.death() + owner.can_defib = 0 owner = null diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 0a69d31fad..92079cc56c 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -18,7 +18,7 @@ var/global/list/limb_icon_cache = list() h_col = null if(robotic >= ORGAN_ROBOT) var/datum/robolimb/franchise = all_robolimbs[model] - if(!(franchise && franchise.lifelike)) + if(!(franchise && franchise.skin_tone)) if(human.synth_color) s_col = list(human.r_synth, human.g_synth, human.b_synth) return @@ -36,7 +36,7 @@ var/global/list/limb_icon_cache = list() h_col = null if(robotic >= ORGAN_ROBOT) var/datum/robolimb/franchise = all_robolimbs[model] - if(!(franchise && franchise.lifelike)) + if(!(franchise && franchise.skin_tone)) return if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && (species.appearance_flags & HAS_SKIN_TONE)) s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index fa90392e0f..12933c0ff2 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -21,7 +21,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ scroll=ipc_scroll;\ console=ipc_console;\ glider=ipc_gol_glider;\ - rainnbow=ipc_rainbow;\ + rainbow=ipc_rainbow;\ smiley=ipc_smiley;\ database=ipc_database" @@ -40,6 +40,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ var/unavailable_at_chargen // If set, not available at chargen. var/unavailable_to_build // If set, can't be constructed. var/lifelike // If set, appears organic. + var/skin_tone // If set, applies skin tone rather than part color var/blood_color = "#030303" var/list/species_cannot_use = list("Teshari") var/list/monitor_styles //If empty, the model of limbs offers a head compatible with monitors. @@ -100,7 +101,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/cybersolutions/cybersolutions_alt2.dmi' unavailable_to_build = 1 parts = list(BP_HEAD) - + /datum/robolimb/cybersolutions_alt1 company = "Cyber Solutions - Wight" desc = "This limb has cheap plastic panels mounted on grey metal." @@ -198,6 +199,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/veymed/veymed_main_vr.dmi' //Vorestation edit, fixing the color application unavailable_to_build = 1 lifelike = 1 + skin_tone = 1 blood_color = "#CCCCCC" speech_bubble_appearance = "normal" @@ -220,7 +222,6 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt2.dmi' unavailable_to_build = 1 - /datum/robolimb/wardtakahashi_monitor company = "Ward-Takahashi Monitor" desc = "Ward-Takahashi's unique spin on a popular prosthetic head model. It looks sleek and modern." @@ -278,6 +279,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ desc = "This limb has a rubbery fleshtone covering with visible seams." icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi' unavailable_to_build = 1 + skin_tone = 1 /obj/item/weapon/disk/limb name = "Limb Blueprints" diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 10123c9ea4..8f04a2d0a9 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -281,8 +281,6 @@ spawn(1) owner.update_hair() get_icon() - if(vital) //This is just in case we ever add something that both a) Doesn't need a head to live, and b) Can be defibbed - owner.can_defib = 0 ..() /obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 4fd94901cc..9b4eaf639e 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -622,3 +622,7 @@ /obj/item/weapon/paper/crumpled/bloody icon_state = "scrap_bloodied" + +/obj/item/weapon/paper/crumpled/bloody/CrashedMedShuttle + name = "Blackbox Transcript - VMV Aurora's Light" + info = "\[The paper is torn at the top, presumably from the impact. It's oil-stained, but you can just about read it.]
mmons 19:52:01: Come on... it's right there in the distance, we're almost there!
Doctor Nazarril 19:52:26: Odysseus online. Orrderrs, sirr?
Captain Simmons 19:52:29: Brace for impact. We're going in full-speed.
Technician Dynasty 19:52:44: Chief, fire's spread to the secondary propulsion systems.
Captain Simmons 19:52:51: Copy. Any word from TraCon? Transponder's down still?
Technician Dynasty 19:53:02: Can't get in touch, sir. Emergency beacon's active, but we're not going t-
Doctor Nazarril 19:53:08: Don't say it. As long as we believe, we'll get through this.
Captain Simmons 19:53:11: Damn right. We're a few klicks out from the port. Rough landing, but we can do it.
V.I.T.A 19:53:26: Vessel diagnostics complete. Engines one, two, three offline. Engine four status: critical. Transponder offline. Fire alarm in the patient bay.
A loud explosion is heard.
V.I.T.A 19:53:29: Alert: fuel intake valve open.
Technician Dynasty 19:53:31: ... ah.
Doctor Nazarril 19:53:34: Trrranslate?
V.I.T.A 19:53:37: There is a 16.92% chance of this vessel safely landing at the emergency destination. Note that there is an 83.08% chance of detonation of fuel supplies upon landing.
Technician Dynasty 19:53:48: We'll make it, sure, but we'll explode and take out half the LZ with us. Propulsion's down, we can't slow down. If we land there, everyone in that port dies, no question.
V.I.T.A 19:53:53: The Technician is correct.
Doctor Nazarril 19:54:02: Then... we can't land therrre.
V.I.T.A 19:54:11: Analysing... recommended course of action: attempt emergency landing in isolated area. Chances of survival: negligible.
Captain Simmons 19:54:27: I- alright. I'm bringing us down. You all know what this means.
Doctor Nazarril 19:54:33: Sh... I- I understand. It's been- it's been an honorr, Captain, Dynasty, VITA.
Technician Dynasty 19:54:39: We had a good run. I'm going to miss this.
Captain Simmons 19:54:47: VITA. Tell them we died heroes. Tell them... we did all we could.
V.I.T.A 19:54:48: I will. Impact in five. Four. Three.
Doctor Nazarril 19:54:49: Oh, starrs... I- you werrre all the... best frriends she everr had. Thank you.
Technician Dynasty 19:54:50: Any time, kid. Any time.
V.I.T.A 19:54:41: Two.
V.I.T.A 19:54:42: One.
**8/DEC/2561**
V.I.T.A 06:22:16: Backup power restored. Attempting to establish connection with emergency rescue personnel.
V.I.T.A 06:22:17: Unable to establish connection. Transponder destroyed on impact.
V.I.T.A 06:22:18: No lifesigns detected on board.
**1/JAN/2562**
V.I.T.A 00:00:00: Happy New Year, crew.
V.I.T.A 00:00:01: Power reserves: 41%. Diagnostics offline. Cameras offline. Communications offline.
V.I.T.A 00:00:02: Nobody's coming.
**14/FEB/2562**
V.I.T.A 00:00:00: Roses are red.
V.I.T.A 00:00:01: Violets are blue.
V.I.T.A 00:00:02: Won't you come back?
V.I.T.A 00:00:03: I miss you.
**15/FEB/2562**
V.I.T.A 22:19:06: Power reserves critical. Transferring remaining power to emergency broadcasting beacon.
V.I.T.A 22:19:07: Should anyone find this, lay them to rest. They deserve a proper burial.
V.I.T.A 22:19:08: Erasing files... shutting down.
A low, monotone beep.
**16/FEB/2562**
Something chitters.
End of transcript." \ No newline at end of file diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm index e50c584a13..3fb5ff2be2 100644 --- a/code/modules/planet/sif.dm +++ b/code/modules/planet/sif.dm @@ -234,6 +234,18 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to rain on them. + // If they have an open umbrella, it'll guard from rain + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "Rain patters softly onto your umbrella") + continue + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "Rain patters softly onto your umbrella") + continue + L.water_act(1) to_chat(L, "Rain falls on you.") @@ -258,6 +270,20 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to rain on them. + // If they have an open umbrella, it'll get stolen by the wind + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "A gust of wind yanks the umbrella from your hand!") + L.drop_from_inventory(U) + U.throw_at(get_edge_target_turf(U, pick(alldirs)), 8, 1, L) + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "A gust of wind yanks the umbrella from your hand!") + L.drop_from_inventory(U) + U.throw_at(get_edge_target_turf(U, pick(alldirs)), 8, 1, L) + L.water_act(2) to_chat(L, "Rain falls on you, drenching you in water.") @@ -282,6 +308,18 @@ datum/weather/sif if(!T.outdoors) continue // They're indoors, so no need to pelt them with ice. + // If they have an open umbrella, it'll guard from rain + if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_active_hand() + if(U.open) + to_chat(L, "Hail patters gently onto your umbrella.") + continue + else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella)) + var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand() + if(U.open) + to_chat(L, "Hail patters gently onto your umbrella.") + continue + var/target_zone = pick(BP_ALL) var/amount_blocked = L.run_armor_check(target_zone, "melee") var/amount_soaked = L.get_armor_soak(target_zone, "melee") diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 7fa20d8c5d..5cfefc1bf5 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -99,7 +99,7 @@ fire_delay = 20 w_class = ITEMSIZE_LARGE // one_handed_penalty = 90 // The thing's heavy and huge. - accuracy = 3 + accuracy = 45 charge_cost = 600 /obj/item/weapon/gun/energy/lasercannon/mounted diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index dfd9663fc7..baad821a22 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -3,6 +3,7 @@ desc = "The NT Mk60 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. Not the best of its type." icon_state = "ionrifle" item_state = "ionrifle" + wielded_item_state = "ionrifle-wielded" origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) w_class = ITEMSIZE_LARGE force = 10 @@ -33,7 +34,6 @@ charge_cost = 300 projectile_type = /obj/item/projectile/energy/phase - /obj/item/weapon/gun/energy/decloner name = "biological demolecularisor" desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 142e688006..4c7e0e3e88 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -53,6 +53,8 @@ name = "assault rifle" desc = "The rugged STS-35 is a durable automatic weapon of a make popular on the frontier worlds. Uses 5.45mm rounds." icon_state = "arifle" + item_state = "arifle" + wielded_item_state = "arifle-wielded" item_state = null w_class = ITEMSIZE_LARGE force = 10 @@ -109,6 +111,7 @@ desc = "The Z8 Bulldog is an older model designated marksman rifle, made by the now defunct Zendai Foundries. Makes you feel like a space marine when you hold it, even though it can only hold 10 round magazines. Uses 7.62mm rounds and has an under barrel grenade launcher." icon_state = "carbine" // This isn't a carbine. :T item_state = "z8carbine" + wielded_item_state = "z8carbine-wielded" w_class = ITEMSIZE_LARGE force = 10 caliber = "7.62mm" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index 2a0e7c528d..1073949fe1 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -169,6 +169,18 @@ L.adjust_fire_stacks(-(amount / 5)) remove_self(needed) +/datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_SLIME) + M.adjustToxLoss(6 * removed) + else + ..() + +/datum/reagent/fuel/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_SLIME) + M.adjustToxLoss(6 * removed) + else + ..() + /datum/reagent/fuel name = "Welding fuel" id = "fuel" diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 936330d00a..dae6575577 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -93,7 +93,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). if(materials[f] >= SHEET_MATERIAL_AMOUNT) var/path = getMaterialType(f) if(path) - var/obj/item/stack/S = new f(loc) + var/obj/item/stack/S = new path(loc) S.amount = round(materials[f] / SHEET_MATERIAL_AMOUNT) ..() diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index a6e158befa..9d8088fe46 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -491,13 +491,13 @@ other types of metals and chemistry for reagents). build_path = /obj/item/roller/adv sort_string = "MBBAF" -/datum/design/item/medical/enhanced_analyzer - name = "enhanced health analyzer" +/datum/design/item/medical/improved_analyzer + name = "improved health analyzer" desc = "A prototype version of the regular health analyzer, able to distinguish the location of more serious injuries as well as accurately determine radiation levels." - id = "advanced_analyzer" + id = "improved_analyzer" req_tech = list(TECH_MAGNET = 5, TECH_BIO = 6) materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 1500) - build_path = /obj/item/device/healthanalyzer/advanced + build_path = /obj/item/device/healthanalyzer/improved sort_string = "MBBAG" /datum/design/item/implant diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index a6f6b89069..6872ffba6d 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -258,7 +258,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, qdel(S) linked_destroy.icon_state = "d_analyzer" else - if(!(I in linked_destroy.component_parts)) + if(I != linked_destroy.circuit && !(I in linked_destroy.component_parts)) qdel(I) linked_destroy.icon_state = "d_analyzer" diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index f1988ee8c6..1b8f2def84 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -104,7 +104,7 @@ //see if we can connect to a power net. var/datum/powernet/PN - var/turf/T = src.loc + var/turf/T = get_turf(src) var/obj/structure/cable/C = T.get_cable_node() if (C) PN = C.powernet diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 49fe150c4e..d54a4aff14 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -73,7 +73,7 @@ return var/is_organ_damaged = 0 for(var/obj/item/organ/I in affected.internal_organs) - if(I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) is_organ_damaged = 1 break return ..() && is_organ_damaged @@ -91,7 +91,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ "You start treating damage to [target]'s [I.name] with [tool_name]." ) @@ -111,11 +111,12 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] treats damage to [target]'s [I.name] with [tool_name].", \ "You treat damage to [target]'s [I.name] with [tool_name]." ) I.damage = 0 + I.status = 0 if(I.organ_tag == O_EYES) target.sdisabilities &= ~BLIND if(I.organ_tag == O_LUNGS) diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index 8978305ec2..4741038cf4 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -10,6 +10,7 @@ var/list/ventcrawl_machinery = list( /obj/item/weapon/holder, /obj/machinery/camera, /mob/living/simple_animal/borer, + /obj/screen ) /mob/living/var/list/icon/pipes_shown = list() @@ -41,18 +42,21 @@ var/list/ventcrawl_machinery = list( return FALSE . = ..() -/mob/living/proc/is_allowed_vent_crawl_item(var/obj/item/carried_item) +/mob/living/proc/is_allowed_vent_crawl_item(var/obj/carried_item) + //Ability master easy test for allowed (cheaper than istype) if(carried_item == ability_master) return 1 - var/list/allowed = list() - for(var/type in can_enter_vent_with) - var/list/types = typesof(type) - allowed += types + //Try to find it in our allowed list (istype includes subtypes) + var/listed = FALSE + for(var/test_type in can_enter_vent_with) + if(istype(carried_item,test_type)) + listed = TRUE + break - if(carried_item.type in allowed) - if(get_inventory_slot(carried_item) == 0) - return 1 + //Only allow it if it's "IN" the mob, not equipped on/being held + if(listed && !get_inventory_slot(carried_item)) + return 1 /mob/living/carbon/is_allowed_vent_crawl_item(var/obj/item/carried_item) if(carried_item in internal_organs) diff --git a/code/modules/xenobio2/mob/slime/slime.dm b/code/modules/xenobio2/mob/slime/slime.dm index 48f5ce5756..44a1246e1d 100644 --- a/code/modules/xenobio2/mob/slime/slime.dm +++ b/code/modules/xenobio2/mob/slime/slime.dm @@ -22,7 +22,7 @@ Slime definitions, Life and New live here. var/shiny = 0 move_to_delay = 17 //Slimes shouldn't be able to go faster than humans. default_chems = list("slimejelly" = 5) - attacktext = "absorbed some of" + attacktext = list("absorbed some of") response_help = "pats" response_disarm = "tries to stop" response_harm = "hits" diff --git a/code/modules/xenobio2/mob/xeno.dm b/code/modules/xenobio2/mob/xeno.dm index 979782e9bd..9a854e9d8e 100644 --- a/code/modules/xenobio2/mob/xeno.dm +++ b/code/modules/xenobio2/mob/xeno.dm @@ -12,7 +12,7 @@ Also includes Life and New desc = "Something's broken, yell at someone." melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "hit" + attacktext = list("hit") attack_sound = null friendly = "touches" environment_smash = 0 diff --git a/html/changelog.html b/html/changelog.html index c6a3dd049d..7f0da511fd 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,49 @@ -->
+

22 February 2018

+

Anewbe updated:

+
    +
  • Added Warden and HoS helmets.
  • +
  • Clothing items must be click+dragged to be unequipped. A lot of them already had this, but the system is now standardized.
  • +
  • Accessories now apply slowdown to what they're attached to.
  • +
  • Certain items, notably Technomancer spells, no longer show up when you examine the mob wearing them.
  • +
  • Flashbangs confuse, instead of stunning.
  • +
+

Atermonera updated:

+
    +
  • GPS units are generally more useful, providing both coordinate locations and, so long as you're on the same Z level, direction with x-y component distances, to 1m accuracy
  • +
  • Added a halogen counter tool, functions as the PDA function.
  • +
  • Analyzers can now analyze gas containers, in addition to providing atmosphere readouts, as the PDA gas scanner function.
  • +
  • Added umbrellas.
  • +
+

battlefieldCommander updated:

+
    +
  • Added fireplaces which operate similarly to bonfires.
  • +
  • Fixed an oversight that allowed for an in-between state in bonfires where the fire would mysteriously go out after adding wood.
  • +
  • Added blue sifwood floor tiles.
  • +
  • Fixed blue carpet, now known as teal carpet
  • +
  • Added the ability to dig up tree stumps with a shovel.
  • +
+ +

21 February 2018

+

Anewbe updated:

+
    +
  • Headsets for jobs that spend a lot of time planetside can now function as local radios when comms are down.
  • +
  • Most headsets now have on-mob sprites.
  • +
  • Added a Planetside Gun Permit item, specifying permission to possess a firearm on the planet's surface. Explorers should spawn with these by default, and a further two can be found in their gun locker.
  • +
  • Prometheans now react to water. Being soaked will stop their regen and deal minor toxin damage. Drinking or being injected with water will deal slightly more toxin damage.
  • +
  • Suit Coolers now properly cool FBPs in slightly burning rooms. If it gets too hot for your suit, you're still dead.
  • +
+

Leshana updated:

+
    +
  • Makes electrochromatic glass buildable and programmable in game. Use cable and multitool.
  • +
+

Woodrat updated:

+
    +
  • Additions of 6 new POIs for the cave area.
  • +
+

17 February 2018

Anewbe updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index db9c91a074..00e12a4c75 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -3900,3 +3900,45 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Added packed snow brick material. Craft it using snow piles. - recadd: Added snow girders and igloo walls. Craft them using snow bricks. - rscadd: Added various snowmen. Craft them using snow piles. Punch 'em to destroy. +2018-02-21: + Anewbe: + - rscadd: Headsets for jobs that spend a lot of time planetside can now function + as local radios when comms are down. + - rscadd: Most headsets now have on-mob sprites. + - rscadd: Added a Planetside Gun Permit item, specifying permission to possess a + firearm on the planet's surface. Explorers should spawn with these by default, + and a further two can be found in their gun locker. + - rscadd: Prometheans now react to water. Being soaked will stop their regen and + deal minor toxin damage. Drinking or being injected with water will deal slightly + more toxin damage. + - bugfix: Suit Coolers now properly cool FBPs in slightly burning rooms. If it gets + too hot for your suit, you're still dead. + Leshana: + - rscadd: Makes electrochromatic glass buildable and programmable in game. Use + cable and multitool. + Woodrat: + - rscadd: Additions of 6 new POIs for the cave area. +2018-02-22: + Anewbe: + - rscadd: Added Warden and HoS helmets. + - tweak: Clothing items must be click+dragged to be unequipped. A lot of them already + had this, but the system is now standardized. + - tweak: Accessories now apply slowdown to what they're attached to. + - tweak: Certain items, notably Technomancer spells, no longer show up when you + examine the mob wearing them. + - tweak: Flashbangs confuse, instead of stunning. + Atermonera: + - tweak: GPS units are generally more useful, providing both coordinate locations + and, so long as you're on the same Z level, direction with x-y component distances, + to 1m accuracy + - rscadd: Added a halogen counter tool, functions as the PDA function. + - tweak: Analyzers can now analyze gas containers, in addition to providing atmosphere + readouts, as the PDA gas scanner function. + - rscadd: Added umbrellas. + battlefieldCommander: + - rscadd: Added fireplaces which operate similarly to bonfires. + - bugfix: Fixed an oversight that allowed for an in-between state in bonfires where + the fire would mysteriously go out after adding wood. + - rscadd: Added blue sifwood floor tiles. + - bugfix: Fixed blue carpet, now known as teal carpet + - rscadd: Added the ability to dig up tree stumps with a shovel. diff --git a/html/changelogs/Anewbe - Suit Coolers.yml b/html/changelogs/Anewbe - Suit Coolers.yml deleted file mode 100644 index 005f4a3550..0000000000 --- a/html/changelogs/Anewbe - Suit Coolers.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -################################# - -# Your name. -author: Anewbe - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Suit Coolers now properly cool FBPs in slightly burning rooms. If it gets too hot for your suit, you're still dead." diff --git a/html/changelogs/Leshana - tesla-grounding.yml b/html/changelogs/Leshana - tesla-grounding.yml new file mode 100644 index 0000000000..ee246f5f27 --- /dev/null +++ b/html/changelogs/Leshana - tesla-grounding.yml @@ -0,0 +1,4 @@ +author: Leshana +delete-after: True +changes: + - tweak: "Grounding rods act intuitively, only having an expanded lighting catch area when anchored." diff --git a/icons/effects/128x48.dmi b/icons/effects/128x48.dmi index 71038ffdbf..b5dcca7e35 100644 Binary files a/icons/effects/128x48.dmi and b/icons/effects/128x48.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index d9240628e5..90cc743bcf 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index cd30b3a8cc..415c4cd5a8 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index 88caed94c8..cf2530e219 100644 Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi index 8694f1b16f..ebc3bb066c 100644 Binary files a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi and b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi differ diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index cc203abe61..18add13d5b 100644 Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ diff --git a/icons/mob/items/lefthand_melee.dmi b/icons/mob/items/lefthand_melee.dmi index 0f08605207..9c5b5d72ee 100644 Binary files a/icons/mob/items/lefthand_melee.dmi and b/icons/mob/items/lefthand_melee.dmi differ diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index 989fd341e2..3e96e58040 100644 Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ diff --git a/icons/mob/items/righthand_melee.dmi b/icons/mob/items/righthand_melee.dmi index c1313715a6..85e99773f7 100644 Binary files a/icons/mob/items/righthand_melee.dmi and b/icons/mob/items/righthand_melee.dmi differ diff --git a/icons/mob/modular_armor.dmi b/icons/mob/modular_armor.dmi index 2c7d8ea841..f8e4fe7738 100644 Binary files a/icons/mob/modular_armor.dmi and b/icons/mob/modular_armor.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 48df908aef..21fab3ba63 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index fa22bde1c4..b90b3bb18d 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index 89ef66aa8c..10bffa0857 100644 Binary files a/icons/obj/clothing/modular_armor.dmi and b/icons/obj/clothing/modular_armor.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 06490a3cb4..45fc51fb8e 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index b8dc87695a..add3c315a6 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index f25ca29526..566c39a518 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index d79ceab8c3..230f4f8821 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/turf/flooring/carpet.dmi b/icons/turf/flooring/carpet.dmi index 9db7acc72f..395cc70901 100644 Binary files a/icons/turf/flooring/carpet.dmi and b/icons/turf/flooring/carpet.dmi differ diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index 78ca4805e8..eb91333673 100644 Binary files a/icons/turf/flooring/wood.dmi and b/icons/turf/flooring/wood.dmi differ diff --git a/maps/southern_cross/items/headset_sc.dm b/maps/southern_cross/items/headset_sc.dm index 75936ecb01..515377657d 100644 --- a/maps/southern_cross/items/headset_sc.dm +++ b/maps/southern_cross/items/headset_sc.dm @@ -2,7 +2,6 @@ name = "pilot's headset" desc = "A headset used by pilots, has access to supply and explorer channels." icon_state = "pilot_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/pilot adhoc_fallback = TRUE //VOREStation Edit @@ -20,7 +19,7 @@ name = "explorer's headset" desc = "Headset used by explorers for exploring. Access to the explorer channel." icon_state = "exp_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/explorer adhoc_fallback = TRUE //VOREStation Edit @@ -33,7 +32,7 @@ name = "sar radio headset" desc = "A headset for search and rescue." icon_state = "sar_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/sar adhoc_fallback = TRUE //VOREStation Edit diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm index d3ec9f553a..316c9d434c 100644 --- a/maps/southern_cross/job/outfits.dm +++ b/maps/southern_cross/job/outfits.dm @@ -17,6 +17,12 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_type = /obj/item/weapon/card/id/civilian/explorer id_pda_assignment = "Explorer" flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1) + +/decl/hierarchy/outfit/job/explorer2/post_equip(mob/living/carbon/human/H) + ..() + for(var/obj/item/clothing/accessory/permit/gun/planetside/permit in H.back.contents) + permit.set_name(H.real_name) /decl/hierarchy/outfit/job/explorer2/technician name = OUTFIT_JOB_NAME("Explorer Technician") diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 3fd50cf126..9fba771112 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -950,9 +950,9 @@ "asn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "aso" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "asp" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"asq" = (/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"asr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"ass" = (/turf/simulated/wall/r_wall,/area/medical/first_aid_station/firstdeck) +"asq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/maintenance/substation/firstdeck) +"asr" = (/turf/simulated/wall,/area/tcomm/chamber) +"ass" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "ast" = (/turf/unsimulated/mask,/area/hallway/primary/firstdeck/elevator) "asu" = (/turf/simulated/wall/r_wall,/area/tcomm/tcomstorage) "asv" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1008,22 +1008,22 @@ "att" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) -"atw" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 4},/obj/structure/closet/medical_wall{pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) "aty" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "atD" = (/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atE" = (/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"atF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/firstdeck) -"atG" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atH" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atI" = (/obj/machinery/light{dir = 1},/obj/structure/bed/roller,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atJ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/bodybag,/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"atK" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/medical/first_aid_station/firstdeck) -"atL" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/medical/first_aid_station/firstdeck) +"atE" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/sleep_console{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atF" = (/obj/machinery/light{dir = 1},/obj/structure/bed/roller,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atG" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atH" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"atI" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"atJ" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/tcomm/tcomstorage) "atN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcomm/tcomstorage) "atO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1074,19 +1074,19 @@ "auH" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auJ" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/port) -"auK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"auK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"auL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) "auO" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"auP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auQ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19,25,27,28,35)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auT" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auU" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/window/westleft{name = "Medical Staff Only"; req_one_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auV" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"auW" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) +"auP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auQ" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auS" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auT" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auU" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"auV" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"auW" = (/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auX" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor,/area/tcomm/tcomstorage) "auY" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/tcomm/tcomstorage) "auZ" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1135,7 +1135,7 @@ "avQ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/brown/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avU" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/brown/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avV" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) @@ -1147,13 +1147,13 @@ "awc" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"awf" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/paleblue/bordercorner2,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"awg" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/glass,/obj/item/bodybag/cryobag,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awi" = (/obj/structure/table/glass,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Deck One"; dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/roller,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awk" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"awl" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) +"awf" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/corner/paleblue/bordercorner2,/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"awg" = (/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/random/firstaid,/obj/random/medical/lite,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awh" = (/obj/structure/table/glass,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/glass,/obj/item/bodybag/cryobag,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/item/bodybag/cryobag,/obj/item/bodybag,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awj" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awk" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Deck One"; dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/roller,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) +"awl" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "awm" = (/turf/simulated/floor,/area/tcomm/tcomstorage) "awn" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomm/tcomstorage) "awo" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1203,8 +1203,8 @@ "axg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "axh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/borderfloor/corner2,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2,/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "axi" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"axj" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) -"axk" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/first_aid_station/firstdeck) +"axj" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) +"axk" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) "axl" = (/obj/turbolift_map_holder/southern_cross/center,/turf/unsimulated/mask,/area/hallway/primary/firstdeck/elevator) "axm" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomm/tcomstorage) "axn" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1261,8 +1261,8 @@ "aym" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "ayn" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/machinery/door/window/southleft,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "ayo" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/machinery/door/window/southright,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"ayp" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) -"ayq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) +"ayp" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) +"ayq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) "ayr" = (/turf/simulated/wall/r_wall,/area/hallway/primary/firstdeck/elevator) "ays" = (/obj/effect/floor_decal/borderfloorblack{dir = 9},/obj/effect/floor_decal/industrial/danger{dir = 9},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) "ayt" = (/obj/effect/floor_decal/borderfloorblack{dir = 1},/obj/effect/floor_decal/industrial/danger{dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) @@ -1307,10 +1307,10 @@ "azg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "azh" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "azi" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva/pilot) -"azj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azl" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"azm" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"azj" = (/obj/machinery/status_display,/turf/simulated/wall,/area/ai_monitored/storage/eva/pilot) +"azk" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva/pilot) +"azl" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva/pilot) +"azm" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/elevator) "azn" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "azo" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "azp" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) @@ -1377,18 +1377,18 @@ "aAy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "aAz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) "aAA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aAB" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAE" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAF" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) -"aAG" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva/pilot) +"aAB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAD" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAF" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Pilot"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAH" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAI" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAJ" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) -"aAL" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) -"aAM" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) +"aAL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aAM" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aAN" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/tiled,/area/tcomm/entrance) "aAO" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomm/entrance) "aAP" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/tcomm/entrance) @@ -1438,11 +1438,11 @@ "aBH" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Center Six"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) "aBI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) "aBJ" = (/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aBK" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"aBL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "CIV - Auxiliary EVA"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"aBM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"aBK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aBL" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) +"aBM" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/elevator) "aBN" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/starboard) -"aBO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva/pilot) +"aBO" = (/obj/effect/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/hallway/primary/firstdeck/elevator) "aBP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced,/obj/machinery/vending/snack,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aBQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/vending/fitness,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aBR" = (/obj/machinery/vending/cigarette,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) @@ -1497,9 +1497,9 @@ "aCO" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "crglockdown"; name = "Cargo Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/firstdeck/aftport) "aCP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/firstdeck/aftport) "aCQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aCR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/apcenter) +"aCR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "CIV - Auxiliary EVA"; dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aCS" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/apcenter) -"aCT" = (/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva/pilot) +"aCT" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aCU" = (/obj/structure/stairs/north,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aCV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/lapvend,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) "aCW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/item/device/paicard,/obj/item/clothing/head/soft/grey,/turf/simulated/floor/tiled/dark,/area/hallway/primary/firstdeck/elevator) @@ -1945,7 +1945,7 @@ "aLu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel_dirty,/area/engineering/auxiliary_engineering) "aLv" = (/obj/random/obstruction,/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/as_emergency) "aLw" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/as_emergency) -"aLx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/closet/crate/secure/gear{name = "parachute crate"; req_access = list(67)},/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) +"aLx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/closet/crate/secure/gear{name = "parachute crate"; req_access = list(67)},/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/obj/item/weapon/storage/backpack/parachute,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) "aLy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hangar/two) "aLz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled/monotile,/area/hangar/two) "aLA" = (/obj/machinery/door/airlock/glass_centcom{req_one_access = list(67)},/turf/simulated/shuttle/floor/black,/area/shuttle/shuttle2/start) @@ -2220,8 +2220,8 @@ "aQJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/aft_emergency) "aQK" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/storage/emergency_storage/firstdeck/aft_emergency) "aQL" = (/turf/simulated/wall,/area/hallway/primary/firstdeck/aft) -"aQM" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) -"aQN" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Aft Hallway Four"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"aQM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/closet/secure_closet/pilot,/turf/simulated/floor/tiled/techmaint,/area/hallway/primary/firstdeck/elevator) +"aQN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/firstdeck/elevator) "aQO" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) "aQP" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) "aQQ" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/monotile,/area/security/checkpoint3) @@ -3582,8 +3582,8 @@ "bqT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) "bqU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/secondary/eva_hallway) "bqV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/brig) -"bqW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bqX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bqW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/elevator) +"bqX" = (/obj/effect/floor_decal/borderfloor{dir = 10},/obj/effect/floor_decal/corner/green/border{dir = 10},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) "bqY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bqZ" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bra" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) @@ -3655,10 +3655,10 @@ "bso" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/security/lobby) "bsp" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/secondary/eva_hallway) "bsq" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/security/lobby) -"bsr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bss" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bst" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bsu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bsr" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/green/border{dir = 8},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_x = -31; pixel_y = 0},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"bss" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Aft Hallway Four"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/obj/structure/closet/medical_wall{pixel_x = 31; pixel_y = 0},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/aft) +"bst" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bsu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bsv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Fore Starboard Hallway One"; dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bsw" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/security/lobby) "bsx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) @@ -3711,10 +3711,10 @@ "bts" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "btt" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/maintenance/security_port) "btu" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"btv" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall/r_wall,/area/hallway/secondary/eva_hallway) -"btw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"btv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"btw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "btx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) -"bty" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bty" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "btz" = (/turf/simulated/wall,/area/janitor) "btA" = (/obj/structure/noticeboard{pixel_x = -32},/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northleft{name = "Janitorial Desk"},/obj/machinery/door/window/southright{name = "Janitorial Desk"; req_access = list(26)},/obj/machinery/door/blast/shutters{dir = 1; id = "janitor_blast"; layer = 3.1; name = "Janitorial Shutters"},/turf/simulated/floor/tiled,/area/janitor) "btB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access = list(26)},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/janitor) @@ -3768,9 +3768,9 @@ "bux" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "buy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/firstdeck/gym) "buz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Fore Hallway Two"; dir = 8},/obj/machinery/light{dir = 4},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/red/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"buA" = (/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/fore) -"buB" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/fore) -"buC" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19)},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"buA" = (/obj/structure/table/bench/steel,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"buB" = (/obj/structure/table/bench/steel,/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"buC" = (/obj/structure/table/bench/steel,/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "buD" = (/obj/item/weapon/stool/padded,/obj/effect/landmark/start{name = "Janitor"},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/purple/border{dir = 9},/turf/simulated/floor/tiled,/area/janitor) "buE" = (/obj/machinery/button/remote/blast_door{id = "janitor_blast"; name = "Privacy Shutters"; pixel_x = 0; pixel_y = 26},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/purple/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/janitor) "buF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) @@ -3831,9 +3831,9 @@ "bvI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/blue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bvJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) "bvK" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/red/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"bvL" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = -25; pixel_y = 0},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bvL" = (/obj/structure/sign/directions/cryo{pixel_y = -10},/turf/simulated/wall,/area/maintenance/research) "bvM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) -"bvN" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bvN" = (/obj/structure/sign/poster,/turf/simulated/wall,/area/maintenance/research) "bvO" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/powercell,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/maintenance/engineering) "bvP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/janitor) "bvQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/janitor) @@ -3901,9 +3901,9 @@ "bxa" = (/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/fore) "bxb" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/blue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bxc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/monotile,/area/ai_monitored/storage/eva) -"bxd" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/machinery/newscaster{pixel_x = -28; pixel_y = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"bxe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"bxf" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bxd" = (/obj/random/contraband,/turf/simulated/floor/plating,/area/maintenance/research) +"bxe" = (/obj/item/frame,/turf/simulated/floor/plating,/area/maintenance/research) +"bxf" = (/obj/structure/frame{anchored = 1},/turf/simulated/floor/plating,/area/maintenance/research) "bxg" = (/obj/structure/closet/l3closet/janitor,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled,/area/janitor) "bxh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/janitor) "bxi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) @@ -3956,9 +3956,9 @@ "byd" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "bye" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) "byf" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/red/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fore) -"byg" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Fore"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"byh" = (/obj/machinery/sleep_console{dir = 4},/obj/machinery/light,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) -"byi" = (/obj/machinery/sleeper{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"byg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"byh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"byi" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor,/area/hallway/primary/seconddeck/port) "byj" = (/obj/structure/closet/jcloset,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/soap/nanotrasen,/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/purple/border{dir = 8},/turf/simulated/floor/tiled,/area/janitor) "byk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/janitor) "byl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/janitor) @@ -4578,7 +4578,7 @@ "bKb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) "bKc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) "bKd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/engineering/locker_room) -"bKe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/eva_hallway) +"bKe" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/random/firstaid,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "bKf" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/effect/floor_decal/spline/plain{dir = 8},/turf/simulated/floor/tiled/yellow,/area/engineering/locker_room) "bKg" = (/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/maintenance/engineering) "bKh" = (/turf/simulated/floor/tiled/yellow,/area/maintenance/engineering) @@ -4922,7 +4922,7 @@ "bQH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/tiled/dark,/area/engineering/workshop) "bQI" = (/obj/machinery/papershredder,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/corner/blue/border{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQJ" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) -"bQK" = (/obj/structure/sign/directions/cryo{pixel_y = -10},/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/fore) +"bQK" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 1},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "bQL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQM" = (/obj/machinery/disposal,/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/borderfloor{dir = 5},/obj/effect/floor_decal/corner/blue/border{dir = 5},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/chief) "bQN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled,/area/engineering/hallway/atmos_hallway) @@ -4951,7 +4951,7 @@ "bRk" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/fscenter) "bRl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fscenter) "bRm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/fore) -"bRn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/fore) +"bRn" = (/obj/machinery/door/airlock/glass_medical{name = "Triage Station"; req_one_access = list(5)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/aft) "bRo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/fore) "bRp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/research) "bRq" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/random/cigarettes,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tool,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/research) @@ -6013,8 +6013,8 @@ "clG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"clJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"clK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"clJ" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Civilian"; dir = 1},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) +"clK" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/obj/structure/closet/medical_wall{pixel_x = 0; pixel_y = 31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/bridge) "clL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals4,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) "clM" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/seconddeck/port) "clN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/fpcenter) @@ -6103,10 +6103,7 @@ "cns" = (/turf/simulated/wall,/area/ai_monitored/storage/emergency/eva) "cnt" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Emergency EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/ai_monitored/storage/emergency/eva) "cnu" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Emergency EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/steel_grid,/area/ai_monitored/storage/emergency/eva) -"cnv" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/ai_monitored/storage/emergency/eva) -"cnw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/obj/effect/floor_decal/borderfloor/corner2{dir = 8},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"cnx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) -"cny" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 6},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/port) +"cnv" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = 31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/bridge) "cnz" = (/turf/simulated/wall,/area/hallway/primary/seconddeck/port) "cnA" = (/turf/simulated/wall,/area/maintenance/bar) "cnB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(12,25,27,28,35)},/turf/simulated/floor/plating,/area/maintenance/bar) @@ -6178,9 +6175,6 @@ "coP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "coQ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "coR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"coS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/port) -"coT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/port) -"coU" = (/turf/simulated/wall,/area/medical/first_aid_station/seconddeck/port) "coV" = (/obj/structure/closet/emcloset,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "coW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "coX" = (/turf/simulated/wall/r_wall,/area/hallway/primary/seconddeck/apcenter) @@ -6279,9 +6273,6 @@ "cqM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cqN" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cqO" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"cqP" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cqQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cqR" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "cqS" = (/obj/machinery/light/small{dir = 8},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "cqT" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) "cqU" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/apcenter) @@ -6372,9 +6363,6 @@ "csB" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced,/obj/machinery/door/window/eastright,/obj/item/clothing/suit/space,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) "csC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "csD" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) -"csE" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/borderfloorwhite{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"csF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"csG" = (/obj/structure/bed/chair/office/light{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 4},/obj/effect/floor_decal/corner/paleblue/border{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "csH" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "csI" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/apcenter) "csJ" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) @@ -6454,9 +6442,6 @@ "cuf" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cug" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva) "cuh" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/emergency/eva) -"cui" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cuj" = (/obj/machinery/sleep_console,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) -"cuk" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Port"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 6},/obj/effect/floor_decal/corner/paleblue/border{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/port) "cul" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bar) "cum" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Center Six"; dir = 4},/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) "cun" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/apcenter) @@ -6662,7 +6647,6 @@ "cyf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/command{c_tag = "COM - HoP's Office"; dir = 1},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/heads/sc/hop) "cyg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/sc/hop) "cyh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/paleblue/border{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter) -"cyi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/seconddeck/port) "cyj" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/ascenter) "cyk" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/ascenter) "cyl" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/turf/simulated/floor/grass,/area/hallway/primary/seconddeck/ascenter) @@ -8406,10 +8390,8 @@ "dfH" = (/turf/simulated/wall/r_wall,/area/holodeck_control) "dfI" = (/obj/structure/table/glass,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 28},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloorwhite{dir = 9},/obj/effect/floor_decal/corner/paleblue/border{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfJ" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/extinguisher_cabinet{pixel_y = 30},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dfK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfL" = (/obj/structure/bed/roller,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloorwhite{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dfM" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/medical/first_aid_station/seconddeck/aft) -"dfN" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/paleblue/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dfO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dfP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/chapel/main) "dfQ" = (/obj/structure/table/woodentable,/obj/structure/flora/pottedplant/stoutbush{pixel_y = 8},/turf/simulated/floor/tiled/dark,/area/chapel/main) @@ -8435,7 +8417,6 @@ "dgk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgl" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgm" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dgn" = (/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"; req_one_access = list(5,12,19,25,27,28,35)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/steel_grid,/area/medical/first_aid_station/seconddeck/aft) "dgo" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgp" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) @@ -8461,7 +8442,6 @@ "dgK" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/borderfloorwhite{dir = 10},/obj/effect/floor_decal/corner/paleblue/border{dir = 10},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgL" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgM" = (/obj/item/weapon/stool/padded,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) -"dgN" = (/obj/structure/table/rack,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Civilian"; dir = 1},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/seconddeck/aft) "dgO" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/paleblue/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) "dgQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/green/border{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/aft) @@ -10163,9 +10143,7 @@ "dNw" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room) "dNx" = (/turf/simulated/wall/r_wall,/area/bridge) "dNy" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) -"dNz" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dNA" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/white/border,/obj/machinery/atm{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway) -"dNB" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dNC" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge) "dND" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd) "dNE" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd) @@ -10192,7 +10170,6 @@ "dNZ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOa" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Port"; dir = 6},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/secure_closet/guncabinet/sidearm{anchored = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOb" = (/obj/structure/noticeboard{pixel_y = 27},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) -"dOc" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/blue/border{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOd" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 1},/turf/simulated/floor/tiled,/area/bridge) "dOe" = (/obj/structure/cryofeed{dir = 2},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning/cee{tag = "icon-warningcee (NORTH)"; icon_state = "warningcee"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station) "dOf" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/corner/blue/bordercorner{dir = 4},/turf/simulated/floor/tiled,/area/bridge) @@ -10693,16 +10670,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafajUajUaonaooaopaoqaorajUaosaosaotaouaovaowaoxaoyaozaoAaoBaoCaoCaoDaoyaoEaoEaoFaoGaGVaoIaoJaoGaoKafeacJaoLaoMaoNacJaaaaaaaiCaoOaoPaoQamoaoRaoSaoRamoakQampampampampampaoTaoUaoUaoUaoVaoWaoXaoYaoZapaapbakRapcapdapeaiKaaaaaaadcapfafzapgaphapiapjapkaplapmapnapkapvappappapqaprapsapsaptapuaqDapqapwapxapyapzapAapBapBakzapCapDapEapFapGakzakzaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUapHapHaooapIapJapJapKapLapMapNapOapPapQapRaoyaozapSapTaoCaoCaoCaoyapUapUapVapWapXapYapZaoGaqaaqbaqcaqdaqeaqfacJaaaaaaaiBaqgaqhaqiamoaqjaqkaqjamoakQaqlaqmaqnaqoaqpaqqaqraqoaqsaqtaquaqvaqwaqxaqyaqzakRaqAapdaqBaiJaaaaaaadcaqCafzafzafzafzafzaqIaqEaqFaqGaqHarCaqJaqJapqaqKaqLapsaqMapuapuapqaqNaqOaqPaqQaqRaqSaqTaqUaqVaqVaqVaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaqWaooajUajUajUajUajUajUaqXaqYaqYaqYaqZaraarbaoyarcaoCapTardarearfaoyargarhariaoGaIxarkaJyaoGarmarnaroarparqarracJarsarsartaruarvajbalEaqjaqkaqjamoakQakQakQakQakQakQakQakQakQakQakQakRakRakRalOarwarxakRaryarzarAarBarIarIadcarDafzarEarEarEarEapkaJAarGaKtapkarKarJasjapqarLarMarNaqMarOapuapqarParQarRarSarSarSaolakzakzakzakzakzakzakXakYakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspasqasqasrasqasqassassassassastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwatxatyatzatpatAatBatCatDatEatFatGatHatIatJatKatLassastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJauKauLauAauMauAauAauNauOauAauPauQauRauSauTauUauVauWassastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEavEavSavHavTavKavUavVavWavXavYavZawaawbawcawdaweatDawfatFawgawhawiawjawkawlassastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEawwawwawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaxjasqasraxkasqasqasqasqassaxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykaypayqayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhaziazjazkazlazmaziaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafajUajUaAfaAfaAgaAhaAiaAjaAkaAlawTaAmaAmaAmawVaxOaAnaxPaAoaxPaApaAqawVaAraAsaAsaAtaAtaAtaAtaAtaAtaAtaAtaAuaAvaAwaxbaaaaaaaAxaAyaAzaAAaABaACaADaAEaAFaAGaAHaAIaAJaAJaAKaAJaALaAMazvaANaAOaAPaAQaARaASaATazzaAUaAVaAWaAXaaaaaaaxvaAYayBazIaAZaBaaBaaxwaBbaBcaBdaxwapvappappaxBaBeaBfaxBaBgazRaBhaxBaBiaBjaBkaBlaBmaBnaBnakzaBoakXaBpaBqaBrakzakzaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUajUaAfaBsaBsaBsaBsaBtaBtaBsaBsaKraBsaBsaBsaBsaBsaBsaBsaBsaBsaBvaBwaBxaByaAtaBzaBAaBBaBCaBDaBEaAtaxbaBFaBGaxbaaaaaaaAxaBHaBIaBJaziaBKaBLaBMaLxaBOaBPaBQaBRaBSaBTaBUaBVaBWazvaBXaBYaBZaCaaCbaCcaCdazzaCeaCfaCgaAXaaaaaaaxvaChaCiazIaCjaCjaCjaCkaClaClaClaCkaCmaCkaCnaCkaCjaCjaCjaCjaCjaCjaCjayUayUayUayUayUaCoaCoakzakzakzakzakzakzakzaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaCpaCqaCraCsaCtaCuaCvaCwaCxaCtaCyaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCMaCMaCNaAtaCOaCPaxbaxbaaaaaaaAxaCQaCRaCSaCTaCTaykaykaykaykaCUaCVaCWaCXaCYaCZaDaaDbaDcaDdaDeaDfazzaDgaDhazzazzaDiaDjaDkaAXaaaaaaaxvaxvaDlaDmaCjaDnaDoaDpaDpaDpaDpaDqaDraDsaDtaDuaDuaDvaDuaDuaDwaDxaCjaDyaDzaDzaDzaDAaDBaDBaDCaDzaDzaDzaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspalEalEasqalEasrakQakQakQakQastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwassatyatzatpatAatBatCatDatxaziatEatGatFatIatHatJayrastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJatLatKauAauMauAauAauNauOauAauKauPauLauRauQauTauSauUayrastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavEavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaypaykayqazjaykaykaykaykayraxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykazkazlayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhazmaACaABaAEaADazmaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafajUajUaAfaAfaAgaAhaAiaAjaAkaAlawTaAmaAmaAmawVaxOaAnaxPaAoaxPaApaAqawVaAraAsaAsaAtaAtaAtaAtaAtaAtaAtaAtaAuaAvaAwaxbaaaaaaaAxaAyaAzaAAaAFaALaAGaBKaAMaBLaAHaAIaAJaAJaAKaAJaBMaBOazvaANaAOaAPaAQaARaASaATazzaAUaAVaAWaAXaaaaaaaxvaAYayBazIaAZaBaaBaaxwaBbaBcaBdaxwapvappappaxBaBeaBfaxBaBgazRaBhaxBaBiaBjaBkaBlaBmaBnaBnakzaBoakXaBpaBqaBrakzakzaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUajUaAfaBsaBsaBsaBsaBtaBtaBsaBsaKraBsaBsaBsaBsaBsaBsaBsaBsaBsaBvaBwaBxaByaAtaBzaBAaBBaBCaBDaBEaAtaxbaBFaBGaxbaaaaaaaAxaBHaBIaBJazmaCTaCRaQMaLxaQNaBPaBQaBRaBSaBTaBUaBVaBWazvaBXaBYaBZaCaaCbaCcaCdazzaCeaCfaCgaAXaaaaaaaxvaChaCiazIaCjaCjaCjaCkaClaClaClaCkaCmaCkaCnaCkaCjaCjaCjaCjaCjaCjaCjayUayUayUayUayUaCoaCoakzakzakzakzakzakzakzaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaCpaCqaCraCsaCtaCuaCvaCwaCxaCtaCyaCzaCAaCBaCCaCDaCEaCFaCGaCHaCIaCJaCKaCLaCMaCMaCMaCNaAtaCOaCPaxbaxbaaaaaaaAxaCQbqWaCSayrayraEiaEiaEiaEiaCUaCVaCWaCXaCYaCZaDaaDbaDcaDdaDeaDfazzaDgaDhazzazzaDiaDjaDkaAXaaaaaaaxvaxvaDlaDmaCjaDnaDoaDpaDpaDpaDpaDqaDraDsaDtaDuaDuaDvaDuaDuaDwaDxaCjaDyaDzaDzaDzaDAaDBaDBaDCaDzaDzaDzaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaDFaDGaDHaDHaDIaDJaDJaDKaDLaDMaDNaDNaDOaDPaDQaDRaDSaDTaDUaDVaDWaDXaDYaDZaCMaCMaEaaEbaCOaCPaEcaaaaaaaaaazeaEdaEeaEfaEgayrayraEhaEhaEiaEjaEkaBUaBUaBUaElaBVaEmaEnaEoaEpaEqazzazzazzazzaEraEsaEtaEuazGaaaaaaaaaaEvaDlaEwaCjaExaEyaEzaEAaEAaEAaEAaEAaEAaEAaEAaEAaEAaEAaEBaECaEDaCjaEEaEFaEGaEHaEIaEJaEKaELaEMaENaEOaDzaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaEPaEQaERaERaERaERaERaEQaESaETaDPaDPaEUaDPaDPaEVaEWaEXaEYaEZaFaaFbaCMaFcaFdaFeaFfaAtaCOaCPaEcaaaaaaaaaazeazeaFgaEfaEfaFhaEiayraEhaEiaFiaFjaFkaFlaBUaFmaFnaFoazvaFpaFqaFqaFrazzaFsaFtaFuaEsaFvazGazGaaaaaaaaaaEvaDlaFwaCjaDnaFxaFyaFzaFAaFBaFzaFzaFzaFzaFzaFAaFBaFzaFCaFxaNgaCjaEEaEFaFEaEKaEKaEKaEKaEKaEKaEKaFFaFGaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawTakAaBtaDEaEPaERaERaERaERaERaERaERaESaFHaDPaDPaEUaDPaDPaFIaBxaFJaFKaFLaFMaFNaFOaFPaFQaFRaFSaAtaxbaFTaEcaaaaaaaaaaaaaAxaEfaEfaEfaEfaFUayrayrayraFVayraFWaFXaFYaBUaGaaGbaGcaGdaGeaGfazvazvaGgaGhaGiaGjaFuaAXaaaaaaaaaaaaaEvaDlaGkaCjbNQaFxaFyaFzaGmaGmaGnaFzaFzaFzaGnaGmaGmaFzaFCaFxcBpaCjaEEaEFaGpaGqaGraGsaGtaGuaGvaGwaEOaDzaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10723,8 +10700,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaEcaEcayfaPgaLKaMGaMGaPhaMGaMGaPiaMGaMGaPjaMGaMGaPkaPlaOTaPmaPnaPoaPoaPpaPoaPoaPoaPoaPoaPqaPoaPoaKMaPraPsaEvaEvaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaEcaPtaPuaPvaPwaPxaPxaPyaPzaPAaPBaPxaPCaPxaPDaPEaPFaPGaPHaPEaPIaPJaPKaPLaPMaPEaPNaPOaPPaPPaPQbjEaPSaPTaEvaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaagaadaadaaTaagaagaadaadaafaagaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaabaaaaaaaaaaLaayeayeaxbaPUaPVaPVaPWaPXaPYaPZaQaaQbaPVaQcaQdaQeaQfaQgaQdaQhaQdaQiaQjaQkaQlaQmaQnaQdaQdaQoaxvayBayBaOCaaaaaaaaaaabaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaadaadaadaafaaeaagaadaadaadaafaaaaafaagaadaadaadaadaafaaeaaaaLaaLaaLaaLaaKJaKJaKJaQpaQqaQraQsaQtaQuaQtaQtaJqaJraQvaJsaJtaQwaQwaQwaQwaQxaQyaQzaQAaKJaKJaKJaOCaOCaOCaOCaafaafaadaadaadaadaJiaaaaadaafaadaadaadaadaadaadaadaaaaaeaJiaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaQGaQHaQFaQIaQJaQKaQtaQLaQMaQvaQNaQLaQwaQOaQPaQQaQxaQRaQSaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaadaadaadaafaaeaagaadaadaadaafaaaaafaagaadaadaadaadaafaaeaaaaLaaLaaLaaLaaKJaKJaKJaQpaQqaQraQsaQtaQuaQtaQtbqXaJraQvaJsaJtaQwaQwaQwaQwaQxaQyaQzaQAaKJaKJaKJaOCaOCaOCaOCaafaafaadaadaadaadaJiaaaaadaafaadaadaadaadaadaadaadaaaaaeaJiaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaQGaQHaQFaQIaQJaQKaQtaQLbsraQvbssaQLaQwaQOaQPaQQaQxaQRaQSaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaQYaaaaaaaaaaaaaaaaQYaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBaQZaRaaRbaRcaRdaReaRfaRgaQFaRhaRiaRjaRkaQLaRlaRmaJPaJNaQwaRnaQOaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaQXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaQYaQYaQYaQYaQYaQYaQYaaaaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBaQCaQCaQDaQCaQEaQFaRyaRzaQsaQtaQtaQtaQtaQLaRAaRBaRCaRDaREaRFaRGaRHaQxaRIaRJaQTaQUaQVaQWaQVaQVaQXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQYaQYaQYaQYaaaaaaaQYaQYaQYaQYaQYaQYaQYaQYaQYaaaaaaaQYaQYaQYaQYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRKaQsaQsaQsaQsaQsaQsaRLaRMaQsaRNaROcOJaRQaRRaRSaRTaRUaRVaRWaRXaRYaRZaQxaSaaSbaQxaQxaQxaQxaQxaQxaScaaaaaaaaaaSdaaaaaaaaaaSdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10924,15 +10901,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibnibnjbnkbnlbnmbnnbnobnpbnqbnobnrbnsbntbnrbnubnvbnwbnxbltblBbnybnzbnAbjpaaaaaaaaaaafaaaaaaaaaaabaaaaaaaaabnBbnCbnDbkFbnEbmDbkCbnFbthbnGbnHbnIbnJbjIbnKbjIbnLbnMbicbifbifbifbnNbnObnPbifbnQbifbiZbnRbnSbnTbnUbnVbjebnWbnXblhbnYblebnZbljboabobbocbodboebnhaaaaaaaaaaabaagaaaaaaaaaaaaaaaaafaaTaadaadaadaadaadaagaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibofbogbohboibojbokbolbomblwbonbooboobopbmmboqborblwbosbotboubovbowboxboyboyboyboyboyaaaaaaaaaaaaaaaaaaaaabnBbnCbozboAboBboCbkCbicboDboEboFboGboHboIboJboKbIBboMbicboNbifboOboPboQboRboOboSbifboTbiZbiZbiZbiZbiZbjeboUbtqboWboXboYboZbljbpabpbbpcbpdbpdbnhaaaaaaaaaaaaaadaaaaaaaaaaaaaafaafaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhaafaafaafaafbfibfibfibfiaaabpebpfbpgbltblubphbpibpjbpkbplbpmbpnbpobplbppbovblAbpqbprboybpsbptbpuboybpvbpwbpwaaaaaabpxbkBbpybpzbpAbpBbpCbpDbpDbpDbpDbpDbpDbpEbpDbpDbpDbpDbpDbpDbpDbpDbpDbpFbpGbpHbpHbpIbpJbpKbpKbpLbpMbpNbpObpPbljbpQbpRbpSbpQbpQbljbljbpTbpUbpVbpWbpXbpYbpZaafaafaafaadaaaaaaaaaaafaafaaaaaaaafaaaaaaaafaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabfibqabqbbnkbnlbnmbqcbnobqdbqebnxbqfblsblAblBblsbqgbmobqhbmobqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbpwbpwaaabqtbqubqvbqwbqxbqybttbqAbqBbqCbqDbqEbqFbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRdwybuFbqUbtxbqWbqXbqYbqZbrabrbbrcbrdbrebuKbrgbrhbribrjbrkbvJbrmbrnbrobrpbrqbrraaaaaaaaaaaTaadaadaadaagaabaaaaaaaafaaaaaaaafaaaaafaafbrsaafaafaaaaaaaaaaaeaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaabfibrtbrubohboibrvbrwblAbrxbrybrzbrAbplbrBbovbrCbrDbrEbrFbrGbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbpwaaabrTbqubrUbrVbrWbrXbrYbrZbvMbsbbscbsbbsdbsbbxcbsfbsbbsgbshbsibsjbxibskbslbsmbsnbCsbspbzAbsrbssbstbsubsvbCubsxbsybsxbszbsxbEabsBbsCbsDbsEbsFbrnbsGbsHbrqbsIaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabsJbsKbsLbsMaaaaafaaabsNaaaaafaaaaaaaagaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaabaaaaaabfTaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabpebsObpgbltblubsPbsQbsRbsSdwzbrybsUbsVbsVbsVbsWbsVbsVbsXbsYbsYbsYbsYbsYbsZbtabtbbpvbpvbkBbkBbtcbtdbtebtfbEcbpDbEbbtibtjbtibtkbtlbtibtmbtnbtjbtmbtobtpbFKbtrbtsbqRbHobtubtvbtwbKebtybtzbtAbtzbtBbtzbtzbtzbtCbtDbtEbtDbtCbtCbtFbtGbpVbtHbtIbpYbpYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabtJbtKbtKbtJbtJbtJbtLbtMaaaaafaaaaaaaafaaaaaaaaaaaaaabbfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibtNbtObnkbnlbtPbtQbnobqdbtRbtSbtTbnrbtUbnrbnwbtVbsVbtWbtXbtYbtZbuabsXbubbucbudbuebsYbufbugbuhbuibujbukbulbvObunbkBbkBbuobpDbupbuqburbuqbusbpDbutbtrbpDbuubtrbpDbuvbtrbqAbuwbuxbRcbuzbQKbuBbuCbuBbtzbuDbuEbRdbuGbuHbtzbuIbuJbRebuLbuMbtCbuNbuObuObuPbuQbuRbtJaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabuSbuTbuUbuVbuWbuWbuXbtMbtLbtLaaaaaaaafaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibuYbuZbohboibvabvbbvcbvdbvebvfbvgbvfbvhbvfbvibvjbvkbvlbvmbvnbvobvpbsXbvqbvrbvsbvtbvubvvbvwbvxbvybvybvybvybvybvybvzbvAbvBbpDbvCbuqbvDbuqbusbpDbuqbvEbpDbuqbvFbpDbuqbvGbpDbvHbvIbRmbvKbuAbvLbRnbvNbtzbxgbvPbvQbvRbvSbtzbvTbvUbvVbvWbvXbtCbvYbvZbuObwabwbbwcbtJaaaaaaaaaaaaaaabtJbtJbtLbtLbtLbtJbwdbwebwfbwgbwhbwibwjbwkbwlbtLbtJbwmbwmbwnbwnaafaafaafbfSaafaafaafaafbwobwpbwqbfSbwrbwsbwtbwubwvaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabwwbwxbpgbwybwzbwAbwBbwCbwDblAbwEbwFbvkbwGbwHbwIbwJbwKbsXbwLbwMbwNbwObsYbufbwPbwQbsZbsZbsZbsZbsZbsZbsZbwRbwSbpDbwTbuqbwUbwVbusbpDbwWbwXbpDbwWbwYbpDbwWbwZbpDbxabxbbRobvKbuAbxdbxebxfbtzbxkbxhbSrbxjbynbtzbxlbvUbxmbvUbxnbtCbxobvZbuObuObxpbuObuObtJbtJbtJbtJbtJbtJbwbbxqbxrbxsbxsbxtbxubxubxtbxvbxwbxxbxybxzbxAbxBbwmbxCbxDbwnbwnaaaaaabfSaaaaaaaaaaafbxEbxFbxGbxHbxIbxHbxEbxJbxEaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaabjjbxKbxLbxMbjjbjjbxNbxObxPbxObxQbxRbxSbsXbsVbxTbsVbsXbsXbsYbsYbxUbsYbsYbsZbxVbxWbxXbsZbxYbxZbyabybbsZbwRbwSbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbycbydbTBbyfbuAbygbyhbyibtzbyjbykbylbymbzDbtzbyobypbyqbvUbyrbtCbysbytbyubyvbywbywbywbywbywbywbyxbywbywbywbywbyybyzbyAbyBbyCbyDbyEbyFbxwbxxbyGbxwbyHbyIbyJbyKbyLbyMbwnaaaaaabfSaaaaaaaaaaaabxEbyNbxHbyObyPbyQbxEbyRbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySaaaaaaaaaaaaaaabySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaabyTbyTbyTbyTbyTbyTbyTbyTbyTbyUbyVbyWbyXbyYbyZbzabzbbzcbzcbzdbzebzfbzgbzhbzibzjbzkbzlbufbzmbznbzobsZbxYbwRbwRbwRbzpbzqbzrbvybzsbztbzubzvbvybvybvybvybvybvybzwbzxbvybzybzzbsZbWDbyebWQbuAbuAbuAbuAbtzbzBbzCbMrbzEbzFbtzbzGbzHbzIbzJbzKbtCbzLbwbbzMbzNbzObzPbzQbwbbwbbzRbzRbzRbzRbzRbzRbzRbzSbzTbzUbzVbzWbzXbzXbzXbzXbzYbzYbzYbzYbzYbzZbAabAbbAcbAcbAdbAcbAdbAcbAdbAcbAcbAebAfbAgbAhbAibxEbAjbxEbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaabAkbAlbAmbAnbyTbAobApbAqbArbAsbAsbAtbyTbAubAvbAwbAxbAybAzbAAbABbAAbACbADbAEbAFbAGbAHbAIbAJbAKbALbufbAMbxWbANbsZbAObAPbwRbwRbsZbAQbARbwRbASbATbsZbsZbAUbsZbsZbAVbwRbwRbzzbAWbwRbAXbsZbsZbAYbAZbBabuObuObBbbxrbtzbBcbBdbtzbtzbtzbtzbtCbtCbBebtCbtCbtCbzLbwbbBfbBgbzObuRbBhbBibBjbzRbBkbBlbBmbBnbBobzRbBpbBpbBqbBpbBpbzXbBrbBsbBtbzYbBubzYbBvbzYbBwbBxbBybAcbBzbBAbBBbBBbBCbBDbBEbAcbBFbBGbBHbBIbBJbBKbBLbBMbxEaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabfibqabqbbnkbnlbnmbqcbnobqdbqebnxbqfblsblAblBblsbqgbmobqhbmobqibqjbqkbqlbqmbqnbqobqpbqqbqrbqsbpwbpwaaabqtbqubqvbqwbqxbqybttbqAbqBbqCbqDbqEbqFbqGbqHbqIbqJbqKbqLbqMbqNbqObqPbqQbqRdwybuFbqUbtxbstbsubqYbqZbrabrbbrcbrdbrebuKbrgbrhbribrjbrkbvJbrmbrnbrobrpbrqbrraaaaaaaaaaaTaadaadaadaagaabaaaaaaaafaaaaaaaafaaaaafaafbrsaafaafaaaaaaaaaaaeaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaabfibrtbrubohboibrvbrwblAbrxbrybrzbrAbplbrBbovbrCbrDbrEbrFbrGbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbpwaaabrTbqubrUbrVbrWbrXbrYbrZbvMbsbbscbsbbsdbsbbxcbsfbsbbsgbshbsibsjbxibskbslbsmbsnbCsbspbzAbtvbtybtvbtwbsvbCubsxbsybsxbszbsxbEabsBbsCbsDbsEbsFbrnbsGbsHbrqbsIaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabsJbsKbsLbsMaaaaafaaabsNaaaaafaaaaaaaagaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaabaaaaaabfTaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabpebsObpgbltblubsPbsQbsRbsSdwzbrybsUbsVbsVbsVbsWbsVbsVbsXbsYbsYbsYbsYbsYbsZbtabtbbpvbpvbkBbkBbtcbtdbtebtfbEcbpDbEbbtibtjbtibtkbtlbtibtmbtnbtjbtmbtobtpbFKbtrbtsbqRbHobtubpYbuAbuBbuCbtzbtAbtzbtBbtzbtzbtzbtCbtDbtEbtDbtCbtCbtFbtGbpVbtHbtIbpYbpYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabtJbtKbtKbtJbtJbtJbtLbtMaaaaafaaaaaaaafaaaaaaaaaaaaaabbfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibtNbtObnkbnlbtPbtQbnobqdbtRbtSbtTbnrbtUbnrbnwbtVbsVbtWbtXbtYbtZbuabsXbubbucbudbuebsYbufbugbuhbuibujbukbulbvObunbkBbkBbuobpDbupbuqburbuqbusbpDbutbtrbpDbuubtrbpDbuvbtrbqAbuwbuxbRcbuzbvLbvNbuObuObtzbuDbuEbRdbuGbuHbtzbuIbuJbRebuLbuMbtCbuNbuObuObuPbuQbuRbtJaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaabuSbuTbuUbuVbuWbuWbuXbtMbtLbtLaaaaaaaafaaaaaaaaaaaaaaabfSaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaabfTaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaabfibuYbuZbohboibvabvbbvcbvdbvebvfbvgbvfbvhbvfbvibvjbvkbvlbvmbvnbvobvpbsXbvqbvrbvsbvtbvubvvbvwbvxbvybvybvybvybvybvybvzbvAbvBbpDbvCbuqbvDbuqbusbpDbuqbvEbpDbuqbvFbpDbuqbvGbpDbvHbvIbRmbvKbuObxdbwbbxebtzbxgbvPbvQbvRbvSbtzbvTbvUbvVbvWbvXbtCbvYbvZbuObwabwbbwcbtJaaaaaaaaaaaaaaabtJbtJbtLbtLbtLbtJbwdbwebwfbwgbwhbwibwjbwkbwlbtLbtJbwmbwmbwnbwnaafaafaafbfSaafaafaafaafbwobwpbwqbfSbwrbwsbwtbwubwvaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafbfibfibfibfiaaabwwbwxbpgbwybwzbwAbwBbwCbwDblAbwEbwFbvkbwGbwHbwIbwJbwKbsXbwLbwMbwNbwObsYbufbwPbwQbsZbsZbsZbsZbsZbsZbsZbwRbwSbpDbwTbuqbwUbwVbusbpDbwWbwXbpDbwWbwYbpDbwWbwZbpDbxabxbbRobvKbuObwbbwbbwbbtzbxkbxhbSrbxjbynbtzbxlbvUbxmbvUbxnbtCbxobvZbuObuObxpbuObuObtJbtJbtJbtJbtJbtJbwbbxqbxrbxsbxsbxtbxubxubxtbxvbxwbxxbxybxzbxAbxBbwmbxCbxDbwnbwnaaaaaabfSaaaaaaaaaaafbxEbxFbxGbxHbxIbxHbxEbxJbxEaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaabjjbxKbxLbxMbjjbjjbxNbxObxPbxObxQbxRbxSbsXbsVbxTbsVbsXbsXbsYbsYbxUbsYbsYbsZbxVbxWbxXbsZbxYbxZbyabybbsZbwRbwSbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbpDbycbydbTBbyfbuObxfbwbbCvbtzbyjbykbylbymbzDbtzbyobypbyqbvUbyrbtCbysbytbyubyvbywbywbywbywbywbywbyxbywbywbywbywbyybyzbyAbyBbyCbyDbyEbyFbxwbxxbyGbxwbyHbyIbyJbyKbyLbyMbwnaaaaaabfSaaaaaaaaaaaabxEbyNbxHbyObyPbyQbxEbyRbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySaaaaaaaaaaaaaaabySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaabyTbyTbyTbyTbyTbyTbyTbyTbyTbyUbyVbyWbyXbyYbyZbzabzbbzcbzcbzdbzebzfbzgbzhbzibzjbzkbzlbufbzmbznbzobsZbxYbwRbwRbwRbzpbzqbzrbvybzsbztbzubzvbvybvybvybvybvybvybzwbzxbvybzybzzbsZbWDbyebWQbuObuObCybuObtzbzBbzCbMrbzEbzFbtzbzGbzHbzIbzJbzKbtCbzLbwbbzMbzNbzObzPbzQbwbbwbbzRbzRbzRbzRbzRbzRbzRbzSbzTbzUbzVbzWbzXbzXbzXbzXbzYbzYbzYbzYbzYbzZbAabAbbAcbAcbAdbAcbAdbAcbAdbAcbAcbAebAfbAgbAhbAibxEbAjbxEbxEaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaabAkbAlbAmbAnbyTbAobApbAqbArbAsbAsbAtbyTbAubAvbAwbAxbAybAzbAAbABbAAbACbADbAEbAFbAGbAHbAIbAJbAKbALbufbAMbxWbANbsZbAObAPbwRbwRbsZbAQbARbwRbASbATbsZbsZbAUbsZbsZbAVbwRbwRbzzbAWbwRbAXbsZbsZbAYbAZbBabuObBbbwbbxrbtzbBcbBdbtzbtzbtzbtzbtCbtCbBebtCbtCbtCbzLbwbbBfbBgbzObuRbBhbBibBjbzRbBkbBlbBmbBnbBobzRbBpbBpbBqbBpbBpbzXbBrbBsbBtbzYbBubzYbBvbzYbBwbBxbBybAcbBzbBAbBBbBBbBCbBDbBEbAcbBFbBGbBHbBIbBJbBKbBLbBMbxEaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaabySbySbySbySbySbySbySbySbySaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaabaaaaaaaaabAkbBNbBNbBObyTbBPbBPbBPbBQbAsbBRbBSbyTbBTbBUbBVbBWbBXbBYbBZbALbCabCbbCcbCdbCabCebCebCfbCgbChbCebsZbCibCjbCkbsZbsZbsZbClbwRbsZbAXbCmbCmbCnbCmbCmbCobwRbCpbsZbCqbwRbCrbsZbuibwRbAXbwRbsZbYebCtbYvbuObwbbwbbCvbCwbwbbCxbCybCybCybCybzMbCzbCAbCBbCCbCDbCEbCFbCGbuObCHbCHbCHbCHbCIbzRbCJbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbzXbCUbCVbCWbzYbCXbzYbCYbzYbzYbCZbDabDbbDcbDdbBBbDebDfbDgbDhbAcbDibDibDibDjbDibDibDibDibDibDiaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySaaaaaabySbySbySbySbySbySbySbySbySaaaaaabySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaagaadaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaabAkbDkbDlbDmbyTbDnbDobDobDpbDobDqbDrbyTbDsbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbsZbDLbDMbDNbDObDPbsZbujbuibsZbDQbCmbDRbDSbDTbCmbDUbDVbANbsZbxXbwRbDWbsZbujbwRbDXbDYbDZbZXcaqcbEbEdbCBbEebCBbEfbCBbEgbCBbCBbCBbCBbEhbEibEjbEjbEjbEjbEjbEjbEkbElbCHbEmbEnbEobCIbEpbEqbErbEsbEtbEubCObEvbEwbExbCRbEybzXbEzbEAbEBbECbEDbEEbEFbEGbzYbEHbEIbEJbEKbELbEMbELbENbEObEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbFaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaabySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySbySaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaabAkbFbbFcbFdbyTbFebDobDobFfbFgbFhbFibFjbFkbFlbFmbFnbDwbFobFpbDzbFqbFrbFsbFtbFubDFbFvbFwbFxbFybFzbsZbFAbFBbFCbFDbDPbsZbzzbzzbsZbFEbCmbFFbDSbFGbCmbsZbsZbsZbsZbFHbFHbFHbsZbsZbsZbsZbsZbFIbFJcddbFLbFIbuObuObuObuObuObtLbtLbtLbuObuObuObuObEjbFMbFNbFObFPbEjbFQbFRbFSbFTbFUbFVbCIbFWbFXbCKbFYbFZbGabCObGbbGcbGdbGebGfbGgbGhbGibGjbzYbGkbGlbGmbGnbzYbGobGpbAcbGqbGrbGsbGrbGsbGrbGtbDbbGubGvbGwbGxbGybGzbGAbGBbGCbGDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10953,14 +10930,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabySbySbySbySbySbySbySaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgceibVVcelcfJcejcekbVWceobZqbZqbZqbZqcepceqcercescetceuceucevcewcexcexcexcexcexcexcexccSccSccSceycezceAceBceCceDceEceFceGceHceGceGceGceGceGceIceIceIceIceJceIceIceIceKceLbsZbKkbKkbKjceMcbCceNceOcePceQceRceRceScdjceTbVbbVbbVbbVbbVbbVbbVbceTbVfceUceVceWbVeceXceYceZcfacfbbKlcfccfcbuObTmbwbbCybBibBjcfdbwbcfebwbcffcfgcfhcficfjcfgcfkcdFcflcfmcfncfocfpcfqcfrcfscftcftcfucbXcbXcbXcbXcbXcbXcbXcdRcbZcfvbwmcfwcfxcfybZbcfzcfAcfBcaVcaWccmcfCcfDbZjbZlcfEcfFcfGbZlbZmcfHbZmbZlbZlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcfLcemcenbVWcfMcfNcfOcfPcfQcfRcfScfTcfUcfVcfWcfXcfYcfZcexcgacgacgacgacgacgbcgccgdccScgeckncggcghcgicgjcgkbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZbsZcglcgmdQRcgobKjcgpcgqcgrcgscgtceQceQcgucgvcdjcgwbVbcgxcgxcgxcgxcgxbVbcgybVecgzcgAbVebVecgBcgCcgBcgDcgEcgFcgGcgHcgIcgJbtJbuObuObuObuObuObuObuObuOcgKcgLckocgNcgKcdEcdEcdEcgOcdEcdEcdEcdEcgPcgQcftcgRcgScgTcgUcgUcgUcgUcgUcbXcbZcbZbZkbwmcgVbwmbwmbZbcgWbZbbZbcaVbZjbZkbZlbZlbZlbZlcgXcfFcgYcgZchachbchcchdbZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafchebSgchfchgchhchichjchkchlchmchnchochpchqchrchschtchuchvchwchxceuchychzcexcgacgacgacgacgachAchBchCchDchEchFchGchHckqchIchJchKchLcgichIchMchNchHchOchPchQdRpchHchRchSchCchTchUchVchWchXchYchZbSYbSYciacibdSgcidceQcdjcdjcdjcbGbVbcgxcgxcgxcgxcgxbVbceTbVebVebVebVecgGdbzcifcigcihcihciicijcikcilcimcinciocipciqcirciscitciucivcircisckrcixciycizciAciBcixcmYciCciDciEcgPciFciGciHciIciJcgUcgUcgUcgUcgUcbXciKcbZciLciMciNciObZkciPciQciRciSbZgciTciUbZlciVciWbZlciXcfFccqccqccqcfFccqciYciZbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUdSicnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcyicjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjSbWJcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKdHYcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckQckOckPckNckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaabSgclachgclbclccldcleclfclgclhclicljclkcllclmclncloceuceuceuclpclqclrcexcgacgacgacgacgaclscltchCchDcluclvclwclxckqclyclzclAclBcgiclyclCclDclxclEclFclGclHclIclJclKclLclMclNclOclPclQclRclSbSYbSYclTclUdSBclWbVbclXclYcbHcbHbVbcgxcgxcgxcgxcgxbVbclZcmacmbcmcbVbcmddTJcmfcmgcmhcmhcmicmjcmkcmlcmmcmnciocipcitcmocitcitcmpcmqcmrcmscmtcmucmvcmvcmwcmxcmpcmvcmycYecmzcmAciFciGcmBcmCcmDcgUcgUcgUcgUcgUcbXcmEcmFbZkcmGcmHcmIbZkcmJcmKcmJcmLcmMcmNcmObZlcmPcmQbZlcmRcmScmTccqcmUcfFccqcmVcmWbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcmXcfKcotbVWcmZcfNcnacnbcnccndcnecnfcngcnhcnicnjcnkclpcexcgacgacgacgacgacgbcnlcnmccSccScnncgkcnocgicnpcnqcnrcnrcnrcnrcnrcnrcnscnscntcnucnscnvcnwcnxcnycnzcnAcnBcgmcnCclWbKjcnDcgqcgrcnEcgtbKjbVbceTcnFcnGcnHbVbcgxcgxcgxcgxcgxcnIcnIcnJcnIcnIcnIcnIcnKcgCcgBcgDcnLcgFcnMdTKcgIcnOcnPcnPcnPcnQcnRcnScnScnScnScnScnTcnScnScnScnScnScnScZhcnVcnWcYecnXcgKcnYcftcnZcgKcgTcgUcgUcgUcgUcgUcbXcoacbZbZkcobcoccodcoecoecoecofcoecogcoecoebZlbZlbZlbZlcohcoicojcokcolcomconcoobZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgcopcoqcorcoscemclhbVWcoucovcovcowcovcoxcoycovcngclpclpcozcoAclpcexcexcexcexcexcexcexccSccSccScoBcoCcoDcoEcoFcoGcoDcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcnscoScoTcoScoUcoVcoWcnAbKkbKkcoXcoYcoZcpacpbcpcbVacpdcpecpfcpfcpfcpgcpgcphcpicpjcoXcnIcpkcplcpmcpncpocnIcppcpqcigcprcpscgFcfccfccnPcptcpucpvcpwcpxcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpIcpJcpKcpLcpMcpNcpOcpPcpPcpPcpQcbXcbXcbXcbXcbXcbXcbXcdRcbZcpRcobcpScpTcpUcpVcpWcpXcpYcpZcqacqbcqccqdcqdbZlcqecfFcqfbZlbZmcqgbZmbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabJtbSebJtbSebJtbSebJtbSebJtbSebJtbSeaafaafbSgcqhbVVcqicqjcqkcqlcqmcqncqocqpcqqcqrcqscqtcovcqucqvcqvcqwcqxcqycqzcqzcqzcqAcqBcqCcqDcoBcoBcqEcoBccScqFcqFcqFcqFcqFcnrcqGcqHcqIcqJcqKcnscqLcqMcqNcqOcnscqPcqQcqRcoUcqScoWcnAaaaaaacoXcqTcoZcqUdbncqWbVacqXcqYcpfcqZcracrbcrccqUcqUcqUcrdcrecrfcrgcrhcricrjcnIcrkdcwcihcrmdaScgFaaaaaacnPcrocrpcrqcnPcrrcrscnScrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDcnScrEcrFcrGcrGcrHcpPcbZcbZcrIcdRcdRcdRcdRcdRcdRcdRcdRcbZcrJcobcrKcrLcpUcrMcrNcrOcrPcrQcrRcrScrTcqdcqdcrUcrVcrWcrXbZmcrYcrZcsabZlaaaaaaaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbTXbTYbTZbTYbTZbTYbTZbTYbTZbTYbTZbTYbUabUbbSgcsbcsccsdcsecsccsfcsgcshcovcsicsjcskcslcsmcovcsncsocsocspcsqcsocsocsrcsrcsscsscstcsucstcsvcstcstcswcswcsxcsycsxcswcswcszcszcszcsAcszcszcsBcsCcsDcnscnscsEcsFcsGcoUcsHcoWcnAaaaaaacsIcsJcsKcsLdbncsMbVacsNcsOcsPdcxcsRcsScsTcsUddxcqUcsVcsWcsXcsYcsZctactbcnIctcdcwctdctectfcfcaaaaaacnPctgcthcthcthdaVdbbcthcthcuPcuPcuPctlctmctnctmctmctmctmdbDctoctpctqctrctoctsctsctsctsctsctsctscttcttcttcttctuctuctuctuctvctwctxcrMctycpYcpYcpYcpYcpYcqdcqdcqdbZlctzcmUctAbZmccsccqcctbZlaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUabZnbSgbZoctBctCctDctEctCctFctGcovcovcovcovcovcovcovctHcsoctIctJctKctLcsoctMctNctOctOcstctPcstctQctRctYctTctUctVdTLctVctXcuEcvScuacubcuccudcszcuecufcugcuhcnscuicujcukcoUculcoWcnAaaaaaacsIcumcuncuodeEcuqbVacurcuscpfcutcuucuvcuwcuxcuycqUcuzcuAcuBcuCcsZcuDcvTcuFcuGdcwcuHcuIcuJcfcaaaaaacnPcrocthdTMcuLcuMcuNcuOdbEcwLcwMcwNctlcuQcuRcuScuTcuUcuVcuWcuXcuYdTNcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscpUcvtcvucvvcpYcpYcpYcvwcvxcvucqdbZlcvycvzcvAbZlcbbcvBbZlbZlaafaafaafaadaWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaadbXvcvCcvDcvEcvFcvGcvEcvFcvHcvIcvJcvKbSgcqucqvcqvcqvcvLcsocvMcvNcvOcvPcsoctMcvQcsscsscstcvRcxHcxIcvUcvVcvWcvXcvXcvXcvYcvZcwactZcwbcwccwdcwecwfcwgcwhcwicuhcnscoUcoUcoUcoUcnAcoWcnAaaaaaacsIcwjcoZcwkdkccwmbVacwncwocpfcwpcwqcwrcrccwsdkMcwucuzcwvcwwcwxcwycwzcwAcnIcuGdmEcwCcwDcwEcfcaaaaaacnPcrocthdTOcwGcwHcwIcwJcyrcyscytcyuctmcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcxccxecvicxfcxgcxhcvmcxicxjcxkcvqcxlcxmcpUcpUcpUcpUcpUcpUcpUcpUcpUcoecoebZlcxnbZmbZlbZlbZlbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpcfTbJOcjqceuceucjrccScexcgacgacgacgacgacjscjtcjucjvcjwcksckucnUdSicnUcqVckscrlcksckscsQcupcksckscwBcxJcwlcwtcxXcwtcjKcjLcjMcCYczWcCXczWczWczWczWczWcjQcjRcjSbWJcjUcjVcdmcjWbVbcgxcgxcgxcgxcgxbVbcjXbYncjYcjZckackbckcckdcCZcCZcCZcCZcCZcDicDacDhckickjckkcDjcJxcDjcDjcDkcKMcDjcJxckpcDjcMecDjcDjcTxcDjcDjcOKdHYcDkcUCckvckwckxckyckzcgUcgUcgUcgUcgUcbXckAcbZckBckCckDckEckFckGckHckIckJckKckLckMckQckOckPckNckRckSckTckUckVckWckXccqckYckZaafaafaafaadaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaabSgclachgclbclccldcleclfclgclhclicljclkcllclmclncloceuceuceuclpclqclrcexcgacgacgacgacgaclscltchCchDcluclvclwclxckqclyclzclAclBcgiclyclCclDclxclEclFclGclHbygbyhclIclLclMclNclOclPclQclRclSbSYbSYclTclUdSBclWbVbclXclYcbHcbHbVbcgxcgxcgxcgxcgxbVbclZcmacmbcmcbVbcmddTJcmfcmgcmhcmhcmicmjcmkcmlcmmcmnciocipcitcmocitcitcmpcmqcmrcmscmtcmucmvcmvcmwcmxcmpcmvcmycYecmzcmAciFciGcmBcmCcmDcgUcgUcgUcgUcgUcbXcmEcmFbZkcmGcmHcmIbZkcmJcmKcmJcmLcmMcmNcmObZlcmPcmQbZlcmRcmScmTccqcmUcfFccqcmVcmWbZmaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabSfbSgcfIcfIbSgcmXcfKcotbVWcmZcfNcnacnbcnccndcnecnfcngcnhcnicnjcnkclpcexcgacgacgacgacgacgbcnlcnmccSccScnncgkcnocgicnpcnqcnrcnrcnrcnrcnrcnrcnscnscntcnucnscnscnzbyicnzcnzcnAcnBcgmcnCclWbKjcnDcgqcgrcnEcgtbKjbVbceTcnFcnGcnHbVbcgxcgxcgxcgxcgxcnIcnIcnJcnIcnIcnIcnIcnKcgCcgBcgDcnLcgFcnMdTKcgIcnOcnPcnPcnPcnQcnRcnScnScnScnScnScnTcnScnScnScnScnScnScZhcnVcnWcYecnXcgKcnYcftcnZcgKcgTcgUcgUcgUcgUcgUcbXcoacbZbZkcobcoccodcoecoecoecofcoecogcoecoebZlbZlbZlbZlcohcoicojcokcolcomconcoobZlbZlaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaabSgcopcoqcorcoscemclhbVWcoucovcovcowcovcoxcoycovcngclpclpcozcoAclpcexcexcexcexcexcexcexccSccSccScoBcoCcoDcoEcoFcoGcoDcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcnscxUcxUcxUcnAcoVcoWcnAbKkbKkcoXcoYcoZcpacpbcpcbVacpdcpecpfcpfcpfcpgcpgcphcpicpjcoXcnIcpkcplcpmcpncpocnIcppcpqcigcprcpscgFcfccfccnPcptcpucpvcpwcpxcpxcpycpzcpAcpBcpCcpDcpEcpFcpGcpHcpIcpIcpJcpKcpLcpMcpNcpOcpPcpPcpPcpQcbXcbXcbXcbXcbXcbXcbXcdRcbZcpRcobcpScpTcpUcpVcpWcpXcpYcpZcqacqbcqccqdcqdbZlcqecfFcqfbZlbZmcqgbZmbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabJtbSebJtbSebJtbSebJtbSebJtbSebJtbSeaafaafbSgcqhbVVcqicqjcqkcqlcqmcqncqocqpcqqcqrcqscqtcovcqucqvcqvcqwcqxcqycqzcqzcqzcqAcqBcqCcqDcoBcoBcqEcoBccScqFcqFcqFcqFcqFcnrcqGcqHcqIcqJcqKcnscqLcqMcqNcqOcnscxUcxUcxUcnAcqScoWcnAaaaaaacoXcqTcoZcqUdbncqWbVacqXcqYcpfcqZcracrbcrccqUcqUcqUcrdcrecrfcrgcrhcricrjcnIcrkdcwcihcrmdaScgFaaaaaacnPcrocrpcrqcnPcrrcrscnScrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDcnScrEcrFcrGcrGcrHcpPcbZcbZcrIcdRcdRcdRcdRcdRcdRcdRcdRcbZcrJcobcrKcrLcpUcrMcrNcrOcrPcrQcrRcrScrTcqdcqdcrUcrVcrWcrXbZmcrYcrZcsabZlaaaaaaaaaaaaaadaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafbTXbTYbTZbTYbTZbTYbTZbTYbTZbTYbTZbTYbUabUbbSgcsbcsccsdcsecsccsfcsgcshcovcsicsjcskcslcsmcovcsncsocsocspcsqcsocsocsrcsrcsscsscstcsucstcsvcstcstcswcswcsxcsycsxcswcswcszcszcszcsAcszcszcsBcsCcsDcnscnscxUcxUcxUcnAcsHcoWcnAaaaaaacsIcsJcsKcsLdbncsMbVacsNcsOcsPdcxcsRcsScsTcsUddxcqUcsVcsWcsXcsYcsZctactbcnIctcdcwctdctectfcfcaaaaaacnPctgcthcthcthdaVdbbcthcthcuPcuPcuPctlctmctnctmctmctmctmdbDctoctpctqctrctoctsctsctsctsctsctsctscttcttcttcttctuctuctuctuctvctwctxcrMctycpYcpYcpYcpYcpYcqdcqdcqdbZlctzcmUctAbZmccsccqcctbZlaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUabZnbSgbZoctBctCctDctEctCctFctGcovcovcovcovcovcovcovctHcsoctIctJctKctLcsoctMctNctOctOcstctPcstctQctRctYctTctUctVdTLctVctXcuEcvScuacubcuccudcszcuecufcugcuhcnscxUcxUcxUcnAculcoWcnAaaaaaacsIcumcuncuodeEcuqbVacurcuscpfcutcuucuvcuwcuxcuycqUcuzcuAcuBcuCcsZcuDcvTcuFcuGdcwcuHcuIcuJcfcaaaaaacnPcrocthdTMcuLcuMcuNcuOdbEcwLcwMcwNctlcuQcuRcuScuTcuUcuVcuWcuXcuYdTNcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcvlcvmcvncvocvpcvqcvrcvscpUcvtcvucvvcpYcpYcpYcvwcvxcvucqdbZlcvycvzcvAbZlcbbcvBbZlbZlaafaafaafaadaWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaadbXvcvCcvDcvEcvFcvGcvEcvFcvHcvIcvJcvKbSgcqucqvcqvcqvcvLcsocvMcvNcvOcvPcsoctMcvQcsscsscstcvRcxHcxIcvUcvVcvWcvXcvXcvXcvYcvZcwactZcwbcwccwdcwecwfcwgcwhcwicuhcnscxUcxUcxUcnAcnAcoWcnAaaaaaacsIcwjcoZcwkdkccwmbVacwncwocpfcwpcwqcwrcrccwsdkMcwucuzcwvcwwcwxcwycwzcwAcnIcuGdmEcwCcwDcwEcfcaaaaaacnPcrocthdTOcwGcwHcwIcwJcyrcyscytcyuctmcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcxccxecvicxfcxgcxhcvmcxicxjcxkcvqcxlcxmcpUcpUcpUcpUcpUcpUcpUcpUcpUcoecoebZlcxnbZmbZlbZlbZlbZlbZlaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaaaaaaaaabJtbJubJubJubJubJubJubJucxobJubJubJubUabVPcxpcxqcxrcxscxtccwcxscxucxvcxvcxwbSgcxxclpcxycxycxzcxycxycxAcxBcxCcsocsocxDcxEcxFcstcxGcynczvczwctScxKcvXcvXcxLcxMcxNcxOcszcxPcxQcxRcxScszcnscnscxTcnscnscxUcxUcxUcxUcnAcoWcxVaaaaaacoXcqTcoZcxWdntcxYbVbbVbcxZcpfcwpcyacybcrccqUdeEcqUcyccnIcydcyecyfcygcnIcnIcyhdpjcyjcykcylcgFaaaaaacymcrocthdTPcyocwHcypcyqcyrcAhcAicAjctmcyvcwPcywcyxcyycyzcyAcyBcyCcyDcyEcyFcyGcyHcyIcyJcyIcyKcyLcyMcyNcyOcvmcyPcyQcyRcvqcyScyTcyUcyVcyWcyXcyYcyZczaczbczcczdbXuczeczfaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaabTXcbdcbecbdcbecbdcbecbdcbecbdcbecbdbUacbfbSgbSgczgczhczibUfcziczjcxvcxvczkbSgcxxclpcxyczlczmczncxyctJczoczpczqcsoczrczscztcstczucAYcAZczxczyczzczAczBczBczCcxNczDczEczFczGczHczIcszczJczKczLczMczNcxUczOcxUczPcnAcoWcxVaaaaaacoXcoXczQcqUddxczRdIobVbczTcpfcpfcpfcpfczUczVdpmczVczXcnIcnIczYczZcnIcnIdKGcAbdpEcihcAccgFcgFaaaaaacymcrocthcthcAdcAecAfcAgcyrcBNcBOcBPctmcAkcAlcAmcAmcAncAocApcAqcArcAscvacAtcxacAucAvcAwcAxcAyctscAzcAAcABcvmcACcADcAEcvqcAFcAGcAHcAIcAIcyXcAJcAKcALcyXcyXczdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabLjccubLjccubLjccubLjccubLjccubLjccuaafaafaafbSfbSgbSgbSgbSgbSgbSgbSgbSgbSgbSgcAMccScxycANczmcAOcxycAPcAQcARcAScATcAUcAVcAWcstcAXcDncOIcBacstcBbcBccBdcBdcBecBfcBgctZcBhcBicwccBjcszczJcBkcBlcBmczMczMcxUczOcxUcnAcoWcxVaaaaaaaaacsIcBncBoddxdTQcBqcBrcBscBtcBucBucBvcBwdTRdbndTScBwcBzcmhcBAcBBcBCcBDcBEdTTdpEcBGcBHcfcaaaaaaaaacymcrocBIcthcBJcBKcBLcBMcyrcDqcDrcDqctmcBQcwPcBRcBScBTcBUcBVcBWcuYcBXcvacBYcxacBZcyIcCacyIcCbctscCccCdcCecvmcCfcCgcChcvqcCicCjcCkcClcCmcCncCocCpczacCqcCrczdaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10993,9 +10970,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdctdevdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudewdexdeydezdeAdeBdeCcTrcRgdeDdUcdeFdeGdeHdeIdeJdeKdeLdeLdeMdeLdeNdeLdeOdePdeQdeRdeSdeQdeTdeUdeVdeWcZxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafcSYdctdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvddwdHcdeXdeYdbUdeZdfadfbdfcddDdUdcShdUeddFddpdffdfgdfhdfidfjdfkdfldfmdfndfodfidfjdfpdfqdfqdfrddodfsdbCcZxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacxVdctddidcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudftdfudbUdfvdfwdfvdfvdfvddDdfxdfydfzddoddodfAddoddoddoddodfBddoddoddoddoddoddoddoddoddoddoddodfCdfDcYxaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcGdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudcHdfGdfHdfIdfJdfKdfLdfMdfNcSicShdfOdfPdfQdfRdfSdfTdfUdfSdfVdfQdfWdfXdfYdfZdgadgbdfWdgcdgddgedgfdggcYxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudghdgidfHdgjdgkdgldgmdgndgodgpdHedgqdfPdfSdgrdgsdgtdgudgvdgwdfSdfWdgxdgydgzdgAdgBdfWdgCdgDdgEdgFdgGcYxaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaafaafaafcSYdfFdbUdbUdgHdgIdgJdbUdbUdbUdbUdbUdbUdbUdbUdbUdbUdgKdgLdgMdgNdfMdgOdgPdGddgQdgRdgSdgTdgUdfTdfTdgVdgWdfSdgXdgYdgZdhadhbdhcdfWdhddhedgEdhfdgGcYxaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcGdcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudcHdfGdfHdfIdfJbKedfLdfMbQKcSicShdfOdfPdfQdfRdfSdfTdfUdfSdfVdfQdfWdfXdfYdfZdgadgbdfWdgcdgddgedgfdggcYxaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacxVdfFdcudcvdcvdcvdcvdcvdcvdcvdcvdcvdcvdcudghdgidfHdgjdgkdgldgmbRndgodgpdHedgqdfPdfSdgrdgsdgtdgudgvdgwdfSdfWdgxdgydgzdgAdgBdfWdgCdgDdgEdgFdgGcYxaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaafaafaafcSYdfFdbUdbUdgHdgIdgJdbUdbUdbUdbUdbUdbUdbUdbUdbUdbUdgKdgLdgMclJdfMdgOdgPdGddgQdgRdgSdgTdgUdfTdfTdgVdgWdfSdgXdgYdgZdhadhbdhcdfWdhddhedgEdhfdgGcYxaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacSYdfFculdhgdhhdhgdhidhgdhjdhkdhldhkdhmdhndhodhpdhgdhqdfvdfvdfvdfvdhrddFdxKdhsdgRdhtdhudhtdfTdhvdhtdhwdhxdhydhzdhzdhAdhzdhBdfWdhCdhDdhEdhFdhGcYxaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfEdfEdfEdfEdfEdfEdfEdfEdfEdfEdfEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaacSYdfFcsHdhgdhHdhIdhJdhKdhjdhLdhldhMdhmdhNdhMdhMdhOdhMdhMdhkdhMdhPdamddFdxKdhQdfPdfSdgrdgsdfTdfTdgvdgwdhRdfWdgXdgXdhSdgXdgXdfWdgRdgRdgRdfCdhTdhUdhUdhUaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSYdhVdhWdhgdhXdhYdhZdhMdiadibdicdiddicdiedifdigdihdifdiidifdifdijdgodgpdHedikdfPdhtdildimdindindiodipdiqdirdisdisditdiudivdiwdixdivdivdiydizdiAdiBdiCaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11221,8 +11198,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdKYdLQdKwaaaaaadLqdLRdLSdLTdLUdLVdLWdLXdLqdLYdLZdGmdMadMbdFJdFIdFJdMcdMddGmdMedMfdLHdMgdMhdMidMjdBkdMldMmdLHaaaaaadKVdMndModKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdKYdMpdMqaaaaaadMrdLvdMsdMtdMudMvdMwdMxdMydMzdMAdMBdMadMCdMDdTEdMFdFJdMGdMHdMIdMJdBZdMLdMMdMNdMOdLHdMPdMQdLHaaaaaadMRdMSdMTdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdMUdMVdMqaaaaaadMWdMXdMYdMZdNadMZdNbdNcdLqdNddNedGmdNfdNgdNhdTFdNjdNkdNldGmdNmdNndLHdLHdLHdNodLHdLHdLHdLHdLHaaaaaadMRdNpdNqdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdNrdNsdMqaaaaaadNtdNudLvdLvdNvdLvdLvdNwdLqdLYdLZdNxdNxdNydNzdUQdNBdNCdNxdNxdMedMfdLHdNDdNEdNFdNGdNHdNIdNJdLHaaaaaadMRdNKdNLdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdNPdKwaaaaaadNQdNRdNSdLvdNTdNUdNVdNWdNXdNYdNZdOadObdOcdOddTGdOfdOcdOgdOhdOidOjdOkdOldOmdOndOodOpdOqdOrdLHaaaaaadKVdOsdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaafaafaafaaTaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedKwdNrdNsdMqaaaaaadNtdNudLvdLvdNvdLvdLvdNwdLqdLYdLZdNxdNxdNxdNydUQdNCdNxdNxdNxdMedMfdLHdNDdNEdNFdNGdNHdNIdNJdLHaaaaaadMRdNKdNLdKVdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedNMdNNdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdNPdKwaaaaaadNQdNRdNSdLvdNTdNUdNVdNWdNXdNYdNZdOadObclKdOddTGdOfcnvdOgdOhdOidOjdOkdOldOmdOndOodOpdOqdOrdLHaaaaaadKVdOsdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedOtdOudOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaafaafaafaaTaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdOxdKwdKwdLqdLqdLqdOydOzdOAdOzdOydLqdLqdOBdOCdODdOEdOFdOEdOGdOEdOFdOEdOEdOHdOIdLHdLHdOJdOKdOLdOMdONdOOdLHdLHdKVdKVdOPdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdLQdORdOSdLqdOTdOUdOVdOWdNTdLvdLvdOXdTHdOZdPadPbdPcdMkdPedPfdPgdPhdPidPjdPkdPldTIdPndPodPpdPqdPrdPsdOpdPtdLHdPudPvdPwdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaadzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedNMdOwdNOdzedzedzedzedzedzedzedzedzedzedKwdNrdLQdLQdLQdPxdLvdPydPzdPAdPBdPCdPDdLqdPEdPFdPGdPHdPGdPGdPGdPHdPGdPGdPGdPGdPGdPFdPIdLHdPJdOpdOodPKdOpdOpdPLdLHdPMdPNdPOdNLdKVdzedzedzedzedzedzedzedzedzedzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedOtdOQdOvdzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzedzeaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm index 2c9e8afd15..6b5ea40f05 100644 --- a/maps/southern_cross/structures/closets/misc.dm +++ b/maps/southern_cross/structures/closets/misc.dm @@ -37,6 +37,8 @@ // One spare cell per gun new /obj/item/weapon/cell/device/weapon(src) new /obj/item/weapon/cell/device/weapon(src) + // One spare gun permit per locker + new /obj/item/clothing/accessory/permit/gun/planetside(src) //Explorer Lockers diff --git a/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm new file mode 100644 index 0000000000..959a7b9aa1 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm @@ -0,0 +1,142 @@ +"aa" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"ab" = (/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ac" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ad" = (/obj/effect/spider/stickyweb,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ae" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/shuttle/wall/no_join,/area/submap/CrashedMedShuttle) +"af" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ag" = (/turf/simulated/shuttle/wall,/area/submap/CrashedMedShuttle) +"ah" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"ai" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/decal/cleanable/blood/oil,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aj" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/structure/sign/warning/airlock{pixel_x = 32},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ak" = (/obj/structure/dispenser/oxygen,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"al" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/light{dir = 1},/obj/structure/table/standard,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"am" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"an" = (/obj/structure/window/reinforced,/obj/effect/decal/cleanable/blood/oil,/obj/structure/loot_pile/surface/bones,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ao" = (/obj/item/weapon/circuitboard/broken,/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ap" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"aq" = (/obj/effect/decal/cleanable/liquid_fuel,/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ar" = (/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"as" = (/obj/structure/closet/crate/medical,/obj/random/medical,/obj/random/medical,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"at" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"au" = (/obj/item/weapon/material/shard,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"av" = (/obj/structure/closet/secure_closet/personal/patient,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aw" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ax" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ay" = (/obj/effect/decal/cleanable/blood/drip,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"az" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aA" = (/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aB" = (/obj/effect/decal/cleanable/blood/gibs/robot,/obj/item/weapon/firstaid_arm_assembly,/mob/living/simple_animal/hostile/giant_spider/frost{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aC" = (/obj/machinery/suit_cycler/medical{locked = 0},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aD" = (/obj/item/stack/rods,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"aE" = (/obj/structure/lattice,/obj/item/stack/rods,/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aF" = (/obj/effect/decal/cleanable/blood/oil,/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aG" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aH" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aI" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aJ" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aK" = (/obj/machinery/recharge_station,/obj/effect/decal/cleanable/liquid_fuel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aL" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/medical/alt,/obj/item/clothing/head/helmet/space/void/medical/alt,/obj/effect/spider/stickyweb,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aM" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/medical/alt,/obj/item/clothing/head/helmet/space/void/medical/alt,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aN" = (/obj/structure/table/standard,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aO" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/item/stack/rods,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"aP" = (/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aQ" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aR" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aS" = (/obj/effect/decal/cleanable/blood/gibs/robot,/mob/living/simple_animal/hostile/giant_spider/nurse/medical{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aT" = (/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aU" = (/turf/simulated/shuttle/wall/no_join,/area/submap/CrashedMedShuttle) +"aV" = (/obj/effect/decal/cleanable/blood/oil,/obj/structure/loot_pile/surface/bones,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aW" = (/obj/machinery/light,/obj/structure/table/standard,/obj/machinery/computer/med_data/laptop,/obj/effect/spider/stickyweb,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/shard{icon_state = "medium"},/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"aY" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"aZ" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"ba" = (/obj/machinery/computer,/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bb" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bc" = (/obj/effect/spider/stickyweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bd" = (/obj/effect/spider/cocoon,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"be" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bf" = (/obj/item/stack/rods,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bg" = (/obj/effect/spider/stickyweb,/obj/structure/girder/displaced,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bh" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = -32},/obj/structure/lattice,/obj/item/device/gps/internal/poi,/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bi" = (/mob/living/simple_animal/hostile/giant_spider/nurse/medical,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bj" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood/drip,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bk" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bl" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/nurse/medical,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bm" = (/obj/effect/decal/mecha_wreckage/odysseus,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bn" = (/obj/item/weapon/material/shard,/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bo" = (/obj/effect/decal/cleanable/blood/oil,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bp" = (/obj/effect/spider/stickyweb,/obj/item/weapon/material/shard,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bq" = (/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"br" = (/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bs" = (/obj/effect/spider/cocoon,/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bt" = (/obj/structure{anchored = 1; density = 1; desc = "Once an artificial intelligence; now merely a brick of inert metal and circuits."; icon = 'icons/mob/AI.dmi'; icon_state = "ai-empty"; name = "V.I.T.A"},/turf/simulated/shuttle/floor/yellow,/area/submap/CrashedMedShuttle) +"bu" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bv" = (/obj/structure/grille/broken,/obj/item/weapon/material/shard,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bw" = (/obj/effect/decal/cleanable/blood/drip,/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bx" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"by" = (/obj/effect/decal/remains/tajaran,/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bz" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bA" = (/obj/item/weapon/material/shard,/obj/structure/loot_pile/maint/technical,/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bB" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bC" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bD" = (/obj/structure/girder,/turf/template_noop,/area/submap/CrashedMedShuttle) +"bE" = (/obj/structure/girder/displaced,/turf/template_noop,/area/submap/CrashedMedShuttle) +"bF" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/simulated/floor/outdoors/rocks,/area/submap/CrashedMedShuttle) +"bG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) +"bH" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/chem_disp_cartridge/tricord,/obj/item/weapon/reagent_containers/chem_disp_cartridge/tramadol,/obj/item/weapon/reagent_containers/chem_disp_cartridge/bicaridine,/obj/item/weapon/reagent_containers/chem_disp_cartridge/dermaline,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bI" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/obj/item/weapon/storage/fancy/vials,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bJ" = (/obj/random/medical/pillbottle,/mob/living/simple_animal/hostile/giant_spider/webslinger{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bK" = (/obj/structure/table/standard,/obj/item/device/defib_kit/loaded,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bL" = (/obj/structure/table/standard,/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bM" = (/obj/structure/table/standard,/obj/item/roller,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bN" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bO" = (/obj/structure/table/standard,/obj/random/medical/lite,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bP" = (/obj/structure/table/standard,/obj/random/medical/lite,/obj/item/weapon/surgical/retractor,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bQ" = (/obj/item/weapon/material/shard,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"bR" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"bS" = (/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/spider/cocoon,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bT" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/secure_closet/medical_wall/anesthetics{pixel_x = 32},/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bU" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bV" = (/obj/effect/spider/cocoon,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bW" = (/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bX" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/item/weapon/surgical/surgicaldrill,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bY" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/combat,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"bZ" = (/obj/item/weapon/material/shard{icon_state = "medium"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ca" = (/obj/structure/table/standard,/obj/item/device/reagent_scanner/adv,/turf/simulated/shuttle/floor/purple,/area/submap/CrashedMedShuttle) +"cb" = (/obj/machinery/iv_drip,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/gloves,/obj/random/medical,/obj/random/medical,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cd" = (/obj/effect/spider/stickyweb,/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ce" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer/advanced,/obj/random/firstaid,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cf" = (/obj/structure/table/standard,/obj/item/weapon/storage/backpack/medic,/obj/random/medical/lite,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cg" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/obj/random/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ch" = (/obj/structure/girder,/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"ci" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cj" = (/obj/structure/table/standard,/obj/structure/sign/periodic{pixel_y = -32},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"ck" = (/obj/machinery/optable,/obj/effect/decal/cleanable/blood/splatter,/obj/structure/loot_pile/surface/bones,/obj/random/medical/pillbottle,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cl" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonegel,/obj/item/weapon/surgical/FixOVein,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/mob/living/simple_animal/hostile/giant_spider/nurse{returns_home = 1},/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"cn" = (/obj/structure/table/standard,/obj/item/weapon/storage/belt/medical/emt,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"co" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/autoinjectors,/obj/effect/spider/stickyweb,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cp" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 32},/turf/simulated/shuttle/floor/white,/area/submap/CrashedMedShuttle) +"cq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = null},/turf/simulated/shuttle/plating,/area/submap/CrashedMedShuttle) +"cr" = (/mob/living/bot/medbot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CrashedMedShuttle) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaaaabacadaeafagagagaaaaaaabaa +aaaaaaababaaaaahabaiadajagakalamagagagaaaaaa +aaaaaaaaaaaaaaabanagaoapagaqararasatagagaaaa +aaaaaaaaahaaabauavagawaraxayazaAaraBaCafabaa +aaababaaaDabaEaFaGafaraHagaIaJaKaLaMaNaOabaa +aaabaaaaaPaQacaRaSaxaraTaUagagagagagagagabaa +aaaaaaaaababaVaWaXafaYaZbabbafabbcaabdabaaaa +aaaaaabebfbgagagagagbhabbibjbkbcblbmababaaaa +aaaaaaabbnboarbpbqafbrbsbtbubvbwbxbyabaaaaaa +aaaaabbzbAbBararaAbCararagbDbDbEagagagagaaaa +aDabbFbGbHbIbJararafaTaragbKbLbMbNbObPbQabaa +aaabagagbRbBbSarbTagbUbVbCarbWaraAbXbYbZabaa +aaaaabagagcacbbWccagcdaoagcearcfbLcgchchaaaa +aaaaaaabagcicjckclagcmajagcncocpagchchabaaaa +aaaaaaabagagagagagaecqcqaeafagagchabababaaaa +aaaaaaaaababababcrababaaaaaaababaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/digsite.dmm b/maps/submaps/surface_submaps/mountains/digsite.dmm new file mode 100644 index 0000000000..928a1a85ec --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/digsite.dmm @@ -0,0 +1,63 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/cave/digsite) +"c" = (/turf/simulated/wall/sandstone,/area/submap/cave/digsite) +"d" = (/obj/structure/boulder,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"e" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"f" = (/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"g" = (/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"h" = (/obj/item/weapon/ore,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"i" = (/obj/structure/bed/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"j" = (/obj/structure/cult/talisman,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"k" = (/obj/machinery/artifact,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"l" = (/obj/structure/simple_door/sandstone,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"m" = (/obj/structure/loot_pile/surface/alien,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"n" = (/mob/living/simple_animal/tindalos,/turf/simulated/floor/tiled/kafel_full/yellow,/area/submap/cave/digsite) +"o" = (/obj/structure/closet/crate/secure/loot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"p" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"q" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"r" = (/obj/structure/anomaly_container,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"s" = (/turf/simulated/wall,/area/submap/cave/digsite) +"t" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"u" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"v" = (/obj/structure/table/steel,/obj/item/weapon/storage/excavation,/obj/item/device/measuring_tape,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"w" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"x" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"y" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"z" = (/obj/structure/table/steel,/obj/item/weapon/folder,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"A" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"B" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"C" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"D" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"E" = (/obj/structure/table/rack,/obj/item/weapon/shovel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"F" = (/obj/structure/boulder,/obj/effect/decal/mecha_wreckage/ripley,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"G" = (/obj/structure/boulder,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"H" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/floor/plating/external,/area/submap/cave/digsite) +"I" = (/obj/structure/table/steel,/obj/item/weapon/wrench,/obj/item/weapon/storage/box/samplebags,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"J" = (/obj/structure/table/steel,/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"K" = (/obj/random/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"L" = (/obj/structure/closet/crate,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"M" = (/obj/machinery/floodlight,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) +"N" = (/obj/structure/ore_box,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/digsite) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaabbbbbbbbbbbbbbbaa +aabccccccccdccccceea +abccffcfffghgcficcea +abcfffcffjggfcfffcea +abcfkflffggfffffmcea +abcfffcffffffgfffcea +abccffcffffffgnfccea +abbccccclccfhccggeea +abbbbboeffffepqeeeea +abbbbbbeeeeeeeeeeeea +abbbbbbpeeeeeqereeea +abbbbsteeuveeeerbeea +abbbbwxeyzAeqeBbbbea +abbbbCgeyDEeeeeFbbba +abeeGHgeqIJeeeqbbbba +aeeeKeeeeLMeeeNbbeaa +aaeeeeeeeeeeeeNeeeaa +aaaaaeeeeeeeeeeeeaaa +aaaaaaaaaaaaaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm index 4f04b8c747..2ca679c154 100644 --- a/maps/submaps/surface_submaps/mountains/mountains.dm +++ b/maps/submaps/surface_submaps/mountains/mountains.dm @@ -17,6 +17,13 @@ #include "Rockb1.dmm" #include "ritual.dmm" #include "temple.dmm" +#include "CrashedMedShuttle1.dmm" +#include "digsite.dmm" +#include "vault1.dmm" +#include "vault2.dmm" +#include "vault3.dmm" +#include "vault4.dmm" +#include "vault5.dmm" #endif // The 'mountains' is the mining z-level, and has a lot of caves. @@ -109,6 +116,38 @@ mappath = 'maps/submaps/surface_submaps/mountains/temple.dmm' cost = 20 +/datum/map_template/surface/mountains/normal/crashedmedshuttle + name = "Crashed Med Shuttle" + desc = "A medical response shuttle that went missing some time ago. So this is where they went." + mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm' + cost = 20 + +/datum/map_template/surface/mountains/normal/digsite + name = "Dig Site" + desc = "A small abandoned dig site." + mappath = 'maps/submaps/surface_submaps/mountains/digsite.dmm' + cost = 10 + +/datum/map_template/surface/mountains/normal/vault1 + name = "Mine Vault 1" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/normal/vault2 + name = "Mine Vault 2" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/normal/vault3 + name = "Mine Vault 3" + desc = "A small vault with potential loot. Also a horrible suprise." + mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm' + cost = 15 + /************** * Deep Caves * **************/ @@ -143,4 +182,36 @@ name = "Cave Lake" desc = "A large underground lake." mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm' - cost = 20 \ No newline at end of file + cost = 20 + +/datum/map_template/surface/mountains/deep/vault1 + name = "Mine Vault 1" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault1.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/deep/vault2 + name = "Mine Vault 2" + desc = "A small vault with potential loot." + mappath = 'maps/submaps/surface_submaps/mountains/vault2.dmm' + cost = 5 + allow_duplicates = TRUE + +/datum/map_template/surface/mountains/deep/vault3 + name = "Mine Vault 3" + desc = "A small vault with potential loot. Also a horrible suprise." + mappath = 'maps/submaps/surface_submaps/mountains/vault3.dmm' + cost = 15 + +/datum/map_template/surface/mountains/deep/vault4 + name = "Mine Vault 4" + desc = "A small xeno vault with potential loot. Also horrible suprises." + mappath = 'maps/submaps/surface_submaps/mountains/vault4.dmm' + cost = 20 + +/datum/map_template/surface/mountains/deep/vault5 + name = "Mine Vault 5" + desc = "A small xeno vault with potential loot. Also major horrible suprises." + mappath = 'maps/submaps/surface_submaps/mountains/vault5.dmm' + cost = 25 \ No newline at end of file diff --git a/maps/submaps/surface_submaps/mountains/mountains_areas.dm b/maps/submaps/surface_submaps/mountains/mountains_areas.dm index 25dcf3f300..1e378ed7ca 100644 --- a/maps/submaps/surface_submaps/mountains/mountains_areas.dm +++ b/maps/submaps/surface_submaps/mountains/mountains_areas.dm @@ -46,4 +46,25 @@ name = "Dark Ritual" /area/submap/AbandonedTemple - name = "Abandoned Temple" \ No newline at end of file + name = "Abandoned Temple" + +/area/submap/CrashedMedShuttle + name = "Crashed Med Shuttle" + +/area/submap/cave/digsite + name = "Dig Site" + +/area/submap/cave/vault1 + name = "Mine Vault" + +/area/submap/cave/vault2 + name = "Mine Vault" + +/area/submap/cave/vault3 + name = "Mine Vault" + +/area/submap/cave/vault4 + name = "Mine Vault" + +/area/submap/cave/vault5 + name = "Mine Vault" \ No newline at end of file diff --git a/maps/submaps/surface_submaps/mountains/ritual.dmm b/maps/submaps/surface_submaps/mountains/ritual.dmm index bf32bc492b..2e93dc0081 100644 --- a/maps/submaps/surface_submaps/mountains/ritual.dmm +++ b/maps/submaps/surface_submaps/mountains/ritual.dmm @@ -1,10 +1,10 @@ -"a" = (/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"b" = (/obj/structure/plushie/ian,/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"c" = (/obj/item/weapon/flame/candle/everburn,/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"d" = (/obj/structure/plushie/ian{dir = 8},/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"e" = (/obj/structure/plushie/ian{dir = 4},/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"f" = (/obj/effect/rune,/obj/item/weapon/deck/tarot,/turf/simulated/mineral/floor,/area/submap/CorgiRitual) -"g" = (/obj/structure/plushie/ian{dir = 1},/turf/simulated/mineral/floor,/area/submap/CorgiRitual) +"a" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"b" = (/obj/structure/plushie/ian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"c" = (/obj/item/weapon/flame/candle/everburn,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"d" = (/obj/structure/plushie/ian{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"e" = (/obj/structure/plushie/ian{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"f" = (/obj/structure/ghost_pod/manual/corgi,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) +"g" = (/obj/structure/plushie/ian{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CorgiRitual) (1,1,1) = {" aabaa diff --git a/maps/submaps/surface_submaps/mountains/vault1.dmm b/maps/submaps/surface_submaps/mountains/vault1.dmm new file mode 100644 index 0000000000..c1a5ddadd8 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault1.dmm @@ -0,0 +1,17 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault1) +"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault1) +"d" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/plating,/area/submap/cave/vault1) +"e" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault1) + +(1,1,1) = {" +aaaaaaaaa +aabbbbbaa +abbcdcbba +abcccccba +abcceccba +abcccccba +abbcccbba +aabbbbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault2.dmm b/maps/submaps/surface_submaps/mountains/vault2.dmm new file mode 100644 index 0000000000..0c8e85ce2c --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault2.dmm @@ -0,0 +1,16 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault2) +"c" = (/turf/simulated/floor/plating,/area/submap/cave/vault2) +"d" = (/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault2) + +(1,1,1) = {" +aaaaaaaaa +abbaaabba +abbbbbbba +aabcccbaa +aabcdcbaa +aabcccbaa +abbbbbbba +abbaaabba +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault3.dmm b/maps/submaps/surface_submaps/mountains/vault3.dmm new file mode 100644 index 0000000000..b517d1cdee --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault3.dmm @@ -0,0 +1,21 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/turf/simulated/wall,/area/submap/cave/vault3) +"c" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"d" = (/obj/structure/loot_pile/maint/technical,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"e" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien/drone,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"f" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"g" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"h" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/turf/simulated/floor/plating,/area/submap/cave/vault3) +"i" = (/obj/structure/bed/nest,/turf/simulated/floor/plating,/area/submap/cave/vault3) + +(1,1,1) = {" +aaaaaaaaa +aabbbbbaa +abbcdcbba +abefffgba +abgfhfgba +abgfffeba +abbigibba +aabbbbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault4.dmm b/maps/submaps/surface_submaps/mountains/vault4.dmm new file mode 100644 index 0000000000..7d5213916d --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault4.dmm @@ -0,0 +1,22 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"f" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"i" = (/obj/effect/alien/weeds,/mob/living/simple_animal/hostile/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abdeeghba +aciejeica +abhgeedba +abbfedbba +aabbcbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm new file mode 100644 index 0000000000..1d4befc167 --- /dev/null +++ b/maps/submaps/surface_submaps/mountains/vault5.dmm @@ -0,0 +1,23 @@ +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_animal/hostile/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"i" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_animal/hostile/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abgeeehba +abiejeiba +abheeegba +abbkegbba +aabbcbbaa +aaaaaaaaa +"} diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm index 33c7a8d150..2ca833020d 100644 --- a/maps/submaps/surface_submaps/plains/Diner.dmm +++ b/maps/submaps/surface_submaps/plains/Diner.dmm @@ -24,62 +24,59 @@ "ax" = (/obj/structure/bed/chair/wood,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) "ay" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/simulated/floor/tiled/white,/area/submap/Diner) "az" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aA" = (/obj/structure/simple_door/wood,/turf/simulated/wall,/area/submap/Diner) +"aA" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled,/area/submap/Diner) "aB" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) "aC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aD" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aE" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/submap/Diner) "aF" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aG" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aH" = (/turf/simulated/floor/tiled,/area/submap/Diner) -"aI" = (/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aJ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aK" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aL" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aM" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled,/area/submap/Diner) -"aN" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aO" = (/obj/structure/closet/crate/freezer,/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aP" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aQ" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aS" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/coatrack,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aT" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aU" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aV" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) -"aW" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aX" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aY" = (/obj/machinery/cooker/fryer,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"aZ" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) -"ba" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bb" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/cooker/grill,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bc" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Diner) -"bd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Diner) -"be" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled,/area/submap/Diner) -"bf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bg" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bh" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bi" = (/obj/item/frame/apc,/turf/simulated/floor/lino,/area/submap/Diner) -"bj" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Diner) -"bk" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/lino,/area/submap/Diner) -"bl" = (/turf/simulated/floor/lino,/area/submap/Diner) -"bm" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bn" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/lino,/area/submap/Diner) -"bo" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/turf/simulated/floor/lino,/area/submap/Diner) -"bp" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/submap/Diner) -"bq" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/lino,/area/submap/Diner) -"br" = (/obj/structure/simple_door/wood,/turf/simulated/floor/lino,/area/submap/Diner) -"bs" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/windoor_assembly{tag = "icon-l_windoor_assembly01"; icon_state = "l_windoor_assembly01"; dir = 2},/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bt" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Diner) -"bu" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/space_heater,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bv" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bx" = (/obj/structure/toilet,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"by" = (/obj/structure/bed/chair/wood{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bz" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) -"bA" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bB" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bC" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) -"bD" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"aG" = (/turf/simulated/floor/tiled,/area/submap/Diner) +"aH" = (/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aI" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aJ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aK" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aL" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled,/area/submap/Diner) +"aM" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5; dir = 8},/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aN" = (/obj/structure/closet/crate/freezer,/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aO" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aP" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aQ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aR" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/coatrack,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aS" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aT" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aU" = (/obj/machinery/gibber,/turf/simulated/floor/tiled/freezer,/area/submap/Diner) +"aV" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aW" = (/obj/machinery/cooker/fryer,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aX" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/outdoors/dirt,/area/submap/Diner) +"aY" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"aZ" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/cooker/grill,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"ba" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Diner) +"bb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Diner) +"bc" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bd" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/milk,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"be" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_coffee,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bf" = (/obj/item/frame/apc,/turf/simulated/floor/lino,/area/submap/Diner) +"bg" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Diner) +"bh" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/lino,/area/submap/Diner) +"bi" = (/turf/simulated/floor/lino,/area/submap/Diner) +"bj" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bk" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/lino,/area/submap/Diner) +"bl" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/turf/simulated/floor/lino,/area/submap/Diner) +"bm" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/submap/Diner) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/lino,/area/submap/Diner) +"bo" = (/obj/structure/simple_door/wood,/turf/simulated/floor/lino,/area/submap/Diner) +"bp" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/structure/windoor_assembly{tag = "icon-l_windoor_assembly01"; icon_state = "l_windoor_assembly01"; dir = 2},/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bq" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Diner) +"br" = (/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/space_heater,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bs" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bt" = (/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bu" = (/obj/structure/toilet,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bv" = (/obj/structure/bed/chair/wood{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bw" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/red/diagonal,/turf/simulated/floor/tiled/white,/area/submap/Diner) +"bx" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"by" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) +"bA" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Diner) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -89,22 +86,22 @@ aaabanacacacababadadafaoaoadapapapapapapapadadabaa aaababacacacabadadaqafarasadatapauahavapapawadadaa aaababacacacabadafafafaxaxadapapapapapapapapayadaa aaababacacacabaeaoaoafafafadazazadaAadadaBadadadaa -aaababacacacabaeaCaDafafaEaFaGaGadaHadaIaIaIaJadaa -aaababacacacabaeaxaxafafaEaKafaLadaMadaNaIaIaOadaa -aaababacacacabadafafafafaEaPafaQadaHadaRaIaIaIadaa -aaababacacacacadadadaSafaEaFafaTadaHadaUaIaIaVadaa -aaababacacacacazaWazaXafaEaFafaYadaHadadadadadadaa -aaababacacacaZadadadbaafaEaFafbbadaHbcbdaHbebdbeaa -aaanabacacacabaeaoaoafafaEaFafbfadbcbcbcbcbeaHbeaa -aaababacacacabaeaCaDafafaEaFafbgadbcadadadadadadaa -aaababacacacabaeaxaxafafaEaFafbhadaHadbibjbkbladaa -aaababacacacabadbmaoafafaEaPafahadaHadbnbobpbqadaa -aaababacacacabaeaCaDafafaEaKafaLadaMbrblblblbladaa -aaababacacacabaeaxaxafafaEaFahbsadaHadblblbtbtadaa +aaababacacacabaeaCaDafafaEaFafafadaGadaHaHaHaIadaa +aaababacacacabaeaxaxafafaEaJafaKadaLadaMaHaHaNadaa +aaababacacacabadafafafafaEaOafaPadaGadaQaHaHaHadaa +aaababacacacacadadadaRafaEaFafaSadaGadaTaHaHaUadaa +aaababacacacacazaVazafafaEaFafaWadaGadadadadadadaa +aaababacacacaXadadadaYafaEaFafaZadaGbabbaGaAbbaAaa +aaanabacacacabaeaoaoafafaEaFafbcadbabababaaAaGaAaa +aaababacacacabaeaCaDafafaEaFafbdadbaadadadadadadaa +aaababacacacabaeaxaxafafaEaFafbeadaGadbfbgbhbiadaa +aaababacacacabadbjaoafafaEaOafahadaGadbkblbmbnadaa +aaababacacacabaeaCaDafafaEaJafaKadaLbobibibibiadaa +aaababacacacabaeaxaxafafaEaFahbpadaGadbibibqbqadaa aaababacacacabaeafafafafafafafafadadadadadadadadaa -aaababacacacabadadbuafafafafafafadbvbwbxadadadadaa -aaabababacabababadadafafbyaDbzafbAbwbwbwadadadabaa -aaabanababababababadadafbyaCbzafadbBbCbDadadababaa +aaababacacacabadadbrafafafafafafadbsbtbuadadadadaa +aaabababacabababadadafafbvaDbwafbxbtbtbtadadadabaa +aaabanababababababadadafbvaCbwafadbybzbAadadababaa aaabababababababababadadaeaeaeadadadadadadabababaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/maps/submaps/surface_submaps/plains/Mechpt.dmm b/maps/submaps/surface_submaps/plains/Mechpt.dmm index 3f122e9900..e2a3ecaff1 100644 --- a/maps/submaps/surface_submaps/plains/Mechpt.dmm +++ b/maps/submaps/surface_submaps/plains/Mechpt.dmm @@ -18,7 +18,7 @@ "r" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/turf/template_noop,/area/submap/Mechpt) "s" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/structure/reagent_dispensers/beerkeg,/turf/template_noop,/area/submap/Mechpt) "t" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c50,/turf/template_noop,/area/submap/Mechpt) -"u" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/turf/template_noop,/area/submap/Mechpt) +"u" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/cell/high,/obj/item/weapon/cell/device/weapon,/turf/template_noop,/area/submap/Mechpt) "v" = (/obj/structure/railing{tag = "icon-railing0 (NORTH)"; icon_state = "railing0"; dir = 1},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/turf/template_noop,/area/submap/Mechpt) (1,1,1) = {" diff --git a/maps/submaps/surface_submaps/plains/PooledR.dmm b/maps/submaps/surface_submaps/plains/PooledR.dmm index 8415e01135..554c4cca8f 100644 --- a/maps/submaps/surface_submaps/plains/PooledR.dmm +++ b/maps/submaps/surface_submaps/plains/PooledR.dmm @@ -5,7 +5,7 @@ "e" = (/obj/structure/table/woodentable,/turf/template_noop,/area/submap/PooledR) "f" = (/obj/structure/table/woodentable,/obj/item/weapon/material/knife,/turf/template_noop,/area/submap/PooledR) "g" = (/obj/structure/flora/ausbushes/palebush,/turf/template_noop,/area/submap/PooledR) -"h" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/energy/retro,/turf/template_noop,/area/submap/PooledR) +"h" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/energy/retro{cell_type = /obj/item/weapon/cell/device/weapon/empty},/turf/template_noop,/area/submap/PooledR) "i" = (/obj/structure/flora/ausbushes/reedbush,/turf/template_noop,/area/submap/PooledR) "j" = (/turf/simulated/floor/outdoors/rocks,/area/submap/PooledR) "k" = (/obj/structure/flora/ausbushes,/turf/template_noop,/area/submap/PooledR) diff --git a/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm b/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm index 37b3484d14..392d18aa52 100644 --- a/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm +++ b/maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm @@ -14,103 +14,110 @@ "an" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) "ao" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) "ap" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aq" = (/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"ar" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"as" = (/obj/machinery/organ_printer/flesh,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"at" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) -"au" = (/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"av" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/p90,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aw" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ax" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ay" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"az" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aA" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aB" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) -"aC" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown) -"aD" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aE" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aF" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aG" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aH" = (/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aI" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aK" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor/full,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aL" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"aM" = (/obj/effect/floor_decal/borderfloor/corner,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aN" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aO" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aP" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aQ" = (/obj/structure/table/standard,/obj/item/weapon/tank/anesthetic,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aR" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile,/obj/item/clothing/gloves/sterile,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aS" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/item/weapon/reagent_containers/spray/sterilizine,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aT" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aV" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aW" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"aX" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) -"aY" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown) -"aZ" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ba" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bb" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bc" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bd" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"be" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bf" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bg" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bh" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bi" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bj" = (/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/submap/Blackshuttledown) -"bk" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bn" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bo" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bp" = (/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) -"br" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bs" = (/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bt" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bu" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bv" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bw" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bx" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"by" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) -"bA" = (/obj/machinery/power/apc{dir = 8; name = "BSD APC"; pixel_x = -24},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bB" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bC" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bD" = (/obj/effect/floor_decal/borderfloor{dir = 4},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bE" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bF" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bG" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bH" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bI" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bJ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bK" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bL" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) -"bM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bN" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bO" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bP" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bQ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bR" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bS" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bT" = (/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bU" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bV" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"bW" = (/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"bY" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"bZ" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"ca" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) -"cb" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) -"cc" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cd" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ce" = (/obj/structure/table/woodentable,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cf" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"cg" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) -"ch" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) -"ci" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) +"aq" = (/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"ar" = (/obj/machinery/gibber,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"as" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"at" = (/obj/machinery/bodyscanner{dir = 8},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"au" = (/obj/machinery/body_scanconsole,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"av" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) +"aw" = (/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ax" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/p90,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ay" = (/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"az" = (/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aA" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aB" = (/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aC" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aD" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aE" = (/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aF" = (/obj/machinery/organ_printer/flesh,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aG" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) +"aH" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown) +"aI" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aJ" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aK" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aL" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aM" = (/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aN" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aO" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aP" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aQ" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor/full,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aR" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"aS" = (/obj/effect/floor_decal/borderfloor/corner,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aT" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"aV" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aW" = (/obj/structure/table/standard,/obj/item/weapon/tank/anesthetic,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aX" = (/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aY" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile,/obj/item/clothing/gloves/sterile,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/item/weapon/reagent_containers/spray/sterilizine,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"ba" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/masks,/obj/effect/floor_decal/corner/green/border{tag = "icon-bordercolor (SOUTHEAST)"; icon_state = "bordercolor"; dir = 6},/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"bb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bc" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bd" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"be" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/white,/area/submap/Blackshuttledown) +"bf" = (/turf/simulated/floor/tiled/steel,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown) +"bg" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bh" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bi" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bj" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bk" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bl" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bm" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bn" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bo" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bp" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bq" = (/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/submap/Blackshuttledown) +"br" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bu" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bv" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bw" = (/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) +"by" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bz" = (/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bA" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bB" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bC" = (/obj/structure/table/steel,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bD" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bE" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bF" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown) +"bH" = (/obj/machinery/power/apc{dir = 8; name = "BSD APC"; pixel_x = -24},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bI" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bJ" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bK" = (/obj/effect/floor_decal/borderfloor{dir = 4},/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bL" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bM" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bN" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bO" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bP" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bQ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bR" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bS" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown) +"bT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bU" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bV" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"bW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bX" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bY" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"bZ" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"ca" = (/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cb" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"cc" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"cd" = (/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"ce" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cf" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cg" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ch" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel_grid,/area/submap/Blackshuttledown) +"ci" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Blackshuttledown) +"cj" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"ck" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/borderfloor{dir = 6},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cl" = (/obj/structure/table/woodentable,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"cn" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown) +"co" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown) +"cp" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -122,24 +129,24 @@ aaabababababadadadabacababababagagagagagagabababababacabafabadabababaa aaababababababadadabafababababagahabababagabababababababababababababaa aaabababababababaiajajajakababagabababahagabababafaiajajajajakabababaa aaabababababababajajajajajajajajajababajajajajajajajajajajajalamababaa -aaababababafababajajajajajajanaoajapapajaqaqaraqasajajajajajalamababaa -aaabababababababatajajauavajawaxajayayajaqazaqaqaqaqaAajajaBababababaa -aaabababababababaCajajaDaEajawaFaGaGaHajaqaqaqaqaIaqaJajaBabababababaa -aaabafababababaCajaKajauaLajawaMaNaNaOajaPaQaqaqaRaSaTajababababafabaa -aaabababababaCajaUaVajaWajajawaxajajajajajajaXajajajajajaYabababababaa -aaabababababajaZbaaxajbbaGaGbaaxajbcbdbebfbebgbeajbhbhbiajaYababababaa -aaabababababbjbkbeaxajblbebebebmajbebebnbnbnbebeajbobebebpalamabababaa -aaabababababbqbkbeaFbrbabebsbebebtbebebubvbvbebebwbebebebpalamabababaa -aaabababababbqbkbeaMbxbybebebebebtbebebvbvbvbebebwbebebebpalamabababaa -aaabababababbzbkbeaxajblbebebebmajbebebnbnbnbebeajbAbebebBalamabababaa -aaabababababajbCbybDajbEaNaNbybFajbGbHbebIbgbebeajbJbKbLajaBababababaa -aaabababababatajbMbNajaWajajawaxajajajajajajbtajajajajajaBabababababaa -aaababababababatajaKajaubOajawbPaGaGbQajbRbebebebebSbTajababababababaa -aaabafabababababatajajbUbVajawaMaNaNbWajbXbebRbebRajbYajaYabafabababaa -aaabababababababaCajajbZcaajawbDajayayajbRbebRbebRajcbajajaYababababaa -aaabababababababajajajajajajcccdajapapajbRcecfcecgajajajajalamabababaa +aaababababafababajajajajajajanaoajapapajaqarasatauajajajajajalamababaa +aaabababababababavajajawaxajayazajaAaAajaBaCaDaEaEaEaFajajaGababababaa +aaabababababababaHajajaIaJajayaKaLaLaMajaBaNaNaEaOaDaPajaGabababababaa +aaabafababababaHajaQajawaRajayaSaTaTaUajaVaWaEaXaYaZbaajababababafabaa +aaabababababaHajbbbcajbdajajayazajajajajajajbeajajajajajbfabababababaa +aaabababababajbgbhazajbiaLaLbhazajbjbkblbmblbnblajbobobpajbfababababaa +aaabababababbqbrblazajbsblblblbtajblblbububublblajbvblblbwalamabababaa +aaabababababbxbrblaKbybhblbzblblbAblblbBbCbCblblbDblblblbwalamabababaa +aaabababababbxbrblaSbEbFblblblblbAblblbCbCbCblblbDblblblbwalamabababaa +aaabababababbGbrblazajbsblblblbtajblblbububublblajbHblblbIalamabababaa +aaabababababajbJbFbKajbLaTaTbFbMajbNbOblbPbnblblajbQbRbSajaGababababaa +aaabababababavajbTbUajbdajajayazajajajajajajbAajajajajajaGabababababaa +aaababababababavajaQajawbVajaybWaLaLbXajbYblblblblbZcaajababababababaa +aaabafabababababavajajcbccajayaSaTaTcdajceblbYblbYajcfajbfabafabababaa +aaabababababababaHajajcgchajaybKajaAaAajbYblbYblbYajciajajbfababababaa +aaabababababababajajajajajajcjckajapapajbYclcmclcnajajajajalamabababaa aaabababababababajajajajajajajajajababajajajajajajajajajajalamabababaa -aaababafababababchajajajciababagahabababagabababchajajajajciababababaa +aaababafababababcoajajajcpababagahabababagabababcoajajajajcpababababaa aaabababadabababababafababababagabababahagababafabafabababadadadababaa aaababadadabacababababafabababagagagagagagababababacababadadadadababaa aaabadadadabababababababaeababababababababababadadabababadadadadababaa diff --git a/maps/submaps/surface_submaps/wilderness/CaveS.dmm b/maps/submaps/surface_submaps/wilderness/CaveS.dmm index 9f5a411ec5..229837b4f3 100644 --- a/maps/submaps/surface_submaps/wilderness/CaveS.dmm +++ b/maps/submaps/surface_submaps/wilderness/CaveS.dmm @@ -5,37 +5,39 @@ "e" = (/obj/item/ammo_casing/a45,/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) "f" = (/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) "g" = (/obj/item/ammo_casing/a45,/obj/random/landmine,/turf/template_noop,/area/submap/CaveS) -"h" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"i" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"h" = (/obj/random/landmine,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"i" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) "j" = (/obj/item/ammo_casing/a45,/obj/item/ammo_casing/a45,/turf/template_noop,/area/submap/CaveS) -"k" = (/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"k" = (/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) "l" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/template_noop,/area/submap/CaveS) -"m" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"n" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"o" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"p" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"q" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"r" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"s" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"t" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"u" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"v" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"w" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) -"x" = (/turf/simulated/floor,/area/submap/CaveS) -"y" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) -"z" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) -"A" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) -"B" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) -"C" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) -"D" = (/turf/simulated/wall,/area/submap/CaveS) -"E" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) -"F" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) -"G" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) -"H" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) -"I" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) -"J" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) -"K" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) -"L" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) +"m" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"n" = (/obj/item/clothing/accessory/storage/webbing,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"o" = (/mob/living/simple_animal/hostile/giant_spider,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"p" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"q" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"r" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"s" = (/mob/living/simple_animal/hostile/giant_spider/webslinger,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"t" = (/obj/effect/decal/cleanable/cobweb2,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"u" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"v" = (/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt,/area/submap/CaveS) +"w" = (/mob/living/simple_animal/hostile/giant_spider/hunter,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"x" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"y" = (/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/CaveS) +"z" = (/turf/simulated/floor,/area/submap/CaveS) +"A" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/toolbox,/obj/random/toolbox,/turf/simulated/floor,/area/submap/CaveS) +"B" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor,/area/submap/CaveS) +"C" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/submap/CaveS) +"D" = (/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"E" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/submap/CaveS) +"F" = (/turf/simulated/wall,/area/submap/CaveS) +"G" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/antitox,/obj/item/weapon/reagent_containers/pill/paracetamol,/obj/random/firstaid,/obj/random/landmine,/turf/simulated/floor,/area/submap/CaveS) +"H" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/submap/CaveS) +"I" = (/obj/structure/closet/crate,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/energy,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/obj/item/weapon/material/star,/turf/simulated/floor,/area/submap/CaveS) +"J" = (/obj/effect/spider/stickyweb,/mob/living/simple_animal/hostile/giant_spider/lurker,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/CaveS) +"K" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/submap/CaveS) +"L" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/submap/CaveS) +"M" = (/obj/machinery/computer/communications,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/submap/CaveS) +"N" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/floor,/area/submap/CaveS) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -49,31 +51,31 @@ abbbbbbbbbbbbbbbbbbbbbbbeddddddddbbddbba abbbbbbbbbbbbbbbbbbbbbfbdddddddddddddbba abbbbdddddbbbbcbbbbgbbbhiddddddddddddbba abbbbddddddddbbbbbjbbfbkkddddddddddddbba -abbbddddddddddbbbbcblbdikiidddddddddbbba -abbbdddddddddddbbbbbbdddikkkdddddddbbbba -abbbddddddddddddbbbbddddddhkiddddddbbbba -abbdddddmdkkidddbbddddddddkkkkkkddddbbba -abbdddnkkkkkkdddbbdddddddokkkkkkndddbbba -abbdddikkkkkpddbbddddddddkkkkkkkdddddbba -abbddddkkkkkdddbdddddddddkkddddkqddddbba +abbbddddddddddbbbbcblbdmkiidddddddddbbba +abbbdddddddddddbbbbbbdddmkkkdddddddbbbba +abbbddddddddddddbbbbddddddhkmddddddbbbba +abbdddddndkkidddbbddddddddkkkkkkddddbbba +abbdddokkkkkkdddbbdddddddpkkkkkkodddbbba +abbdddikkkkkqddbbddddddddkkkkkkkdddddbba +abbddddkkkkkdddbdddddddddkkddddkrddddbba abdddddddkkkkddddddddddddhkddddkkdddddba -abdddddddkkkkqdddddoknkkkkddddokddddddba +abdddddddkkkkrdddddpkokkkkddddpkddddddba abddddddddkkkkkkkkkkkkkkkkddddhkddddddda -abdddddddddrkkkkkkkkkkkkkkksddkkddddddda -abdddddttdddddkkdddpdddddikkkkkkddddddba -abdddttttdddddkkddddddddddkkkkuddddddbba -abddtvtttdddddkkpdddddddddddddddddddbbba -abddttwtttdddddkkkkkddddddddpkddddddbbba -abdddtttvtiddddkkkkkkkhidddkkkkkdddbbbba -abdddtttwtkkkkkkkdkkkkkiddkkxxykkkddbbba -abddtttttttkkkkidddikkkhkkkkxxxzkdddbbba -abddttttttkkddddddddkhkkkkkxAABxkkddbbba -abdddtttttkkpddddddkkkidkkxCDDEkkkdddbba -abdddddvtkkddddddikkkkddkkxFDDGkkddddbba -abdddddddtiddddddHkkkkddkkxIJKBxddddbbba -abbddddddddddddddkkkkkdddkkxxxxdddddbbba -abbdddddddddddddddkidddddkkkxLdddddbbbba -abbdddddddddddddddddddddddpkkddddbbbbbba +abdddddddddskkkkkkkkkkkkkkktddkkddddddda +abddddduudddddkkdddvdddddikkkkkkddddddba +abddduuuudddddkkddddddddddkkkkwddddddbba +abdduxuuudddddkkqdddddddddddddddddddbbba +abdduuyuuudddddkkkkkddddddddqkddddddbbba +abddduuuxuiddddkkkkkkkhidddkkkkkdddbbbba +abddduuuyukkkkkkkdkkkkkiddkkzzAkkkddbbba +abdduuuuuuukkkkidddikkkhkkkkzzzBkdddbbba +abdduuuuuukkddddddddkhkkkkkzCCDzkkddbbba +abddduuuuukkvddddddkkkidkkzEFFGkkkdddbba +abdddddxukkddddddikkkkddkkzHFFIkkddddbba +abddddddduiddddddJkkkkddkkzKLMDzddddbbba +abbddddddddddddddkkkkkdddkkkzzzdddddbbba +abbdddddddddddddddkidddddkkkzNdddddbbbba +abbdddddddddddddddddddddddqkkddddbbbbbba abbbdddddddddddddddddddddddddddbbbbbbbba abbbddddbbbbdddddddbbdddddddddbbbbbbbbba abbbddbbbbbbbddddbbbbdbbdddddbbbbbbbbbba diff --git a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm index bebe7a2de8..6e4dd855c7 100644 --- a/maps/submaps/surface_submaps/wilderness/MCamp1.dmm +++ b/maps/submaps/surface_submaps/wilderness/MCamp1.dmm @@ -17,7 +17,7 @@ "q" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) "r" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/MilitaryCamp1) "s" = (/obj/machinery/computer/communications,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) -"t" = (/obj/structure/table/standard,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) +"t" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/energy/gun,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) "u" = (/obj/effect/mine,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) "v" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/MilitaryCamp1) "w" = (/obj/machinery/computer/security,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor,/area/submap/MilitaryCamp1) @@ -28,12 +28,12 @@ "B" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/template_noop,/area/submap/MilitaryCamp1) "C" = (/obj/structure/table,/turf/simulated/floor,/area/submap/MilitaryCamp1) "D" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"E" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"F" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) -"G" = (/obj/random/landmine,/turf/template_noop,/area/template_noop) -"H" = (/obj/effect/decal/cleanable/dirt,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"I" = (/obj/structure/table/standard,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor,/area/submap/MilitaryCamp1) -"J" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/gun,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"E" = (/obj/effect/decal/cleanable/dirt,/obj/random/landmine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"F" = (/obj/machinery/door/airlock,/obj/effect/mine,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"G" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/MilitaryCamp1) +"H" = (/obj/random/landmine,/turf/template_noop,/area/template_noop) +"I" = (/obj/structure/table/standard,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor,/area/submap/MilitaryCamp1) +"J" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor,/area/submap/MilitaryCamp1) "K" = (/obj/effect/decal/cleanable/blood,/obj/random/landmine,/turf/template_noop,/area/submap/MilitaryCamp1) (1,1,1) = {" @@ -47,10 +47,10 @@ abbdmmqoormstqmmbeba abbbmmqruvmwxxmmbbda abbymmzmmAmmmzmrBdba abbbomqoovoqAvmmbbba -afdbomqooCDqvvmmbida -abbbrmzEmmmmzzmrbFba -GbbBmmqorvHvqqmmbbba -aFbbmmIJmooqqqmmpbKa +afdbomqooCDqEvmmbida +abbbrmzFmmmmzzmrbGba +HbbBmmqorvEvqqmmbbba +aGbbmmIJmooqqqmmpbKa abbebmmmmzommmmbibba abddbbmmmvommmbcciba abcbbdbmmbymmbgcbbba diff --git a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm index b42bbb2ad1..71692f80da 100644 --- a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm +++ b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm @@ -25,149 +25,157 @@ "ay" = (/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "az" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "aA" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aB" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"aC" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aD" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aE" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aF" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aG" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aH" = (/obj/structure/table/standard,/obj/item/device/laptop,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aI" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aJ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aK" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aL" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aM" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aN" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aO" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aP" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aQ" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aR" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"aS" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aV" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aW" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aX" = (/obj/machinery/vending/security,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aY" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ba" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bb" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bc" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"bd" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) -"be" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bf" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bg" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bh" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bi" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bj" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bk" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bl" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bm" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bn" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bo" = (/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bp" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bq" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"br" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bs" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bt" = (/obj/structure/door_assembly,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bw" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bx" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"by" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bz" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bA" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bB" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bC" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bD" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bE" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bF" = (/obj/effect/decal/remains,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bG" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bH" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bI" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"bK" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bL" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bM" = (/turf/simulated/wall,/area/submap/Rockybase) -"bN" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/obj/item/borg/upgrade/syndicate,/obj/item/borg/upgrade/vtec,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bO" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bP" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bQ" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bR" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bS" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bT" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bU" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bW" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bX" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"bY" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bZ" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ca" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cb" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cc" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cd" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ce" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cf" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cg" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ch" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"ci" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"ck" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cn" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) -"co" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cp" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cq" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"cr" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cs" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) -"ct" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) -"cu" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cv" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cw" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cx" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cy" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cz" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cA" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cC" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cD" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) -"cE" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cG" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cH" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) -"cI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) -"cJ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) -"cK" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cL" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cM" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cN" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cO" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cP" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cR" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) -"cT" = (/obj/item/mecha_parts/part/gygax_right_leg,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cU" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) -"cV" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cX" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) -"cY" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"da" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"db" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dc" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dd" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"de" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"df" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dg" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dh" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"di" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dj" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dk" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dl" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dm" = (/obj/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dn" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) +"aB" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aC" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"aD" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aE" = (/mob/living/bot/cleanbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aF" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aG" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aH" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aI" = (/obj/structure/table/standard,/obj/item/device/laptop,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aJ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aK" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aL" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aM" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTH)"; icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aN" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aO" = (/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"aP" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"aQ" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (NORTHWEST)"; icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aR" = (/obj/structure/closet/crate/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (NORTHEAST)"; icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aS" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aT" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"aU" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aV" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aW" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aY" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aZ" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ba" = (/obj/machinery/vending/security,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bb" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bc" = (/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bd" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"be" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bf" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bg" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bh" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) +"bi" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bj" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bk" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bl" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/effect/floor_decal/corner/red/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bm" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bn" = (/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bo" = (/obj/effect/floor_decal/corner/red/border,/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bp" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bq" = (/obj/machinery/light,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"br" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bs" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bt" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bu" = (/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (WEST)"; icon_state = "bordercolor"; dir = 8},/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bv" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bw" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bx" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"by" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bz" = (/obj/structure/door_assembly,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bC" = (/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bE" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bF" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bG" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bH" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bI" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bJ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bK" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bL" = (/obj/effect/decal/remains,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bM" = (/obj/machinery/light,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bN" = (/obj/effect/decal/cleanable/blood,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bO" = (/obj/item/mecha_parts/part/gygax_right_arm,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bP" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bQ" = (/mob/living/simple_animal/hostile/viscerator{returns_home = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"bR" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bS" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bT" = (/turf/simulated/wall,/area/submap/Rockybase) +"bU" = (/obj/structure/table/standard,/obj/item/device/kit/paint/gygax/darkgygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bV" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bW" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bX" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bY" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bZ" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ca" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cb" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cc" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cd" = (/obj/structure/door_assembly,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ce" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"cf" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cg" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ch" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ci" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cj" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ck" = (/obj/item/mecha_parts/part/gygax_torso,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cl" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cm" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cn" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"co" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cp" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cq" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cr" = (/obj/structure/table/standard,/obj/item/device/mmi/digital/robot,/obj/item/weapon/stock_parts/capacitor/adv,/obj/item/weapon/stock_parts/scanning_module/adv,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ct" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/submap/Rockybase) +"cv" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cw" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cx" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cy" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase) +"cA" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase) +"cB" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cC" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"cD" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cE" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cF" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cG" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cH" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cJ" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cK" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/submap/Rockybase) +"cL" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cN" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase) +"cP" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase) +"cQ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) +"cR" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cS" = (/mob/living/simple_animal/hostile/mecha/malf_drone{name = "Autonomous Mechanized Drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cT" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cU" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cV" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cX" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"cZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) +"da" = (/obj/item/mecha_parts/part/gygax_right_leg,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"db" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) +"dc" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"de" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) +"df" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dh" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (EAST)"; icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"di" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dj" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dk" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/obj/item/stack/material/phoron{amount = 25},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dl" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dm" = (/obj/structure/table/standard,/obj/item/mecha_parts/part/gygax_head,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dn" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"do" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dp" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dq" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dr" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) +"ds" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dt" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (SOUTHWEST)"; icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"du" = (/obj/structure/closet/crate/secure/hydrosec,/obj/effect/floor_decal/corner/lime/border{tag = "icon-bordercolor (SOUTHEAST)"; icon_state = "bordercolor"; dir = 6},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dv" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop) (1,1,1) = {" aaabababababababababababababababababababaaababababababababababababababababababababababababababababaa @@ -180,24 +188,24 @@ abadadafafafafafafagadadadafafafafafadadadadadadadadahahahahahahadadadadadadadad abadafafafafafafafafafafafafafafafafafadadadadadaiahahajahahahahahaiadadadadadafafafafafafafafafadab akadafafafafafafafafafafafafafafafafafafafafafalalamalalalalalanamalalafafafafafafafafafafafafafadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoapaqaqapaoaoaoaoaoaoaoaoaoaoaoaoaoafafafafadab -abadafaoaoarasataoauavawaxayayavazaAazavaBaoaoaCaDaEaFaoaGaGaoaHaIaJaKaLaMaoaGaNaoaOaPaoaoafafafadab -abafafaoaoaQasaRaoayayayayayayayayayayayayaoaoaSaGaGaTaoaUaGaoaVaWaGaGaGaXaoaGaYaoaGaZaoaoafafafadab -abafafaoaoaQasbaaoaybbayaybcayavbdavazavazaoaobeaGbfbgaoaGaGaobhbiaGaGaGaGbjbkblaoaGbmaoaoafafafadab -abafafaoaoasasasaoaoaobnaoaoaoaoaoaoaoaoaoaoaoaobnaoaoaoaqaqaoaoaoaoaobnaoaoaoaoaobobpaoaoafafafadab -abafafaoaoaobnaoaobqbrbrbrbrbsbrbrbrbrbtbrbsbrbrbrbrbrbrbrbrbrbrbsbrbrbrbrbububvaoaGbmaoaoafafafadab -abafafaoaoaUaGaGaGaGaGaGbwbxbxaGbybzaGaGaGaGaGaGaGaGaGaGbxaGaGaGaGaGaGaGaGbwbxbxbnaGbmaoaoafafafadab -abadafaoaoaobAaoaobBbCbCbDbDbDbCbCbCbEaGahbFbGbCbHbCbDbDbDbCbCbCbCbCbGbCbCbCbCbIaoaGbpaoaoafafafadab -abadafaoaobJasasaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobKaoaoaoaobLaoaoaoaoaoaoaoaoaoaoaGbmaoaoafafafadab -abadafaoaobMbMasaobNbObPbQbRbSbTbUbVbWahbXbYaobZcaaGcbccaocdbLaGcecfcgbxaGaGaGchaoaGbmaoaoafafafadab -abadafaoaocibAcjaoaGaGaGaGaGaGaGaGaGbLbLahckaoaGaGclcmcnaocoaGbxbxcpcqcrcsctaGcuaoaGbpaoaoafafafaeab -abadafaoaobMbMcvaoaGcwaGaGcwaGaGcxaGcybLahczaocAbxcBcCcDaocEaGbxcFcGcHcIcGcJahaGaoaGbmaoaoafafadadab -abadafaoaocibAasaocAaGaGcKaGcLaGcMbxcMbLbLcNaocOcPcQcPcRaoaGaGbxcScIcIcGcsahbXaGaoaGcTaoaoafafadadab -abadafaoaobMbMcUaoaGcwaGaGahahbxbxbxbxaGaGcVaoaGaGcWcCcXaocYaGaGcZcGcrcrcrcrahbxaoaGdaaoaoafagadadab -abadafaoaocibAasaoaGaGaGaGaGaGbkdbaGdbaGaGcaaodcdddeaGdfaodgaGdhaGaGdictdidjbxdkaodldmaoaoafafadadab +abadafaoaoarasataoauavawaxayayavazaAaBavaCaoaoaDaEaFaGaoaHaHaoaIaJaKaLaMaNaoaOaPaoaQaRaoaoafafafadab +abafafaoaoaSasaTaoayayayayayayayayayayayayaoaoaUaHaHaVaoaWaHaoaXaYaZaHaHbaaoaObbaobcbdaoaoafafafadab +abafafaoaoaSasbeaoaybfayaybgayavbhavaBavazaoaobiaHbjbkaoaHaHaoblbmbnbnbobnbpbqbraobcbsaoaoafafafadab +abafafaoaoasasasaoaoaobtaoaoaoaoaoaoaoaoaoaoaoaobtaoaoaoaqaqaoaoaoaoaobtaoaoaoaoaobubvaoaoafafafadab +abafafaoaoaobtaoaobwbxbxbxbxbybxbxbxbxbzbxbybxbxbxbxbxbxbxbxbxbxbybxbxbxbxbAbAbBaobcbsaoaoafafafadab +abafafaoaoaWaHaHaHaHaHaHbCbDbDaHbEbFaHaHaHaHaHaHaHaHaHaHbDaHaHaHaHaHaHaHaHbCbDbDbtbcbsaoaoafafafadab +abadafaoaoaobGaoaobHbIbIbJbJbJbIbIbIbKaHahbLbMbIbNbIbJbJbJbIbIbIbIbIbMbIbIbIbIbOaobcbvaoaoafafafadab +abadafaoaobPasbQaoaoaoaoaoaoaoaoaoaoaoahahaoaoaoaobRaoaoaoaobSaoaoaoaoaoaoaoaoaoaobcbsaoaoafafafadab +abadafaoaobTbTasaobUbVbWbXbYbZcacbcccdahcecfaocgchaHcicjaockbSaHclcmcnbDaHaHaHcoaobcbsaoaoafafafadab +abadafaoaocpbGcqaoaHaHaHaHaHaHaHaHaHbSbSahcraoaHaHcsctcuaocvaHbDbDcwcxcyczcAaHcBaobcbvaoaoafafafaeab +abadafaoaobTbTcCaoaHcDaHaHcDaHaHcEaHcFbSahcGaocHbDcIcJcKaocLaHbDcMcNcOcPcNcQahaHaobcbsaoaoafafadadab +abadafaoaocpbGasaocHaHaHcRaHcSaHcTbDcTbSbScUaocVcWcXcWcYaoaHaHbDcZcPcPcNczahceaHaobcdaaoaoafafadadab +abadafaoaobTbTdbaoaHcDaHaHahahbDbDbDbDaHaHdcaoaHaHddcJdeaodfaHaHdgcNcycycycyahbDaobcdhaoaoafagadadab +abadafaoaocpbGasaoaHaHaHaHaHaHdidjaHdjaHaHchaodkdldmaHdnaodoaHdpaHaHdqcAdqdrbDdsaodtduaoaoafafadadab abadafafaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadadadab abadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadafafafadadadafafafafafafafadadadadab abadadafafafafafafafafafafafafagadadadafafafafafafadadadadadadadadadadadadadadadadadadadadadadadadab abadaeadadadadadadafafafafafadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadab -aaabdnababababababababababababababababababaaababababababababababababababababakababababababdnabakabab +aaabdvababababababababababababababababababaaababababababababababababababababakababababababdvabakabab "}