From 6c3d5c3e4be95c2b04eaa03bf789a89f6418b288 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sun, 12 May 2013 10:18:34 -0600 Subject: [PATCH 1/8] Removed Roboticist from engineering_positions Used in assigning department-wide jobbans --- code/game/jobs/jobs.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index a587472d74a..c62958f84db 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -67,14 +67,13 @@ var/list/engineering_positions = list( "Chief Engineer", "Station Engineer", "Atmospheric Technician", - "Roboticist" ) var/list/medical_positions = list( "Chief Medical Officer", "Medical Doctor", - "Geneticist", + "Geneticist", //Part of both medical and science "Virologist", "Chemist" ) @@ -84,7 +83,7 @@ var/list/science_positions = list( "Research Director", "Scientist", "Geneticist", //Part of both medical and science - "Roboticist" //Part of both engineering and science + "Roboticist" ) From 0c47147ab18b3d78da5b0bce4f4af17fe9b0cd5c Mon Sep 17 00:00:00 2001 From: Cheridan Date: Mon, 13 May 2013 12:20:12 -0500 Subject: [PATCH 2/8] Phase 2 of my master plan: -Adds a Service headset channel, given to the botanists, barman, and chef. The HoP also gets the service channel on his headset. Note: The Service Preset Server will have to be added to Telecomms on the map before the channel is usable. I'll put up the map when/if this gets merged. --- code/game/communications.dm | 3 ++- code/game/jobs/job/civilian.dm | 3 +++ code/game/machinery/telecomms/broadcaster.dm | 16 ++++++++-------- code/game/machinery/telecomms/presets.dm | 18 +++++++++--------- .../items/devices/radio/encryptionkey.dm | 12 +++++++++--- .../objects/items/devices/radio/headset.dm | 7 +++++++ code/game/objects/items/devices/radio/radio.dm | 6 +++--- code/modules/mob/living/say.dm | 2 ++ code/modules/research/message_server.dm | 6 +++--- .../scripting/Implementations/Telecomms.dm | 1 + 10 files changed, 47 insertions(+), 27 deletions(-) diff --git a/code/game/communications.dm b/code/game/communications.dm index 5220d157e75..c5fc236456c 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -107,9 +107,10 @@ var/list/radiochannels = list( "Deathsquad" = 1441, "Syndicate" = 1213, "Supply" = 1347, + "Service" = 1349, ) //depenging helpers -var/list/DEPT_FREQS = list(1351,1355,1357,1213,1441,1347) +var/list/DEPT_FREQS = list(1351,1355,1357,1213,1441,1347,1349) var/const/SEC_FREQ = 1359 //security, colored cyan in chat window var/const/COMM_FREQ = 1353 //command, colored gold in chat window var/const/SYND_FREQ = 1213 diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index e2cf380a9cc..b407cfaf904 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -16,6 +16,7 @@ if(!H) return 0 if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) @@ -54,6 +55,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -78,6 +80,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 4e9d980c614..d50dfff32fa 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -348,8 +348,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -411,8 +411,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_deathsquad += blackbox_msg if(1213) blackbox.msg_syndicate += blackbox_msg -// if(1349) -// blackbox.msg_mining += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else @@ -634,8 +634,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -692,8 +692,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_deathsquad += blackbox_msg if(1213) blackbox.msg_syndicate += blackbox_msg -// if(1349) -// blackbox.msg_mining += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 0cd533cf274..4cce0abc451 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -30,7 +30,7 @@ id = "Hub" network = "tcommsat" autolinkers = list("hub", "relay", "s_relay", "m_relay", "r_relay", "science", "medical", - "supply", "common", "command", "engineering", "security", + "supply", "service", "common", "command", "engineering", "security", "receiverA", "receiverB", "broadcasterA", "broadcasterB") //Receivers @@ -41,7 +41,7 @@ id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(1351, 1355, 1347) // science, medical, supply + freq_listening = list(1351, 1355, 1347, 1349) // science, medical, supply, service //--PRESET RIGHT--// @@ -70,8 +70,8 @@ /obj/machinery/telecomms/bus/preset_two id = "Bus 2" network = "tcommsat" - freq_listening = list(1347) - autolinkers = list("processor2", "supply") + freq_listening = list(1347,1349) + autolinkers = list("processor2", "supply", "service") /obj/machinery/telecomms/bus/preset_three id = "Bus 3" @@ -132,12 +132,12 @@ id = "Supply Server" freq_listening = list(1347) autolinkers = list("supply") -/* -/obj/machinery/telecomms/server/presets/mining - id = "Mining Server" + +/obj/machinery/telecomms/server/presets/service + id = "Service Server" freq_listening = list(1349) - autolinkers = list("mining") -*/ + autolinkers = list("service") + /obj/machinery/telecomms/server/presets/common id = "Common Server" freq_listening = list() diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 048b719bc53..fde473ff016 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -72,7 +72,7 @@ name = "Captain's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0) + channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0) /obj/item/device/encryptionkey/heads/rd name = "Research Director's Encryption Key" @@ -102,7 +102,7 @@ name = "Head of Personnel's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Command" = 1, "Security" = 0) + channels = list("Supply" = 1, "Command" = 1, "Service" = 1, "Security" = 0) /* /obj/item/device/encryptionkey/headset_mine name = "Mining Radio Encryption Key" @@ -120,4 +120,10 @@ name = "Supply Radio Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cargo_cypherkey" - channels = list("Supply" = 1) \ No newline at end of file + channels = list("Supply" = 1) + +/obj/item/device/encryptionkey/headset_service + name = "Service Radio Encryption Key" + desc = "An encyption key for a radio headset. Contains cypherkeys." + icon_state = "srv_cypherkey" + channels = list("Service" = 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index cf2a5cced33..af5c2fe4ce3 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -156,6 +156,13 @@ item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo +/obj/item/device/radio/headset/headset_service + name = "service radio headset" + desc = "Headset used by the foodservice and entertainment staff. To access the service channel, use :q." + icon_state = "srv_headset" + item_state = "headset" + keyslot2 = new /obj/item/device/encryptionkey/headset_service + /obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() user.set_machine(src) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 8d08999cb9b..add810a65ee 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -473,8 +473,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -521,7 +521,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use if(1213) blackbox.msg_syndicate += blackbox_msg if(1349) - blackbox.msg_mining += blackbox_msg + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 4f12b17ef9d..cb42415eac0 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -14,6 +14,7 @@ var/list/department_radio_keys = list( ":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk", ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", + ":q" = "Service", "#q" = "Service", ".q" = "Service", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", @@ -30,6 +31,7 @@ var/list/department_radio_keys = list( ":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk", ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", + ":Q" = "Service", "#Q" = "Service", ".Q" = "Service", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling", //kinda localization -- rastaf0 diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 3571d3a2244..24b807d4a30 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -191,7 +191,7 @@ var/obj/machinery/blackbox_recorder/blackbox var/list/msg_security = list() var/list/msg_deathsquad = list() var/list/msg_syndicate = list() - var/list/msg_mining = list() + var/list/msg_service = list() var/list/msg_cargo = list() var/list/datum/feedback_variable/feedback = new() @@ -216,7 +216,7 @@ var/obj/machinery/blackbox_recorder/blackbox BR.msg_security = msg_security BR.msg_deathsquad = msg_deathsquad BR.msg_syndicate = msg_syndicate - BR.msg_mining = msg_mining + BR.msg_service = msg_service BR.msg_cargo = msg_cargo BR.feedback = feedback BR.messages = messages @@ -257,7 +257,7 @@ var/obj/machinery/blackbox_recorder/blackbox feedback_add_details("radio_usage","SEC-[msg_security.len]") feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") - feedback_add_details("radio_usage","MIN-[msg_mining.len]") + feedback_add_details("radio_usage","SRV-[msg_service.len]") feedback_add_details("radio_usage","CAR-[msg_cargo.len]") feedback_add_details("radio_usage","OTH-[messages.len]") feedback_add_details("radio_usage","PDA-[pda_msg_amt]") diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index f88bbde0e3e..97632823ef8 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -84,6 +84,7 @@ interpreter.SetVar("$engineering",1357) interpreter.SetVar("$security", 1359) interpreter.SetVar("$supply", 1347) + interpreter.SetVar("$service", 1349) // Signal data From cef6bd2786ea2b96f2e3b5e1803e9d3c94db7f1d Mon Sep 17 00:00:00 2001 From: Malkevin Date: Tue, 14 May 2013 17:02:35 +0100 Subject: [PATCH 3/8] Better Mop and Cart love Slight tweak to the behavior of attacking the janicart with a mop. Changed it so that it stores the mop when it is soaked (or the bucket is empty), as I'm sure most players would prefer their mop to always be fully soaked when they remove it from the cart. Also changed the examine text from 'water' to 'liquid' as it was misleading. It can actually be filled with any reagent, even welder fuel...or acid... or blood... or dr.gibb...space lube... you get the picture. --- code/game/objects/structures/janicart.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 330f5d5f57d..c67918ec0b6 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -23,7 +23,7 @@ /obj/structure/janitorialcart/examine() set src in usr - usr << "[src] \icon[src] contains [reagents.total_volume] unit\s of water!" + usr << "[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!" ..() //everything else is visible, so doesn't need to be mentioned @@ -38,7 +38,7 @@ user << "You put [I] into [src]." else if(istype(I, /obj/item/weapon/mop)) - if(I.reagents.total_volume < 1) //if it's at all wet, we assume they want to store the mop. + if(I.reagents.total_volume < 5) //if it's not completely soaked we assume they want to wet it, otherwise store it if(reagents.total_volume < 1) user << "[src] is out of water!" else From 951ba1bedeb8df151342c81112bb05c6362e0bdc Mon Sep 17 00:00:00 2001 From: Malkevin Date: Tue, 14 May 2013 17:42:46 +0100 Subject: [PATCH 4/8] changed wetness check from constant to variable reference --- code/game/objects/structures/janicart.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index c67918ec0b6..3f12b48d581 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -38,7 +38,7 @@ user << "You put [I] into [src]." else if(istype(I, /obj/item/weapon/mop)) - if(I.reagents.total_volume < 5) //if it's not completely soaked we assume they want to wet it, otherwise store it + if(I.reagents.total_volume < I.reagents.maximum_volume) //if it's not completely soaked we assume they want to wet it, otherwise store it if(reagents.total_volume < 1) user << "[src] is out of water!" else From 18d25a6bf56620128fbaf03f8cf8ca6d18611663 Mon Sep 17 00:00:00 2001 From: Cheridan Date: Tue, 14 May 2013 15:32:06 -0500 Subject: [PATCH 5/8] -Changes the channel hotkey from Q to V --- code/modules/mob/living/say.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index cb42415eac0..2eda94c37f1 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -14,7 +14,7 @@ var/list/department_radio_keys = list( ":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk", ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", - ":q" = "Service", "#q" = "Service", ".q" = "Service", + ":v" = "Service", "#v" = "Service", ".v" = "Service", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", @@ -31,7 +31,7 @@ var/list/department_radio_keys = list( ":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk", ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", - ":Q" = "Service", "#Q" = "Service", ".Q" = "Service", + ":V" = "Service", "#V" = "Service", ".V" = "Service", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling", //kinda localization -- rastaf0 From 6ae715a6cfceb7ab12276b89c3b3da57701aed23 Mon Sep 17 00:00:00 2001 From: Cheridan Date: Tue, 14 May 2013 21:59:26 -0500 Subject: [PATCH 6/8] -Updates the headset descriptions. --- code/game/objects/items/devices/radio/headset.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index af5c2fe4ce3..d91b6538d70 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -95,7 +95,7 @@ /obj/item/device/radio/headset/heads/captain name = "captain's headset" - desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :m - medical, :n - science." + desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain @@ -130,7 +130,7 @@ /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :c - command, :s - security" + desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :v - service, :c - command, :s - security" icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hop @@ -158,7 +158,7 @@ /obj/item/device/radio/headset/headset_service name = "service radio headset" - desc = "Headset used by the foodservice and entertainment staff. To access the service channel, use :q." + desc = "Headset used by the foodservice staff, tasked with keeping the station full and happy. To access the service channel, use :v." icon_state = "srv_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_service From 4ca036543c7ca9d2880a74130d2f60b0498e9a6a Mon Sep 17 00:00:00 2001 From: Cheridan Date: Thu, 16 May 2013 15:16:21 -0500 Subject: [PATCH 7/8] -Updates DJ station infosheet. -Adds service headsets to barman/botanist closets (chef doesn't get one for now since he doesn't have a closet, all his spare stuff is just placed in a crate) --- code/game/jobs/job/civilian.dm | 6 +++--- code/game/objects/items/devices/radio/headset.dm | 2 +- .../structures/crates_lockers/closets/job_closets.dm | 2 ++ .../structures/crates_lockers/closets/secure/hydroponics.dm | 1 + code/modules/paperwork/paper.dm | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index b407cfaf904..5f2c56d9b4e 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -16,7 +16,7 @@ if(!H) return 0 if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) @@ -55,7 +55,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -80,7 +80,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index d91b6538d70..c9adef0d22d 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -156,7 +156,7 @@ item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo -/obj/item/device/radio/headset/headset_service +/obj/item/device/radio/headset/headset_srv name = "service radio headset" desc = "Headset used by the foodservice staff, tasked with keeping the station full and happy. To access the service channel, use :v." icon_state = "srv_headset" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 9ca47e845f9..37f3623c35c 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -18,6 +18,8 @@ ..() sleep(2) new /obj/item/clothing/head/that(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/clothing/head/that(src) new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/sl_suit(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index 9568e0eab1c..32d7ace167f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -20,6 +20,7 @@ new /obj/item/weapon/storage/bag/plants/portaseeder(src) new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/device/analyzer/plant_analyzer(src) + new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/clothing/head/greenbandana(src) new /obj/item/weapon/minihoe(src) new /obj/item/weapon/hatchet(src) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index b2495c0f730..c97fa96e0fe 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -323,7 +323,7 @@ /obj/item/weapon/paper/djstation name = "paper - 'DJ Listening Outpost'" - info = "Welcome new owner!

You have purchased the latest in listening equipment. The telecommunication setup we created is the best in listening to common and private radio fequencies. Here is a step by step guide to start listening in on those saucy radio channels:
  1. Equip yourself with a multi-tool
  2. Use the multitool on each machine, that is the broadcaster, receiver and the relay.
  3. Turn all the machines on, it has already been configured for you to listen on.
Simple as that. Now to listen to the private channels, you'll have to configure the intercoms, located on the front desk. Here is a list of frequencies for you to listen on.
  • 145.7 - Common Channel
  • 144.7 - Private AI Channel
  • 135.9 - Security Channel
  • 135.7 - Engineering Channel
  • 135.5 - Medical Channel
  • 135.3 - Command Channel
  • 135.1 - Science Channel
  • 134.9 - Mining Channel
  • 134.7 - Cargo Channel
  • " + info = "Welcome new owner!

    You have purchased the latest in listening equipment. The telecommunication setup we created is the best in listening to common and private radio fequencies. Here is a step by step guide to start listening in on those saucy radio channels:
    1. Equip yourself with a multi-tool
    2. Use the multitool on each machine, that is the broadcaster, receiver and the relay.
    3. Turn all the machines on, it has already been configured for you to listen on.
    Simple as that. Now to listen to the private channels, you'll have to configure the intercoms, located on the front desk. Here is a list of frequencies for you to listen on.
    • 145.7 - Common Channel
    • 144.7 - Private AI Channel
    • 135.9 - Security Channel
    • 135.7 - Engineering Channel
    • 135.5 - Medical Channel
    • 135.3 - Command Channel
    • 135.1 - Science Channel
    • 134.9 - Service Channel
    • 134.7 - Supply Channel
    • " /obj/item/weapon/paper/jobs name = "paper- 'Job Information'" From c00f97216cc1bb3edd5e5ec91529e09e219bf718 Mon Sep 17 00:00:00 2001 From: Cheridan Date: Fri, 17 May 2013 19:15:01 -0500 Subject: [PATCH 8/8] Phase 3 & 1/2 Adds chef locker Serves up the service server to serve your servers. --- .../crates_lockers/closets/job_closets.dm | 21 +++++++++++++++++++ maps/tgstation.2.1.2.dmm | 11 +++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 37f3623c35c..d2c1e63fc52 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -30,6 +30,27 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/shoes/black(src) +/* + * Chef + */ +/obj/structure/closet/chefcloset + name = "chef's closet" + desc = "It's a storage unit for foodservice garments." + icon_state = "black" + icon_closed = "black" + +/obj/structure/closet/chefcloset/New() + ..() + sleep(2) + new /obj/item/clothing/under/waiter(src) + new /obj/item/clothing/under/waiter(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/weapon/storage/box/mousetraps(src) + new /obj/item/weapon/storage/box/mousetraps(src) + new /obj/item/clothing/under/rank/chef(src) + new /obj/item/clothing/head/chefhat(src) + /* * Janitor */ diff --git a/maps/tgstation.2.1.2.dmm b/maps/tgstation.2.1.2.dmm index d5b2ffecb43..493eb98fd69 100644 --- a/maps/tgstation.2.1.2.dmm +++ b/maps/tgstation.2.1.2.dmm @@ -1731,7 +1731,7 @@ "aHo" = (/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aHp" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aHq" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aHr" = (/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"aHr" = (/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/chefcloset,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aHs" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/hydroponics) "aHt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hydroponics) "aHu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) @@ -7986,6 +7986,7 @@ "cXD" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cXE" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "cXF" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production) +"cXG" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8151,14 +8152,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOgbOhbOibOjbOkbOjbOlbOmbOnbOobOpbOqbOrbNpbOsbOtbOubOubOubOubOvbOwbOwbOxbOwbOybOwbOwbOwbOwbOzbOAbFYbKibOBbOCbODbIzbIzbIzbOEbOFbIzbIzbOGbOHbOIbIsbOJbOKbOLbOMbIsbONbOObOPbKzaafbKAbOQbORbOSbIBaafbsCbOTbGvbGvbGvbOUbHAbOVbNMbOWbOXbOYbOZbLKbPabPbbPcbNNbMWbLObDRbDRbDRbDRbPdbPebMZbPfbPdbDRbDRbDRbDRbwJbLXaZWaZWbPgaZWaZWbmJaZWaZWaZWaZWbPhaZWbObbOcbPibPjbPkbOcaafaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabPlbPlbPlbPlbPlbPmbPnbPobPpbPpbPqbNpbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPtbPsbPsbPubyxbwcbPvbFYbKibOBbPwbPxbPybPzbLqbPAbPBbLqbLqbPCbPDbPEbPFbPGbPHbPIbPJbIsbONbPKbPLbPMbLzbJybPNbNFbNFbIBaafbPObPPbPPbPPbxDbHzbHAbPQbKKbIJbPRbPSbNIbPTbPSbPTbNIbNNbMWbLObLPbLQbLQbPUbLSbGEbLTbLUbPVbPWbxVbxVbxVbwJbLXbLYbPXbPXbPXbPXbPXbPXbPXbPXbPXbPYbPXbPZbOcbQabQbbQcbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbQebQfbQgbQfbQhbQibQjbQkbQlbQmbNpbMlbPrbQnbQobQpbQqbQrbQsbQnbQtbQubQvbQwbPsbPsbyxbwcbQxbFYbKibQybQzbQAbQBbQCbQDbQEbQFbQEbQGbQHbQIbHibHibHibQJbIsbOLbIsbONbOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbHzbHAbQLbKKbQMbQNbPSbIJbQObPSbQObQPbNNbMWbLObxVbQQbxVbQRbMYbGEbMZbGEbNabQSbxVbQQbxVbwJbLXbQTaZWbQUbQVaZWaZWaZWbQUbQWbQWbQVaZWaZWbOcbQXbQYbQZbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQdbRabRbbRcbRdbPobRebPobRfbPobRgbRhbRibPrbQnbRjbRkbQnbRlbRmbQnbRnbRobRpbRqbRrbPsbyxbwcbPvbFYbKibRsbRtbGgbRubRvbGgbRwbRxbRybGgbRzbMzbRAbHibRBbPJbIsbPHbRCbRDbREbRFbNDbJxbJybRGbRHbRIbIBaafaaaaaaaaaaaabJCbHzbHAbRJbQObRKbRLbRMbMIbRNbRMbRNbMIbNNbMWbLObxVbxVbxVbRObRPbLUbNQbGEbNRbRQbLQbLQbNTbwJbLXbQTaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabRRbRSbRTbRUbRVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbRWbRXbRYbRXbRZbSabSbbScbSdbSebNpbSfbPrbSgbSgbShbQnbSibSgbSgbRnbSjbSkbSlbSmbSnbSobSpbSqbSrbSsbStbSubSvbSwbSxbSybSzbSAbSBbGgbIsbMzbRAbSCbRBbSDbIsbPHbRCbONbOObSEbKzaafbKAbSFbSGbSHbIBaafaaaaaaaaaaaabKDbHzbHAbHAbSIbSJbHAbHAbHAbHAbHAbHAbHAbNNbMWbLObDRbDRbDRbDRbPdbSKbMZbSLbPdbDRbDRbDRbDRbwJbLXbSMaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbSNbSObSNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQdbRabRbbRcbRdbPobRebPobRfbPobRgbRhbRibPrbQnbWobRkbQnbRlbRmbQnbRnbRobRpbRqbRrbPsbyxbwcbPvbFYbKibRsbRtbGgbRubRvbGgbRwbRxbRybGgbRzbMzbRAbHibRBbPJbIsbPHbRCbRDbREbRFbNDbJxbJybRGbRHbRIbIBaafaaaaaaaaaaaabJCbHzbHAbRJbQObRKbRLbRMbMIbRNbRMbRNbMIbNNbMWbLObxVbxVbxVbRObRPbLUbNQbGEbNRbRQbLQbLQbNTbwJbLXbQTaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabRRbRSbRTbRUbRVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbRWbRXbRYbRXbRZbSabSbbScbSdbSebNpbSfbPrbSgbVBbShbQnbSibSgbSgbRnbSjbSkbSlbSmbSnbSobSpbSqbSrbSsbStbSubSvbSwbSxbSybSzbSAbSBbGgbIsbMzbRAbSCbRBbSDbIsbPHbRCbONbOObSEbKzaafbKAbSFbSGbSHbIBaafaaaaaaaaaaaabKDbHzbHAbHAbSIbSJbHAbHAbHAbHAbHAbHAbHAbNNbMWbLObDRbDRbDRbDRbPdbSKbMZbSLbPdbDRbDRbDRbDRbwJbLXbSMaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbSNbSObSNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbPlbPlbPlbPlbPlbNpbNpbNpbNpbNpbNpbNpbSPbPrbSgbSgbQnbQnbQnbSgbSQbSRbSSbSTbSUbSVbPsbyxbwcbSWbSXbSYbSZbTabTbbTcbTdbTebTfbTgbThbGgbTibTjbRAbHibRBbTkbIsbTlbRCbONbTmbTnbPMbLzbJybTobRHbRHbIBaafaaaaaaaaaaaabLBbHzbTpbHAbHAbTqbHAbTrbTsbTtbTpbTpbTpbTubMWbLObLPbLQbLQbTvbLSbGEbLTbLUbTwbTxbxVbxVbxVbwJbLXbTyaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbTzbRTbTzaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUafUafUafTafTafUafTafTafTagzafTafTafTafUafTaafaafaafbwcbDbbyxbyxbyxbyxbyxbyxbyxbyxbyxbMlbPrbTAbTBbTCbTDbQnbQnbTEbTFbTEbTGbRqbTHbPsbyxbTIbKhbFYbTJbTKbTLbTbbTMbTNbTObTPbTQbTRbTSbJobTTbHibHibHibTUbIsbTVbTWbONbOObIsbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbOTbGvbGvbGvbTXbGvbGvbGvbGvbGvbGvbGvbTYbTZbLObxVbxVbxVbUabMYbGEbMZbGEbNabUbbxVbxVbxVbwJbLXbTyaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaaabUcaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaafTaafaaaaaabwcbUdbUebwcbwcbUfbUgbwcbwcbwcbwcbMlbPrbUhbSgbQnbQnbQnbSgbSQbUibUjbUkbUlbUmbSnbSpbSpbUnbUobUpbTKbTKbUqbTcbUrbUsbUtbUubUvbGgbIsbIvbUwbUxbUybKsbUzbUAbUBbRDbUCbUDbNDbJxbJybUEbUFbUFbIBaafaaaaaaaaaaaabPObPPbPPbPPbPPbUGbUHbUHbUHbUHbUHbUHbUHbUIbUJbUKbxVbxVbxVbULbUMbUNbUObGEbNRbUPbLQbLQbNTbwJbLXbTyaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaafaaabUcaaaaafaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUaaabUQbURbUSaaabUQbURbUSaaabUQbURbUSaafafTaaaaaaaaabwcbwcbwcbwcaaaaaaaaaaaaaaaaafbwcbMlbPrbSgbUTbUUbQnbUVbSgbSgbRnbUWbUkbRqbUXbPsbUYbUZbVabVbbVcbVdbVebVfbTcbVfbTbbTbbTcbVgbGgbVhbVibVjbLqbLqbLsbNwbVkbNAbLtbOObVlbKzaafbKAbVmbVnbVobIBaafaaaaaaaaaaaaaafaaaaaaaaabwkbVpbVqbVrbVsbVtbVqbVqbVubsCbVvbLObwJbwJbwJbwJbwJbwJbVwbwJbwJbwJbwJbwJbwJbwJbLXbVxaaaaaaaaaaaaaaaaaabVybVybVybVzaafaafaafaafbUcaafaafaafaafaafagzbVybVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUaaabUQbVAbUSaaabUQbVAbUSaaabUQbVAbUSaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaabwcbwcbwcbwcbMlbPrbQnbVBbVCbQnbVDbVEbQnbRnbVFbVGbVHbVIbVJbVKbVLbVMbVNbVObVPbVQbVRbVSbVTbTbbTbbTcbVUbGgbVVbIsbIvbNwbIzbVWbVXbVYbVZbHwbWabWbbPMbLzbJybWcbUFbUFbIBaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabWdbTpbWeaaaaaaaafbFybWfbWgbWhbWhbWhbWhbWhbWhbWibWjbWjbWjbWjbWjbWjbWjbWkbQTaaaaaaaaaaaaaaaaaabVyaaaaafaaaaafaaaaaaaaabWlaaaaafaafaaaaaaaaaaaabVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaafTaafbUQbVAbUSaaabUQbVAbUSaafbUQbVAbUSaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaabWmbWnbWmbyxbMlbPrbQnbWobWpbWqbWrbWsbQnbWtbWubWvbWwbWxbPsbWybWzbWAbWBbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbGgbWMbKvbWNbWObIsbIsbIsbIybOIbWObOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafaafaafaafaafaafaafaafbWPbVsbWQaaaaaaaafbFybWRbPXbWSbWTbWUbWUbPXbPXbPXbPXbWVbPXbPXbWWbWXbWYbWZbXaaaaaaaaaaaaaaaaaaabVyaaabXbbXbbXbbXbbXbaafbXcaafbXbbXbbXbbXbbXbaaabVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUaaabUQbVAbUSaaabUQbVAbUSaaabUQbVAbUSaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaabwcbwcbwcbwcbMlbPrbQnbRjbVCbQnbVDbVEbQnbRnbVFbVGbVHbVIbVJbVKbVLbVMbVNbVObVPbVQbVRbVSbVTbTbbTbbTcbVUbGgbVVbIsbIvbNwbIzbVWbVXbVYbVZbHwbWabWbbPMbLzbJybWcbUFbUFbIBaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaabWdbTpbWeaaaaaaaafbFybWfbWgbWhbWhbWhbWhbWhbWhbWibWjbWjbWjbWjbWjbWjbWjbWkbQTaaaaaaaaaaaaaaaaaabVyaaaaafaaaaafaaaaaaaaabWlaaaaafaafaaaaaaaaaaaabVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaafTaafbUQbVAbUSaaabUQbVAbUSaafbUQbVAbUSaafaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaabWmbWnbWmbyxbMlbPrbQncXGbWpbWqbWrbWsbQnbWtbWubWvbWwbWxbPsbWybWzbWAbWBbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbGgbWMbKvbWNbWObIsbIsbIsbIybOIbWObOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafaafaafaafaafaafaafaafbWPbVsbWQaaaaaaaafbFybWRbPXbWSbWTbWUbWUbPXbPXbPXbPXbWVbPXbPXbWWbWXbWYbWZbXaaaaaaaaaaaaaaaaaaabVyaaabXbbXbbXbbXbbXbaafbXcaafbXbbXbbXbbXbbXbaaabVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabUQbVAbUSaafbUQbVAbUSaaabUQbVAbUSaaaaafaafaafaafaafaafaaaaafaaaaafaafbwcbwcbwcbyxbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPsbPsbPsbPsbwcbXdbwcbXebXfbXfbXfbXgbXhbXibXfbXjbXkbXlbXmbXnbXobLvbXpbXqbXrbXqbXpbXsbXpbXtbNwbXuaafaafaafaafaafaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafbFybXvbQUbQWbQWbQVaZWbQUbQWbQWbQVaZWbQUbQWbQWbQVaZWaZWaZWaaaaaaaaaaaaaaaaaabVyaafbXwbXxbXxbXxbXxbXybXcbXzbXAbXAbXAbXAbXBaafbVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUafUafTaafaaabUQbVAbUSaafbUQbVAbUSaaabUQbVAbUSaafaafaaaaaaaaaaaaaafaafbXCbXDbXDbXDbXDbXEbyxbyxbMlbwcbXFbKXbXGbXGbXGbXGbXGbXGbXGbXGbXGbXHbXHbXGbXIbXJbXebXKbXLbXMbXNbXObXPbXfbXQbXRbXSbGgbXTbXUbXVbXWbXXbXYbXZbYabIsbYbbYcbYdbIuaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbYebYfaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabVyaafbYgbYgbYgbYgbYgaaabXcaaabYgbYgbYgbYgbYgaafbVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUaaaaafaaaaafaafbYhaafaafaafbYhaafaaaaafbYhaafaaaaafaaaaaaaaaaaabYibYjbYkbYlbYmbYnbYobYpbYqbYqbYrbwcbYsbYtbYubYubYubYubYubYubYubYubYubYubYubYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGbYHbYIbYJbYKbYLbYMbYLbYKbYLbYMbYLbYNbYLbYNbYOaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYPbYfaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaabVyaaaaafaaaaafaafaafaaabXcaaaaafaaaaafaaaaafaaabVyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa