Miscellaneous Fixes (#1868)

changes:

Engineering now actually gets engineering-type alert consoles instead of the non-functional base type.
Lighting is no longer broken by shuttles.
The ERT shuttle autoannouncer should no longer cause lighting runtimes.
Fixed some bad newlines in some character setup help texts.
Custom loadout tweaks now properly write to SQL.
Custom loadout is now saved as JSON.
Players are now shown a notice when the server was unable to load their custom loadout.
Drowsyness is now clamped to zero.
Added some new tips to the example.
Tweaked some tips' grammar.
Removed some tips that do not apply to our code base.
Probably fixes embraced vampire thralls not getting vampire verbs.
Fixes #1844.
Fixes #1835.
Probably fixes #1687.
Probably fixes #1824.
Fixes #1839
This commit is contained in:
Lohikar
2017-03-05 07:14:28 -06:00
committed by skull132
parent 3080c20428
commit 73c29bd5a7
17 changed files with 103 additions and 81 deletions

View File

@@ -794,8 +794,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
var/old_icon1 = T.icon var/old_icon1 = T.icon
var/old_overlays = T.overlays.Copy() var/old_overlays = T.overlays.Copy()
var/old_underlays = T.underlays.Copy() var/old_underlays = T.underlays.Copy()
if (T.dynamic_lighting && T.lighting_overlay)
T.lighting_overlay.forceMove(B, harderforce = TRUE)
var/turf/X = B.ChangeTurf(T.type) var/turf/X = B.ChangeTurf(T.type)
X.set_dir(old_dir1) X.set_dir(old_dir1)
@@ -851,12 +849,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable if(!istype(M,/mob) || istype(M, /mob/eye)) continue // If we need to check for more mobs, I'll add a variable
M.loc = X M.loc = X
// var/area/AR = X.loc
// if(AR.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn
// X.opacity = !X.opacity
// X.SetOpacity(!X.opacity)
toupdate += X toupdate += X
if(turftoleave) if(turftoleave)

View File

@@ -37,7 +37,7 @@ var/datum/controller/process/effects/effect_master
effects_objects += E effects_objects += E
if (EFFECT_DESTROY) if (EFFECT_DESTROY)
qdel(E) returnToPool(E)
F_SCHECK F_SCHECK
@@ -61,7 +61,7 @@ var/datum/controller/process/effects/effect_master
if (EFFECT_DESTROY) if (EFFECT_DESTROY)
effects_visuals -= V effects_visuals -= V
V.end() V.end()
qdel(V) returnToPool(V)
F_SCHECK F_SCHECK

View File

@@ -45,7 +45,7 @@
update_icons_added(player) update_icons_added(player)
return 1 return 1
/datum/antagonist/proc/remove_antagonist(var/datum/mind/player, var/show_message, var/implanted) /datum/antagonist/proc/remove_antagonist(var/datum/mind/player, var/show_message = TRUE, var/implanted)
if(!istype(player)) if(!istype(player))
return 0 return 0
@@ -53,6 +53,7 @@
player.current.verbs -= faction_verb player.current.verbs -= faction_verb
if(player in current_antagonists) if(player in current_antagonists)
if (show_message)
player.current << "<span class='danger'><font size = 3>You are no longer a [role_text]!</font></span>" player.current << "<span class='danger'><font size = 3>You are no longer a [role_text]!</font></span>"
current_antagonists -= player current_antagonists -= player
faction_members -= player faction_members -= player
@@ -60,7 +61,7 @@
update_icons_removed(player) update_icons_removed(player)
BITSET(player.current.hud_updateflag, SPECIALROLE_HUD) BITSET(player.current.hud_updateflag, SPECIALROLE_HUD)
if (!is_special_character(player)) if (!is_special_character(player) && !player.current.client.holder)
player.current.client.verbs -= /client/proc/aooc player.current.client.verbs -= /client/proc/aooc
return 1 return 1

View File

@@ -850,6 +850,10 @@
if (alert(src, choice_text, "Choices", "Yes", "No") == "No") if (alert(src, choice_text, "Choices", "Yes", "No") == "No")
src << "<span class='notice'>[denial_response]</span>" src << "<span class='notice'>[denial_response]</span>"
return return
vampire_thrall.remove_antagonist(T.mind, 0, 0)
qdel(draining_vamp)
draining_vamp = null
else else
src << "<span class='warning'>You feel corruption running in [T.name]'s blood. Much like yourself, \he[T] is already a spawn of the Veil, and cannot be Embraced.</span>" src << "<span class='warning'>You feel corruption running in [T.name]'s blood. Much like yourself, \he[T] is already a spawn of the Veil, and cannot be Embraced.</span>"
return return

View File

@@ -105,12 +105,12 @@
return TOPIC_NOACTION return TOPIC_NOACTION
else if(href_list["namehelp"]) else if(href_list["namehelp"])
alert(user, "Due to game mechanics, you are no longer able to edit the name for this character. The grace period offered is 5 days since the character's initial save.<br><br>If you have a need to change the character's name, or further questions regarding this policy, please contact an administrator.") alert(user, "Due to game mechanics, you are no longer able to edit the name for this character. The grace period offered is 5 days since the character's initial save.\n\nIf you have a need to change the character's name, or further questions regarding this policy, please contact an administrator.")
return TOPIC_NOACTION return TOPIC_NOACTION
else if(href_list["random_name"]) else if(href_list["random_name"])
if (!pref.can_edit_name) if (!pref.can_edit_name)
alert(user, "You can no longer edit the name of your character.<br><br>If there is a legitimate need, please contact an administrator regarding the matter.") alert(user, "You can no longer edit the name of your character.\n\nIf there is a legitimate need, please contact an administrator regarding the matter.")
return TOPIC_NOACTION return TOPIC_NOACTION
pref.real_name = random_name(pref.gender, pref.species) pref.real_name = random_name(pref.gender, pref.species)

View File

@@ -34,6 +34,7 @@ var/list/gear_datums = list()
name = "Loadout" name = "Loadout"
sort_order = 1 sort_order = 1
var/current_tab = "General" var/current_tab = "General"
var/gear_reset = FALSE
/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S) /datum/category_item/player_setup_item/loadout/load_character(var/savefile/S)
S["gear"] >> pref.gear S["gear"] >> pref.gear
@@ -51,7 +52,7 @@ var/list/gear_datums = list()
return list("ss13_characters" = list("gear", "id" = 1, "ckey" = 1)) return list("ss13_characters" = list("gear", "id" = 1, "ckey" = 1))
/datum/category_item/player_setup_item/loadout/gather_save_parameters() /datum/category_item/player_setup_item/loadout/gather_save_parameters()
return list(":gear" = list2params(pref.gear), ":id" = pref.current_character, ":ckey" = pref.client.ckey) return list(":gear" = json_encode(pref.gear), ":id" = pref.current_character, ":ckey" = pref.client.ckey)
/datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost) /datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost)
. = list() . = list()
@@ -66,9 +67,18 @@ var/list/gear_datums = list()
. += gear_name . += gear_name
/datum/category_item/player_setup_item/loadout/sanitize_character(var/sql_load = 0) /datum/category_item/player_setup_item/loadout/sanitize_character(var/sql_load = 0)
if (sql_load) if (sql_load)
pref.gear = params2list(pref.gear) gear_reset = FALSE
if (pref.gear && istext(pref.gear))
try
pref.gear = json_decode(pref.gear)
catch
log_debug("SQL_CHAR: Unable to load preferences for client [pref.client ? pref.client.ckey : "UNKNOWN"].")
pref.gear = list()
gear_reset = TRUE
else
pref.gear = list()
gear_reset = TRUE
var/mob/preference_mob = preference_mob() var/mob/preference_mob = preference_mob()
if(!islist(pref.gear)) if(!islist(pref.gear))
@@ -106,6 +116,8 @@ var/list/gear_datums = list()
fcolor = "#E67300" fcolor = "#E67300"
. = list() . = list()
. += "<table align = 'center' width = 100%>" . += "<table align = 'center' width = 100%>"
if (gear_reset)
. += "<tr><td colspan=3><center><i>Your loadout failed to load and will be reset if you save this slot.</i></center></td></tr>"
. += "<tr><td colspan=3><center><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>" . += "<tr><td colspan=3><center><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
. += "<tr><td colspan=3><center><b>" . += "<tr><td colspan=3><center><b>"

View File

@@ -62,8 +62,8 @@ datum/preferences
var/species = "Human" //Species datum to use. var/species = "Human" //Species datum to use.
var/species_preview //Used for the species selection window. var/species_preview //Used for the species selection window.
var/list/alternate_languages = list() //Secondary language(s) var/list/alternate_languages = list() //Secondary language(s)
var/list/language_prefixes = list() //Kanguage prefix keys var/list/language_prefixes = list() // Language prefix keys
var/list/gear //Custom/fluff item loadout. var/list/gear // Custom/fluff item loadout.
//Some faction information. //Some faction information.
var/home_system = "Unset" //System of birth. var/home_system = "Unset" //System of birth.

View File

@@ -29,3 +29,9 @@
/datum/effect_system/proc/bind(var/target) /datum/effect_system/proc/bind(var/target)
holder = target holder = target
/datum/effect_system/proc/set_loc(var/atom/movable/loc)
if (istype(loc, /turf/))
location = loc
else
location = get_turf(loc)

View File

@@ -5,13 +5,10 @@
// Using the spark procs is preferred to directly instancing this. // Using the spark procs is preferred to directly instancing this.
/datum/effect_system/sparks/New(var/atom/movable/loc, var/start_immediately = TRUE, var/amt = 1, var/list/spread_dirs = list()) /datum/effect_system/sparks/New(var/atom/movable/loc, var/start_immediately = TRUE, var/amt = 1, var/list/spread_dirs = list())
if(!loc || loc.gcDestroyed) if(QDELETED(loc))
return return
if (istype(loc, /turf)) set_loc(loc)
location = loc
else
holder = loc
if (amt) if (amt)
amount = amt amount = amt
@@ -34,8 +31,9 @@
var/total_sparks = 1 var/total_sparks = 1
if (location) if (location)
var/obj/visual_effect/sparks/S = new /obj/visual_effect/sparks(location, src, 0) //Trigger one on the tile it's on var/obj/visual_effect/sparks/S = getFromPool(/obj/visual_effect/sparks, location, src, 0) //Trigger one on the tile it's on
S.start() S.start()
playsound(location, "sparks", 100, 1)
effects_visuals += S // Queue it. effects_visuals += S // Queue it.
while (total_sparks <= src.amount) while (total_sparks <= src.amount)
@@ -47,7 +45,7 @@
else else
direction = pick(src.spread) direction = pick(src.spread)
S = new /obj/visual_effect/sparks(location, src) S = getFromPool(/obj/visual_effect/sparks, location, src)
S.start(direction) S.start(direction)
effects_visuals += S effects_visuals += S
total_sparks++ total_sparks++

View File

@@ -1,19 +1,13 @@
// -- Spark visual_effect -- // -- Spark visual_effect --
/obj/visual_effect/sparks /obj/visual_effect/sparks
name = "sparks" name = "sparks"
icon = 'icons/effects/effects.dmi' icon_state = "sparks"
//icon_state = "sparks"
anchored = 1 anchored = 1
mouse_opacity = 0 mouse_opacity = 0
live_icon_state = "sparks"
/obj/visual_effect/sparks/New(var/turf/loc) /obj/visual_effect/sparks/New(var/turf/loc)
..(loc) ..(loc)
life_ticks = rand(2,10) life_ticks = rand(5,10)
/obj/visual_effect/sparks/resetVariables()
. = ..()
life_ticks = rand(2,10)
/obj/visual_effect/sparks/tick() /obj/visual_effect/sparks/tick()
. = ..() . = ..()
@@ -22,6 +16,9 @@
if(T) if(T)
T.hotspot_expose(1000, 100) T.hotspot_expose(1000, 100)
if (life_ticks < 2)
animate(src, alpha = 0, time = 2, easing = SINE_EASING | EASE_IN)
/obj/visual_effect/sparks/start(var/direction) /obj/visual_effect/sparks/start(var/direction)
..() ..()
if (direction) if (direction)

View File

@@ -1,23 +1,22 @@
/obj/visual_effect /obj/visual_effect
name = "effect" name = "effect"
icon = 'icons/effects/effects.dmi'
anchored = 1 anchored = 1
simulated = 0 simulated = 0
mouse_opacity = 0 mouse_opacity = 0
var/life_ticks // How many ticks this effect will life before it stops processing. var/life_ticks // How many ticks this effect will life before it stops processing.
var/life_ticks_max // The high limit for the random tick picker. var/life_ticks_max // The high limit for the random tick picker.
var/life_ticks_min // The low limit for the random tick picker. var/life_ticks_min // The low limit for the random tick picker.
var/live_icon_state // The icon-state to use when this object is shown to the user.
/obj/visual_effect/New(var/life_min = 3 SECONDS, var/life_max = 5 SECONDS) /obj/visual_effect/New(var/life_min = 3 SECONDS, var/life_max = 5 SECONDS)
..() ..()
life_ticks_min = life_min life_ticks_min = life_min
life_ticks_max = life_max life_ticks_max = life_max
life_ticks = rand(life_ticks_min, life_ticks_max) life_ticks = rand(life_ticks_min, life_ticks_max)
flick(icon_state, src)
// Called when the visual_effect is manifested. // Called when the visual_effect is manifested.
/obj/visual_effect/proc/start() /obj/visual_effect/proc/start()
if (live_icon_state)
icon_state = live_icon_state
// Called every effects processor tick. Return value determines what the process does to this object. // Called every effects processor tick. Return value determines what the process does to this object.
/obj/visual_effect/proc/tick() /obj/visual_effect/proc/tick()
@@ -30,8 +29,6 @@
// Called just before the visual_effect is returned to the pool. // Called just before the visual_effect is returned to the pool.
/obj/visual_effect/proc/end() /obj/visual_effect/proc/end()
loc = null loc = null
if (live_icon_state)
icon_state = null
/obj/visual_effect/Destroy() /obj/visual_effect/Destroy()
// ¯\_(ツ)_/¯ // ¯\_(ツ)_/¯

View File

@@ -332,6 +332,9 @@
var/static/update_gen = 1 var/static/update_gen = 1
applied = 1 applied = 1
if (!source_turf)
return
var/Tx var/Tx
var/Ty var/Ty
var/Sx = source_turf.x var/Sx = source_turf.x

View File

@@ -1055,6 +1055,9 @@
handle_statuses() handle_statuses()
if (drowsyness) if (drowsyness)
if (drowsyness < 0)
drowsyness = 0
else
drowsyness-- drowsyness--
eye_blurry = max(2, eye_blurry) eye_blurry = max(2, eye_blurry)
if (prob(5)) if (prob(5))

View File

@@ -12,11 +12,11 @@ You can grab someone by clicking on them with the grab intent, then upgrade the
Holding alt and left clicking a tile will allow you to see its contents in the top right window pane, which is much faster than right clicking. Holding alt and left clicking a tile will allow you to see its contents in the top right window pane, which is much faster than right clicking.
The resist button will allow you to resist out of handcuffs, being buckled to a chair or bed, out of locked lockers and more. Whenever you're stuck, try resisting! The resist button will allow you to resist out of handcuffs, being buckled to a chair or bed, out of locked lockers and more. Whenever you're stuck, try resisting!
You can move an item out of the way by dragging it and then clicking on an adjacent tile with an empty hand. You can move an item out of the way by dragging it and then clicking on an adjacent tile with an empty hand.
Maintenance is full of equipment that is randomized every round. Look around and see if anything is worth using.There are many places around the station to hide contraband. A few for starters: linen boxes, toilet cisterns, body bags. Experiment to find more! Maintenance is full of equipment that is randomized every round. Look around and see if anything is worth using. There are many places around the station to hide contraband. A few for starters: linen boxes, toilet cisterns, body bags. Experiment to find more!
As the Captain, you are one of the highest priority targets on the station. Everything from revolutions, to nuclear operatives, to traitors that need to rob you of your unique lasgun or your life are things to worry about. As the Captain, you are one of the highest priority targets on the station. Everything from revolutions, to nuclear operatives, to traitors that need to rob you of your unique lasgun or your life are things to worry about.
As the Captain, you have absolute access and control over the station, but this does not mean that being a horrible person won't result in mutiny and a ban. As the Captain, you have absolute access and control over the station, but this does not mean that being a horrible person won't result in mutiny and a ban.
As the Chief Medical Officer, your hypospray is like an instant injection syringe that can hold 30 units as opposed to the standard 15. As the Chief Medical Officer, your hypospray is like an instant injection syringe that can hold 30 units as opposed to the standard 15.
As the Chief Medical Officer, coordinate and communicate with your doctors, chemists, and EMTs during a nuclear emergency, blob infestation, or some other crisis to keep people alive and fighting. As the Chief Medical Officer, coordinate and communicate with your doctors, chemists, and EMTs during a pirate raid, blob infestation, or some other crisis to keep people alive and fighting.
As a Medical Doctor, you can attempt to drain blood from a husk with a syringe to determine the cause. If you can extract blood, it was caused by extreme temperatures or lasers, if there is no blood to extract, it was caused by something unnatural. As a Medical Doctor, you can attempt to drain blood from a husk with a syringe to determine the cause. If you can extract blood, it was caused by extreme temperatures or lasers, if there is no blood to extract, it was caused by something unnatural.
As a Medical Doctor, you can surgically implant or extract things from people's chests. This can range from putting in a bomb to pulling out an alien larva. As a Medical Doctor, you can surgically implant or extract things from people's chests. This can range from putting in a bomb to pulling out an alien larva.
As a Medical Doctor, you must target the correct limb and be on help intent when trying to perform surgery on someone. As a Medical Doctor, you must target the correct limb and be on help intent when trying to perform surgery on someone.
@@ -24,8 +24,8 @@ As a Chemist, there are dozens of chemicals that can heal, and even more that ca
As the Virologist, you only require small amounts of vaccine to heal a sick patient. Work with the Chemist to distribute your cures more efficiently. As the Virologist, you only require small amounts of vaccine to heal a sick patient. Work with the Chemist to distribute your cures more efficiently.
As the Research Director, you can take AIs out of their cores by loading them into an intelliCard, and then from there into an AI system integrity restorer computer to revive and/or repair them. As the Research Director, you can take AIs out of their cores by loading them into an intelliCard, and then from there into an AI system integrity restorer computer to revive and/or repair them.
As the Research Director, you can lock down cyborgs instead of blowing them up. Then you can have their laws reset or if that doesn't work, safely dismantled. As the Research Director, you can lock down cyborgs instead of blowing them up. Then you can have their laws reset or if that doesn't work, safely dismantled.
As a Xenoscientist, you can inject yourself with the mutation toxin extracted from green slimes to become a slime person, who will never be attacked by slimes! As a Xenobiologist, you can inject yourself with the mutation toxin extracted from green slimes to become a slime person, who will never be attacked by slimes!
As a Xenoscientist, you can maximize the number of uses you get out of a slime by feeding it slime steroid, created from purple slimes, while alive. You can then apply extract enhancer, created from cerulean slimes, on each extract. As a Xenobiologist, you can maximize the number of uses you get out of a slime by feeding it slime steroid, created from purple slimes, while alive. You can then apply extract enhancer, created from cerulean slimes, on each extract.
As a Scientist, researchable machine parts can seriously improve the efficiency and speed of machines around the station. In some cases, it can even unlock new functions. As a Scientist, researchable machine parts can seriously improve the efficiency and speed of machines around the station. In some cases, it can even unlock new functions.
As a Scientist, the teleporter in Misc research can be set-up to teleport across the whole station! All you need to do is crack the formula. As a Scientist, the teleporter in Misc research can be set-up to teleport across the whole station! All you need to do is crack the formula.
As a Roboticist, you can repair your cyborgs with a welding tool. If they have taken burn damage from lasers, you can remove their battery, expose the wiring with a screwdriver and replace their wires with a cable coil. As a Roboticist, you can repair your cyborgs with a welding tool. If they have taken burn damage from lasers, you can remove their battery, expose the wiring with a screwdriver and replace their wires with a cable coil.
@@ -40,8 +40,6 @@ As the Chief Engineer, you can rename areas or create entirely new ones using yo
As the Research Director, you can spy on and even forge PDA communications with the message monitor console! The key is in your office. As the Research Director, you can spy on and even forge PDA communications with the message monitor console! The key is in your office.
As an Engineer, the supermatter shard is an extremely dangerous piece of equipment: touching it will disintegrate you. As an Engineer, the supermatter shard is an extremely dangerous piece of equipment: touching it will disintegrate you.
As an Engineer, you can electrify grilles by placing wire "nodes" beneath them: the big seemingly unconnected bulges from a half completed wiring job. As an Engineer, you can electrify grilles by placing wire "nodes" beneath them: the big seemingly unconnected bulges from a half completed wiring job.
As an Engineer, you can power the station solely with the solar arrays. While uninteresting, it is a much safer alternative to most other engines.
As an Engineer, you can repair windows by using a welding tool on them while on any intent other than harm.
As an Engineer, you can lock emitters using your ID card to prevent others from disabling them. As an Engineer, you can lock emitters using your ID card to prevent others from disabling them.
As an Atmospheric Technician, you can't unwrench a pipe if the pressure within is too high. As an Atmospheric Technician, you can't unwrench a pipe if the pressure within is too high.
As the Head of Security, you are expected to coordinate your security force to handle any threat that comes to the station. Sometimes it means making use of the armory to handle a blob, sometimes it means being ruthless during a revolution or cult. As the Head of Security, you are expected to coordinate your security force to handle any threat that comes to the station. Sometimes it means making use of the armory to handle a blob, sometimes it means being ruthless during a revolution or cult.
@@ -80,10 +78,10 @@ As a Traitor, the Captain and the Head of Security are two of the most difficult
As a Traitor, you can manufacture and recycle revolver bullets at a hacked autolathe, making the revolver an extremely powerful tool. As a Traitor, you can manufacture and recycle revolver bullets at a hacked autolathe, making the revolver an extremely powerful tool.
As a Traitor, you may sometimes hunt other traitors, and in turn be hunted by them. As a Traitor, you may sometimes hunt other traitors, and in turn be hunted by them.
As a Traitor, the syndicate encryption key is very useful for coordinating plans with your fellow traitors -- or, of course, betraying them. As a Traitor, the syndicate encryption key is very useful for coordinating plans with your fellow traitors -- or, of course, betraying them.
As a Nuclear Operative, communication is key! Use your radio to speak to your fellow operatives and coordinate an attack plan. As a Mercenary, communication is key! Use your radio to speak to your fellow operatives and coordinate an attack plan.
As a Nuclear Operative, you should look into purchasing a syndicate cyborg, as they can provide heavy fire support, are immune to conventional stuns, and can easily take down the AI. As a Mercenary, you should look into purchasing a syndicate cyborg, as they can provide heavy fire support, are immune to conventional stuns, and can easily take down the AI.
As a Nuclear Operative, stick together! While your equipment is robust, your fellow operatives are much better at saving your life: they can drag you away from danger while stunned and provide cover fire. As a Mercenary, stick together! While your equipment is robust, your fellow operatives are much better at saving your life: they can drag you away from danger while stunned and provide cover fire.
As a Nuclear Operative, you might end up in a situation where the AI has bolted you into a room. Having some spare C4 in your pocket can save your life. As a Mercenary, you might end up in a situation where the AI has bolted you into a room. Having some spare C4 in your pocket can save your life.
As a Monkey, you can crawl through air or scrubber vents by alt+left clicking them. You must drop everything you are wearing and holding to do this, however. As a Monkey, you can crawl through air or scrubber vents by alt+left clicking them. You must drop everything you are wearing and holding to do this, however.
As a Monkey, you can still wear a few human items, such as backpacks, gas masks and hats, and still have two free hands. As a Monkey, you can still wear a few human items, such as backpacks, gas masks and hats, and still have two free hands.
As the Malfunctioning AI, you should either order your cyborgs to dismantle the robotics console or blow it up yourself in order to protect them. Make sure to hunt down all those laptops too! As the Malfunctioning AI, you should either order your cyborgs to dismantle the robotics console or blow it up yourself in order to protect them. Make sure to hunt down all those laptops too!
@@ -134,34 +132,35 @@ Remember the cheesy line!
Toolboxes do more damage if they are full of things, but their contents will spill when you use them as a weapon. Toolboxes do more damage if they are full of things, but their contents will spill when you use them as a weapon.
Heads of Staff will be more willing to help you if you bring paperwork that's already filled out. Heads of Staff will be more willing to help you if you bring paperwork that's already filled out.
See no evil, hear no evil, speak no evil. See no evil, hear no evil, speak no evil.
Auto-Hiss, despite the name, can be used for Unathi, Tajara, and Vaurca. Despite the name, Auto-Hiss can be used for Unathi, Tajara, and Vaurca.
Service borgs can use the special maidborg sprite if they pray hard enough. Service borgs can use the special maidborg sprite if they pray hard enough.
Chainswords and energy weapons can slice walls and people. Chainswords and energy weapons can slice both walls and people.
If you see this message something has gone seriously wrong. If you see this message something has gone seriously wrong.
If you're having trouble as an antagonist, consider a Dionaea whitelist. If you're having trouble as an antagonist, consider a Dionaea whitelist.
As a Medical Doctor, you can attach limbs from one species to the torso of another species. You too can make your own Frankenstein monster! As a Medical Doctor, you can attach limbs from one species to the torso of another species. You too can make your own Frankenstein monster!
The second antag contest is still running, you know. The second antag contest is still running, you know.
Killing mice on sight is not and never will be gank, no matter how much people complain. Killing mice on sight is not and never will be gank, no matter how much people complain.
As an Unathi, you are the only species capable of wearing the rare Breacher hardsuits. Unathi are the only species capable of wearing the rare Breacher hardsuits.
As an Unathi, you can devour small mobs after some time. As an Unathi, you can devour small mobs after some time.
As a Tajaran, you move pretty fast. Zoom zoom, kitty. As a Tajara, you move pretty fast. Zoom zoom, kitty.
As a Tajaran, your resistance to cold probably doesn't actually help you in space. Feel free to try, though. As a Tajara, your resistance to cold probably doesn't actually help you in space. Feel free to try, though.
As a Skrell you can look pretty and...uhh...not slip? As a Skrell, you can look pretty and...uhh...not slip?
As a Skrell you have free reign to validhunt synthetics. (Not really, please don't do this oh God what have I done). As a Skrell, you have free reign to validhunt synthetics. (Not really, please don't do this oh God what have I done).
As a Human you are the best. Why do you care about your mechanics? As a Human, you are the best. Why do you care about your mechanics?
As a Human you are really very great. As a Human, you are really very great.
As an IPC you are immune to most chemicals and gasses. Due to IPCs' synthetic nature, they're immune to most chemicals and gasses.
As an IPC you can survive longer than most species in space, despite your supposed "weakness". IPCs can survive longer than most species in space, despite their supposed "weakness".
As a Dionaea you can survive pretty much anything except a tiny little bottle of weedkiller. As a Dionaea, you can survive pretty much anything except a tiny little bottle of weedkiller.
As a Dionaea you will die in darkness. Find the light at the end of the tunnel, and quick. Dionae die in darkness. Find the light at the end of the tunnel, and quick.
As a Vaurca you can remotely speak to any other Vaurca on board. Not that there are any. All Vaurca can remotely speak to any other Vaurca on board. Not that there are any.
As a Vaurca you can wade freely through phoron gas. Avoid phoron fires though. Somehow a species that breathes phoron gas is really weak to fire. Vaurca can wade freely through phoron gas. Avoid phoron fires though. Somehow a species that breathes phoron gas is really weak to fire.
As an ERT trooper, your most powerful weapons are your team mates. Your second most powerful weapon is your bigass gun. As an ERT trooper, your most powerful weapons are your team mates. Your second most powerful weapon is your bigass gun.
As an ERT trooper you're still expected to roleplay and progress the round. ERT troopers are still expected to roleplay and progress the round. Try not to wordlessly gun down everyone you see.
As a Ninja, you should learn the difference between invisibility and invulnerability. As a Ninja, you should learn the difference between invisibility and invulnerability.
As a Ninja, you have a pretty badass sword. Use it. As a Ninja, you have a pretty badass sword. Use it.
As a Cortical Borer, you a limp feather can kill you if you're outside of a host. A Ninja's sword can cut through many objects. Experiment!
As a NanoTrasen Actor you can't do anything. Thank Bay. As a Cortical Borer, a limp feather can kill you if you're outside of a host.
NanoTrasen Actors can't do anything. Thank Bay.
As a Syndicate Commando you are a Nuke Operative with bigger and better guns. Use them. As a Syndicate Commando you are a Nuke Operative with bigger and better guns. Use them.
As a Death Commando you have only one course of action: RIP AND TEAR. As a Death Commando you have only one course of action: RIP AND TEAR.
As a Highlander, there can be only one. As a Highlander, there can be only one.
@@ -169,3 +168,8 @@ As a Loyalist, remember that you are an antagonist too!
As a Renegade, consider playing a better gamemode. As a Renegade, consider playing a better gamemode.
As a Vampire, you can create new vampires out of willing and less than willing crew. Mind that new vampires may decide to turn their powers against you. As a Vampire, you can create new vampires out of willing and less than willing crew. Mind that new vampires may decide to turn their powers against you.
As a Vampire, if you start going hungry for blood don't expect to stay hidden for long. As a Vampire, if you start going hungry for blood don't expect to stay hidden for long.
You can use . (period) instead of : to speak into a radio.
The radio key .i will allow you to speak into a nearby intercom, .r will speak into a radio in your right hand, and .l will speak into your left. The microphone does not need to be enabled for this to work.
Your ID card's access determines what departmental channels you can set intercoms to.
You can fax papers between request consoles by attacking the console with a paper. Make sure the paper tray is closed first!
No wall or window is 100% impervious to heat.

View File

@@ -0,0 +1,5 @@
author: Lohikar
delete-after: True
changes:
- bugfix: "Fixed Engineering's alert consoles displaying as blank."
- bugfix: "Vampires should now be able to properly embrace thralls."

View File

@@ -5695,6 +5695,7 @@
"cfA" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/engineering/foyer) "cfA" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/engineering/foyer)
"cfB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/engineering/foyer) "cfB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/powered/pump/filled,/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled,/area/engineering/foyer)
"cfC" = (/obj/machinery/newscaster{pixel_x = 31; pixel_y = 3},/obj/effect/floor_decal/corner/yellow,/turf/simulated/floor/tiled,/area/engineering/foyer) "cfC" = (/obj/machinery/newscaster{pixel_x = 31; pixel_y = 3},/obj/effect/floor_decal/corner/yellow,/turf/simulated/floor/tiled,/area/engineering/foyer)
"cfD" = (/obj/machinery/computer/station_alert/engineering,/turf/simulated/floor/tiled,/area/engineering/foyer)
"cfE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room) "cfE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room)
"cfF" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/structure/flora/pottedplant/random,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room) "cfF" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/structure/flora/pottedplant/random,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room)
"cfG" = (/obj/machinery/light,/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room) "cfG" = (/obj/machinery/light,/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/engineering/break_room)
@@ -5962,7 +5963,7 @@
"ckI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; external_pressure_bound_default = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/reinforced{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/engineering/atmos) "ckI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; external_pressure_bound_default = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/reinforced{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/engineering/atmos)
"ckJ" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/reinforced{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/engineering/atmos) "ckJ" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/reinforced{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/engineering/atmos)
"ckK" = (/obj/machinery/door/airlock/maintenance{name = "Engineering EVA Storage Maintainance"; req_access = list(12); req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor/tiled,/area/engineering/engine_eva) "ckK" = (/obj/machinery/door/airlock/maintenance{name = "Engineering EVA Storage Maintainance"; req_access = list(12); req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor/tiled,/area/engineering/engine_eva)
"ckL" = (/obj/machinery/computer/station_alert,/turf/simulated/floor/tiled,/area/engineering/foyer) "ckL" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/computer/station_alert/engineering,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"ckM" = (/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},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgery) "ckM" = (/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},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgery)
"ckN" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor/tiled,/area/engineering/foyer) "ckN" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor/tiled,/area/engineering/foyer)
"ckO" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/tape_roll,/turf/simulated/floor/tiled,/area/engineering/foyer) "ckO" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/tape_roll,/turf/simulated/floor/tiled,/area/engineering/foyer)
@@ -7102,7 +7103,6 @@
"cGE" = (/obj/machinery/computer/general_air_control/supermatter_core{frequency = 1438; input_tag = "cooling_in"; name = "Engine Cooling Control"; output_tag = "cooling_out"; pressure_setting = 100; sensors = list("engine_sensor" = "Engine Core")},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "cGE" = (/obj/machinery/computer/general_air_control/supermatter_core{frequency = 1438; input_tag = "cooling_in"; name = "Engine Cooling Control"; output_tag = "cooling_out"; pressure_setting = 100; sensors = list("engine_sensor" = "Engine Core")},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"cGF" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_c"; icon_state = "swall_c"},/area/shuttle/constructionsite/station) "cGF" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_c"; icon_state = "swall_c"},/area/shuttle/constructionsite/station)
"cGG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/obj/machinery/computer/power_monitor,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "cGG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/obj/machinery/computer/power_monitor,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"cGH" = (/obj/machinery/computer/station_alert,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"cGI" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/computer/rcon,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "cGI" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/computer/rcon,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring)
"cGJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "cGJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/drone_fabrication)
"cGK" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_al_c_snsr"; pixel_x = -25; pixel_y = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 10},/turf/simulated/floor/plating,/area/engineering/engine_airlock) "cGK" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_al_c_snsr"; pixel_x = -25; pixel_y = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 10},/turf/simulated/floor/plating,/area/engineering/engine_airlock)
@@ -7536,7 +7536,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafchCchCchCchCchCchCchCchCchCchCchCchCchCaaaaaachDchEchFchFcgFcgGcfdcgIcgHcgLcgJcgNcgMcgPcgOcgRcgQcgTcgScgVcgUcgXcgWchacgZbVibVibVibVibVibVibVibVichhchbbWMchibWMbUhccuccucidciecifccuccuchjchmchlcgKcbmcbmcbmcbmcbmcaechnchpcaecilcgDcilcaichrchqcaicipceBbVJchtbVJchubnFcisbnFbnFcitciuciuciucivbnFceEchvchschschwchBchxchHchGchIchJchLchLchLchLchNchMchLchOchLchPchQceLciLciMciNchyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafchCchCchCchCchCchCchCchCchCchCchCchCchCaaaaaachDchEchFchFcgFcgGcfdcgIcgHcgLcgJcgNcgMcgPcgOcgRcgQcgTcgScgVcgUcgXcgWchacgZbVibVibVibVibVibVibVibVichhchbbWMchibWMbUhccuccucidciecifccuccuchjchmchlcgKcbmcbmcbmcbmcbmcaechnchpcaecilcgDcilcaichrchqcaicipceBbVJchtbVJchubnFcisbnFbnFcitciuciuciucivbnFceEchvchschschwchBchxchHchGchIchJchLchLchLchLchNchMchLchOchLchPchQceLciLciMciNchyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCchRchSchRchCchTchUchTchCchVchWchVchCaaaaaaciUchEchFcgFcgFchXcfdchZchYciYciaciccibcihcigcijciiciicikciicaTbYEcimbYGcincjjciocirciqcirciwcixcjpcjpcjqcjqcjqcjqbUhcjrchKciyciyciAcizciDciCciFciEciHciBciIciGciGciJcjFcaecaecaeciPciOciQcaicaicaicaiceBceBbVJciRbVJciSbnFcisbnFaaaaaaaaaaaaaaaaaaaaaceEciTciKciWciVcjaciXcjbciZcjecjdcjfcjdcjdcjgcjicjhcgxcjkcgxcjlcjmceLckcckdckechyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCchRchSchRchCchTchUchTchCchVchWchVchCaaaaaaciUchEchFcgFcgFchXcfdchZchYciYciaciccibcihcigcijciiciicikciicaTbYEcimbYGcincjjciocirciqcirciwcixcjpcjpcjqcjqcjqcjqbUhcjrchKciyciyciAcizciDciCciFciEciHciBciIciGciGciJcjFcaecaecaeciPciOciQcaicaicaicaiceBceBbVJciRbVJciSbnFcisbnFaaaaaaaaaaaaaaaaaaaaaceEciTciKciWciVcjaciXcjbciZcjecjdcjfcjdcjdcjgcjicjhcgxcjkcgxcjlcjmceLckcckdckechyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCchRcjnchRchCchTcjochTchCchVcjschVchCaaaaaaciUchFcgFcgFcgFcjtckjckkcjuciYcjvcjxcjwcjzcjyckrcjAcjCcjBcjDcaTbYEcjEchacjGcjIcjHcjJcjJcjJcjKcjMcjLcjNckFckGckHcjqbUhcjrcjcciycjOcjQcjPckMcjScjUcjTckQcjRcjWcjVciGcjXcjFckVckWckXckacjZckbclbclcclccldclcclebVJbVJbVJbVJbnFcisbnFaaaaaaaaaaaaaaaaaaaaaceEckgckfckickhcljceHcjYceHcllcklcknckmckmckocgxcgxckqckpckmckscktceLckwckvckxchyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCchRcjnchRchCchTcjochTchCchVcjschVchCaaaaaaciUchFcgFcgFcgFcjtckjckkcjuciYcjvcjxcjwcjzcjyckrcjAcjCcjBcjDcaTbYEcjEchacjGcjIcjHcjJcjJcjJcjKcjMcjLcjNckFckGckHcjqbUhcjrcjcciycjOcjQcjPckMcjScjUcjTckQcjRcjWcjVciGcjXcjFckVckWckXckacjZckbclbclcclccldclcclebVJbVJbVJbVJbnFcisbnFaaaaaaaaaaaaaaaaaaaaaceEckgckfckickhcljceHcjYceHcllcklcknckmckmckocgxcgxckqckpckmckscktceLckwckvckxchyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCckyckAckzchCckBckDckCchCckEckJckIchCaaaaafciUclGchFcgFcgFcgFcfdclHclIciYciYckKciYciYciYciYckLciickNckOcaTckRckPckTckSckYckUckZckZckZclaclfclfclgcjqclXclYclZclhcjrckuciycliclmclkclpcloclrclqcltclncluclsciGclvcjFcmocmpcmqclyclxclzcmqcmucmvcmwbnFcmxclcclcclcclcclccmybnFaaaaaaaaaaaaaaaaaaaaaceEclBclAclDclCceHclwclFclEceLclJclKclKclKclLclOclNclPclMclKclKclQceLcmOcmPcmQcmRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCckyckAckzchCckBckDckCchCckEckJckIchCaaaaafciUclGchFcgFcgFcgFcfdclHclIciYciYckKciYciYciYciYcfDciickNckOcaTckRckPckTckSckYckUckZckZckZclaclfclfclgcjqclXclYclZclhcjrckuciycliclmclkclpcloclrclqcltclncluclsciGclvcjFcmocmpcmqclyclxclzcmqcmucmvcmwbnFcmxclcclcclcclcclccmybnFaaaaaaaaaaaaaaaaaaaaaceEclBclAclDclCceHclwclFclEceLclJclKclKclKclLclOclNclPclMclKclKclQceLcmOcmPcmQcmRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafchCcmScmTcmUchCcmVcmTcmWchCcmVcmTcmWchCaaaaafcmXchFchFcgFcgFclScfdcmZcnaclUclTclWclVcmacmacmccmbcmacmdcmecaTcmgcmfcmicmhcjjcmjcmjcmkclfcmlcmncmmcmrcjqcnucnvcnwcmscjrclRciycmtcmAcmzcjrcmCcmEcmDcjFcmBcmGcmFciGcmHcjFcnJcnKcmqcnLcmJcnLcmqaaaaaaaaabnFbnFbnFcnNcmvcmvcmwbnFbnFaaaaaaaaaaaaceHceHceHceHceHceHceHceHceHcmIcmLcmKceLceLcnRcnScnTceLceLceLceLcnUcnScnTceLceLcnVcnWcnVaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafchCcmScmTcmUchCcmVcmTcmWchCcmVcmTcmWchCaaaaafcmXchFchFcgFcgFclScfdcmZcnaclUclTclWclVcmacmacmccmbcmacmdcmecaTcmgcmfcmicmhcjjcmjcmjcmkclfcmlcmncmmcmrcjqcnucnvcnwcmscjrclRciycmtcmAcmzcjrcmCcmEcmDcjFcmBcmGcmFciGcmHcjFcnJcnKcmqcnLcmJcnLcmqaaaaaaaaabnFbnFbnFcnNcmvcmvcmwbnFbnFaaaaaaaaaaaaceHceHceHceHceHceHceHceHceHcmIcmLcmKceLceLcnRcnScnTceLceLceLceLcnUcnScnTceLceLcnVcnWcnVaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaafaafaafaaaaafcnXaafcnXaafcnYaafcnZaafcnYaafcnZaafaafaaacfdcmYcmNcgFcgFcnbcodcndcnccogcohcnecojcojcnfcojcolcngconcolcoocnicnhcnjcoscotcotcotcotcnlcnkcowcowcowcoxcoxcoxcoxcnmcjrcmMcnncmtcnpcnocjrcmCcmEcnrcjFcnqcnscmFcnycnxcjFcnJcnKcmqcnBcnAcnCcmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaceHcnDcnFcnEcoOcnGcnHcnzcoScnIcnOcnMceHaapaafaafaafaafaaaaaaaaacnQaaaaaaaaaaafcoXcoYcoXaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaafaafaafaaaaafcnXaafcnXaafcnYaafcnZaafcnYaafcnZaafaafaaacfdcmYcmNcgFcgFcnbcodcndcnccogcohcnecojcojcnfcojcolcngconcolcoocnicnhcnjcoscotcotcotcotcnlcnkcowcowcowcoxcoxcoxcoxcnmcjrcmMcnncmtcnpcnocjrcmCcmEcnrcjFcnqcnscmFcnycnxcjFcnJcnKcmqcnBcnAcnCcmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaceHcnDcnFcnEcoOcnGcnHcnzcoScnIcnOcnMceHaapaafaafaafaafaaaaaaaaacnQaaaaaaaaaaafcoXcoYcoXaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcoZcpacpbcpccpdcpecpfcpccpgcphcpfcpicpjcpkcplcogcogcogcogcogcogcogcogcobcoacoecoccofcprcokcoicomcolcoqcopcorcolcovcoucoycotcoAcozcoCcoBcoEcoDcpHcpIcpIcpJcpKcpKcpHcpLcjrcjrcpMcoFcjrcjrcjrcoGcmEcoHcjFcjFcjFcpYcpRcjFcjFcnJcpScmqcoKcoJcoKcmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafceHcoLcoMcoLcoPcoNcoQcoIcoScoScoRcoSceHceHaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacoUaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcoZcpacpbcpccpdcpecpfcpccpgcphcpfcpicpjcpkcplcogcogcogcogcogcogcogcogcobcoacoecoccofcprcokcoicomcolcoqcopcorcolcovcoucoycotcoAcozcoCcoBcoEcoDcpHcpIcpIcpJcpKcpKcpHcpLcjrcjrcpMcoFcjrcjrcjrcoGcmEcoHcjFcjFcjFcpYcpRcjFcjFcnJcpScmqcoKcoJcoKcmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafceHcoLcoMcoLcoPcoNcoQcoIcoScoScoRcoSceHceHaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacoUaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7558,7 +7558,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaaaaaqaaaaaaaafchCcmVcmTcmWchCcmVcmTcmWchCcmVcmTcFjchCaaachCcmWcmTcFjchCaaaaafaaacEEcMIcEdcFmcFncEfcFpcFqcDXcEpcErcEqcEOcEscEucEtcEwcEvcEOcExcEGcEycEeaaaaaacAScELcEJcFEaaaaaabOscENcEMcEPcCccEQcEQcEQcCcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcDScDRcuxcuxcuxcuxcuxcDTcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacljceHceHceHceHceHceHceHceHcEUcEUcEUcljaaaaaacswcswcswcswcswaaaaaaaaacqzaaaaaaaaacswcswcswcaBcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaaaaaqaaaaaaaafchCcmVcmTcmWchCcmVcmTcmWchCcmVcmTcFjchCaaachCcmWcmTcFjchCaaaaafaaacEEcMIcEdcFmcFncEfcFpcFqcDXcEpcErcEqcEOcEscEucEtcEwcEvcEOcExcEGcEycEeaaaaaacAScELcEJcFEaaaaaabOscENcEMcEPcCccEQcEQcEQcCcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcDScDRcuxcuxcuxcuxcuxcDTcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacljceHceHceHceHceHceHceHceHcEUcEUcEUcljaaaaaacswcswcswcswcswaaaaaaaaacqzaaaaaaaaacswcswcswcaBcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaafaaJaaaaaaaafchCcEVcEXcEWchCcEYcFbcFachCcFccFecFdchCaafchCcFfcFhcFgchCaaaaafaaacEEcFWcDccFncFncFicFYcFZcGacFlcFrcFocFtcFscFvcFucFxcFwcGkcGlcGmcGncEeaafaaacGocGpcGqcAScGraaabOscFycMAcFzcCcaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsocrgcrgcGwcERcCZcCZcCZcEScGwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFCcFCcFCaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafcFDaafcswaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaafaaJaaaaaaaafchCcEVcEXcEWchCcEYcFbcFachCcFccFecFdchCaafchCcFfcFhcFgchCaaaaafaaacEEcFWcDccFncFncFicFYcFZcGacFlcFrcFocFtcFscFvcFucFxcFwcGkcGlcGmcGncEeaafaaacGocGpcGqcAScGraaabOscFycMAcFzcCcaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsocrgcrgcGwcERcCZcCZcCZcEScGwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFCcFCcFCaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafcFDaafcswaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaJaaaaafaafchCcFFcFGcFFchCcFHcFIcFHchCcFJcFKcFJchCaaachCcFJcFJcFLchCaaaaafaaacEEcGccFMcFmcFncDdcGJcEKcDXcFNcFPcFOcEOcFQcFScFRcFScFTcEOcFUcGScFVcEeaapcGBcFXcGWcGXcFXcFXcGFbOscGecGdcGfcCcaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHccCWcCWcCWcCWcCWcHcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaaacswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaJaaaaafaafchCcFFcFGcFFchCcFHcFIcFHchCcFJcFKcFJchCaaachCcFJcFJcFLchCaaaaafaaacEEcGccFMcFmcFncDdcGJcEKcDXcFNcFPcFOcEOcFQcFScFRcFScFTcEOcFUcGScFVcEeaapcGBcFXcGWcGXcFXcFXcGFbOscGecGdcGfcCcaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHccCWcCWcCWcCWcCWcHcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaaacswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaJaafaafaaachCcFFcGgcFFchCcFHcGhcFHchCcFJcGicFJchCaafchCcFJcGjcFJchCaafaafaafcHhcHicGycGxcGAcGzcHncEKcDXcETcGDcGCcEOcGEcGIcGGcHacGHcEOcGKcHxcGLcEeaaacHzcHAcHBcGMcHDcHEcGNcHGcMGcHIbOsbOsaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcHJcricricricCpcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcswcswcswcswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaJaafaafaaachCcFFcGgcFFchCcFHcGhcFHchCcFJcGicFJchCaafchCcFJcGjcFJchCaafaafaafcHhcHicGycGxcGAcGzcHncEKcDXcETcGDcGCcEOcGEcGIcGGcHackLcEOcGKcHxcGLcEeaaacHzcHAcHBcGMcHDcHEcGNcHGcMGcHIbOsbOsaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcHJcricricricCpcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcswcswcswcswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaaaaaachCchCchCchCchCchCchCchCchCchCchCchCchCaaacHKchCchCchCchCaaaaaaaaaaaacCScCScCScCScCScHLcHMcHMcHMcHMcHNcHMcHOcHPcHQcHPcHRcHMcHMcHScHMcHMcHMcHzcHAcHTcGOcHVcHWcHXaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaaaaaachCchCchCchCchCchCchCchCchCchCchCchCchCaaacHKchCchCchCchCaaaaaaaaaaaacCScCScCScCScCScHLcHMcHMcHMcHMcHNcHMcHOcHPcHQcHPcHRcHMcHMcHScHMcHMcHMcHzcHAcHTcGOcHVcHWcHXaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacHYcHZcHZcHZcIacGPcGQcIdcIecGRcGTcIhcGUcIjcGYcGVcHdcIrcIocIpcIqcIrcIscHecIucIvcHecHMcHzcHAcIwcHfcIycIzcGNaafaaacHYcIBcHYcIBcHYcIBaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacHYcHZcHZcHZcIacGPcGQcIdcIecGRcGTcIhcGUcIjcGYcGVcHdcIrcIocIpcIqcIrcIscHecIucIvcHecHMcHzcHAcIwcHfcIycIzcGNaafaaacHYcIBcHYcIBcHYcIBaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafcHgcHkcHjaaacHgcHkcHjaaacHgcHkcHjaafaafaaaaafaafaafaafaafcIGcHZcHZcHZcIacGPcHlcIIcIJcHmcHocIMcHpcIOcHrcHqcITcITcITcIUcITcITcITcIVcITcIWcIXcHMcHscFXcFXcFXcFXcFXcHtaafaafcJacJacJacJacJacJaaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafcHgcHkcHjaaacHgcHkcHjaaacHgcHkcHjaafaafaaaaafaafaafaafaafcIGcHZcHZcHZcIacGPcHlcIIcIJcHmcHocIMcHpcIOcHrcHqcITcITcITcIUcITcITcITcIVcITcIWcIXcHMcHscFXcFXcFXcFXcFXcHtaafaafcJacJacJacJacJacJaaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

View File

@@ -885,7 +885,7 @@
"ra" = (/obj/structure/cable/blue{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},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/turf/simulated/floor/tiled,/area/outpost/engineering/storage) "ra" = (/obj/structure/cable/blue{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},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/turf/simulated/floor/tiled,/area/outpost/engineering/storage)
"rb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eoutpost_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor/airless,/area/outpost/engineering/hallway) "rb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eoutpost_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor/airless,/area/outpost/engineering/hallway)
"rc" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/table/standard,/obj/random/tech_supply,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rc" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/table/standard,/obj/random/tech_supply,/turf/simulated/floor/wood,/area/outpost/engineering/meeting)
"rd" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/status_display{pixel_y = 32},/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Outpost Meeting Room"},/obj/machinery/computer/station_alert,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "rd" = (/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/status_display{pixel_y = 32},/obj/machinery/camera/network/engineering_outpost{c_tag = "Engineering Outpost Meeting Room"},/obj/machinery/computer/station_alert/engineering,/turf/simulated/floor/wood,/area/outpost/engineering/meeting)
"re" = (/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (WEST)"; icon_state = "carpet_edges"; dir = 8},/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTHWEST)"; icon_state = "carpet_edges"; dir = 9},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "re" = (/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (WEST)"; icon_state = "carpet_edges"; dir = 8},/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTHWEST)"; icon_state = "carpet_edges"; dir = 9},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting)
"rf" = (/obj/structure/bed/chair,/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "rf" = (/obj/structure/bed/chair,/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting)
"rg" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "rg" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/carpet{tag = "icon-carpet_edges (NORTH)"; icon_state = "carpet_edges"; dir = 1},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting)